基于Keras/Python的深度学习模型Dropout正则项

原文:Dropout Regularization in Deep Learning Models With Keras 作者:Jason Brownlee 翻译:赵屹华 责编:周建丁(投稿请联系zhoujd@csdn.net)dropout技术是神经网络和深度学习模型的一种简单而有效的正则化方式。本文将向你介绍dropout正则化技术,并且教你如何在Keras中用Pyt...
摘要由CSDN通过智能技术生成

原文:Dropout Regularization in Deep Learning Models With Keras
作者:Jason Brownlee
翻译:赵屹华
责编:周建丁(投稿请联系zhoujd@csdn.net)

dropout技术是神经网络和深度学习模型的一种简单而有效的正则化方式。

本文将向你介绍dropout正则化技术,并且教你如何在Keras中用Python将其应用于你的模型。

读完本文之后,你将了解:

  • dropout正则化的原理
  • 如何在输入层使用dropout
  • 如何在隐藏层使用dropout
  • 如何针对具体问题对dropout调优

神经网络的Dropout正则化

Dropout是Srivastava等人在2014年的一篇论文中提出的一种针对神经网络模型的正则化方法 Dropout: A Simple Way to Prevent Neural Networks from Overfitting

Dropout的做法是在训练过程中随机地忽略一些神经元。这些神经元被随机地“抛弃”了。也就是说它们在正向传播过程中对于下游神经元的贡献效果暂时消失了,反向传播时该神经元也不会有任何权重的更新。

随着神经网络模型不断地学习,神经元的权值会与整个网络的上下文相匹配。神经元的权重针对某些特征进行调优,具有一些特殊化。周围的神经元则会依赖于这种特殊化,如果过于特殊化,模型会因为对训练数据过拟合而变得脆弱不堪。神经元在训练过程中的这种依赖于上下文的现象被称为复杂的协同适应(complex co-adaptations)。

你可以想象一下,如果在训练过程中随机丢弃网络的一部分,那么其它神经元将不得不介入,替代缺失神经元的那部分表征,为预测结果提供信息。人们认为这样网络模型可以学到多种相互独立的内部表征。

这么做的效果就是,网络模型对神经元特定的权重不那么敏感。这反过来又提升了模型的泛化能力,不容易对训练数据过拟合。

Keras的Dropout 正则化

Dropout的实现很简单,在每轮权重更新时随机选择一定比例(比如20%)的节点抛弃。Keras的Dropout也是这么实现的。Dropout技术只在模型训练的阶段使用,在评估模型性能的时候不需使用。

Keras入门博文:
Python Keras (一个超好用的神经网络框架)的使用以及实例
易用的深度学习框架Keras简介

接下来我们看看Dropout在Keras中的一些不同用法。

本例子使用了声呐数据集(Sonar dataset)。这是一个二分类问题,目的是根据声呐的回声来正确地区分岩石和矿区。这个数据集非常适合神经网络模型,因为所有的输入都是数值型的,且具有相同的量纲。

数据集可以从UCI机器学习代码库下载。然后把声呐数据集放在当前工作路径下,文件命名为sonar.csv。

我们会用scikit-learn来评价模型质量,为了更好地挑拣出结果的差异,采用了十折交叉验证(10-fold cross validation)方法。

每条数据有60个输入值和1个输出值,输入值在送入模型前做了归一化。基准的神经网络模型有两个隐藏层,第一层有60个节点,第二层有30个。使用了随机梯度下降的方法来训练模型,选用了较小的学习率和冲量。

完整的基准模型代码如下所示。

    import numpy
    import pandas
    from keras.models import Sequential
    from keras.layers import Dense
    from keras.layers import Dropout
    from keras.wrap
  • 1
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值