深度学习中Dropout

小编在深度学习的学习过程中,遇到的第2个概念是Dropout,所以又是一顿恶补。但感觉这个Dropout不仅要有通俗的个人理解,对原理的理解也是很重要的。

为什么会有Dropout

在模型训练过程中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络中,过拟合表现为:模型在训练数据上损失函数较小,预测准确率较高;但在测试数据上损失函数比较大,预测准确率较低。个人理解就是模型的鲁棒性不强,适用性弱。一旦模型过拟合,那么得到的模型肯定不能用。为了解决过拟合问题,一般会采用模型集成的方法,即训练多个模型进行组合,这样做会使模型的训练和测试过程耗费很多时间。
所以就引出了Dropout,因为Dropout在一定程度可以有效的缓解过拟合现象。

Dropout介绍

先说一下Dropout的小历史:
1、在2012年,Hinton在其论文《Improving neural networks by preventing co-adaptation of feature detectors》中提出Dropout。为了防止过拟合,可以通过阻止特征检测器的共同作用来提高神经网络的性能。

2、在2012年,Alex、Hinton在其论文《ImageNet Classification with Deep Convolutional Neural Networks》中用到了Dropout算法,用于防止过拟合。

3、《Dropout:A Simple Way to Prevent Neural Networks from Overfitting》、《Improving Neural Networks with Dropout》、《Dropout as data augmentation》等相关文章。

个人对于Dropout通俗的理解是:在网络前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样整个网络不会太依赖某些局部的特征,从而可以使网络模型的通用性更强,如下图所示。
**百科定义:**随机失活(Dropout)是为解决深度神经网络的过拟合(overfitting)和梯度消失(gradient vanishing)问题而被提出的优化方法,其一般设想是在神经网络的学习过程中,随机将部分隐含层节点的权重归零,由于每次迭代受归零影响的节点不同,因此各节点的“重要性”会被平衡 。引入随机失活后,神经网络的每个节点都会贡献内容,不会出现少数高权重节点完全控制输出结果的情况,因此降低了网络的结构风险。
在这里插入图片描述
加入Dropout后网络的处理流程有了改变:
给定输入和输出,根据正常工作的神经元进行参数的更新;然后换一批神经元,再更新一下参数。(与正常的网络相比,一次只更新一部分参数)

最后说一下为什么Dropout可以解决过拟合
(1)类似取平均的作用: 在常规的网络模型中,用同一训练数据去训练5个不同的神经网络,一般会将5个网络的结果进行取平均处理或“少数服从多数”,这些策略一般情况下可以有效防止过拟合问题(结合生活很好理解,有种互相约束的感觉)。而使用dropout,会使网络结构改变,在训练的过程中等效于在训练多个网络,多个网络或许补充、互相弥补、互相约束,所以整个训练过程就相当于对很多个不同的神经网络进行“融合”,从而使训练结果不会出现过拟合的现象。

(2)降低节点间的相互依赖性: 因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况 。迫使网络去学习更加鲁棒的特征 ,这些特征在其它的神经元的随机子集中也存在。

##Keras中的 Dropout源码
Keras开源项目GitHub地址为:
https://github.com/fchollet/keras/tree/master/keras
其中Dropout函数代码实现所在的文件地址:
https://github.com/fchollet/keras/blob/master/keras/backend/theano_backend.py

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值