dropout-神经网络训练中防止过拟合的一种技术

声明:文章仅作知识整理、分享,如有侵权请联系作者删除博文,谢谢!

转自:https://www.jiqizhixin.com/graph/technologies/1c91194a-1732-4fb3-90c9-e0135c69027e

在正则化方法中,Dropout 是非常有用和成功的一种技术,能够有效控制过拟合(overfitting)Definitely问题。一般来说,Dropout 会随机删除一些神经元,以在不同批量上训练不同的神经网络架构。Bagging 是通过结合多个模型降低泛化误差的技术,主要的做法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。而 Dropout 可以被认为是集成了大量深层神经网络的 Bagging 方法,因此它提供了一种廉价的 Bagging 集成近似方法,能够训练和评估指数级数量的神经网络。

具体来说,Dropout 指暂时丢弃一部分神经元及其连接。随机丢弃神经元可以防止过拟合,同时指数级、高效地连接不同网络架构。神经元被丢弃的概率为 1 − keep_prob,且关闭的神经元不参与前向传播计算与参数更新。隐藏层通常以 0.5 的概率丢弃神经元。使用完整网络(每个节点的输出权重为 p)对所有 2^n 个 dropout 神经元的样本平均值进行近似计算。每当我们关闭一些神经元,我们实际上修改了原模型的结构,那么每次迭代都训练一个不同的架构,参数更新也更加关注激活的神经元。这种正则化方法可以看成是一种集成方法,即集成每个批量所训练的不同网络架构。Dropout 显著降低了过拟合,同时通过避免在训练数据上的训练节点提高了算法的学习速度。

下图给出了一个使用了dropout的神经网络模型。 左图:具有2个隐藏层的标准神经网络。 右图:通过在左侧的网络中应用dropout而生成的细化网络示例, 交叉图表表示这一单元未被激活。

训练神经网络时,神经网络的一些神经元会像上图所示那样被删除;测试时,所有的神经元都会被激活,每一个单元的参数要预乘以keep_prob。

dropout 最佳实践:

1、使用 20-50 % 的 dropout,建议输入 20%。太低,影响可以忽略;太高,可能欠拟合。

2、在输入层和隐藏层上使用 dropout。这已被证明可以提高深度学习的性能。

3、使用伴有衰减的较大的学习速率,以及较大的动量。

4、限制权重!较大的学习速率会导致梯度爆炸。通过对网络权值施加约束(如大小为 5 的最大范数正则化)可以改善结果。

5、使用更大的网络。在较大的网络上使用 dropout 可能会获得更好的性能,从而使模型有更多的机会学习独立的表征。

发展历史:

Dropout 和 BN 结合在一起时并不能获得额外的增益。事实上,当一个网络同时使用这两者时,甚至会得到更差的结果。Ioffe & Szegedy 于 2015 年发表的文章中就已经讨论过,BN 在某些情况下会削弱 Dropout 的效果。他们揭露了两者之间的不相容性,从而推测 BN 提供了与 Dropout 相似的正则化功能。很多现代模型 如 Resnet,Densenet 等为这一观点添加佐证,它们在只使用 BN 的情况下得到更好的结果。

2018年,南京理工大学和清华大学的研究发现理解 Dropout 与 BN 之间冲突的关键是网络状态切换过程中存在神经方差的(neural variance)不一致行为,他们表明 Dropout 在网络测试的时候神经元会产生方差偏移,因而进一步分析与理解如何能避免方差偏移风险,并克服二者组合的局限性。

瓶颈:

Dropout存在的问题在上文已经有所提及,其无法与BN一起使用,BN 在某些情况下会削弱 Dropout 的效果;另外,对于数据标签有损的情况,dropout对于CNN的效果不明显。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值