Dropout简单理解

1 简介

      Dropout是神经网络训练中非常有效的正则化方法,Dropout就是在神经网络的Dropout层,为每个神经元结点设置一个随机消除的概率,对于保留下来的神经元,得到一个节点较少,规模较小的网络进行训练。Dropout示意图如下:
Dropout简单理解

      神经元消除概率可以作为超参数,通过交叉验证方式选定。

2 Dropout理解

      对于神经网络中的每一个隐藏神经元,其工作就是接收输入,并产生一些有意义的输出,但是在使用Dropout后,每一个隐藏神经元都可能被随机地清除,此时一个隐藏神经元不会再特别依赖于其他任何一个隐藏神经元,这就促使每一个个体隐藏单元去学习一个有用的特征。也可以将Dropout视为一种非常有效的神经网络模型平均的方式,每个模型都在单例上训练,并且模型中的每一个参数都与所有其他模型中的相关参数共享,从而被极大地正则化。这远比那些将参数推向 0 的标准正则化手段更好。

3 一些细节

      1. 在测试阶段,使用的“平均网络”包含有所有的隐藏单元,但是其权重被乘以一个概率 p(保留概率),因为测试阶段激活的隐藏单元的数量比训练阶段多。示意图如下:
Dropout简单理解

      2. Dropout之于卷积层的作用不够明显,因为卷积网络参数共享的性质极大地减少了参数,虽然这降低了网络的表示能力,但是同时降低了过拟合的可能性。然而,在较低层使用Dropout仍然有所帮助,因为它为更高层的全连接层的输入提供了噪声,这可以防止出现过拟合的情况。

      3. Dropout作者在使用Dropout时,没有采用对整个权重向量进行 L2 正则的方法,而是对每一个隐藏单元的输入权重向量的 L2 范数设置一个上限 c。使用一个限制而不是一个惩罚来防止权重增长得很大而不论权重更新有多大,这使得在使用学习率衰减的初始阶段可以使用一个较大的学习率,从而给予网络更多的机会在权重空间中寻找一个好的配置。(一个可能的理由:将权重向量限制在一个固定半径的球体内,使得使用一个较大的学习率而不至于权重爆炸成为可能)

参考文献

[1] Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. arXiv preprint arXiv:1207.0580, 2012.
[2] Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: A simple way to prevent neural networks from overfitting[J]. The Journal of Machine Learning Research, 2014, 15(1): 1929-1958.
[3] 吴恩达深度学习第二课第一周

;