参考资料:
吴恩达深度学习专项课程: deeplearning.ai
Dropout(Srivastava et al., 2014) 提供了正则化一大类模型的方法,计算方便且功能强大。Dropout可以被认为是集成大量深层神经网络的实用Bagging方法。Bagging涉及训练多个模型,并在每个测试样本上评估 多个模型。当每个模型都是一个很大的神经网络时,这似乎是不切实际的,因为训 练和评估这样的网络需要花费很多运行时间和内存。通常我们只能集成五至十个神经网络,如Szegedy et al. (2014a)集成了六个神经网络赢得 ILSVRC,超过这个数量 就会迅速变得难以处理。Dropout提供了一种廉价的Bagging集成近似,能够训练和评估指数级数量的神经网络。
Drop_out原理
drop_out的过程很简单,可以明显地减少过拟合现象,可以减少特征检测器(feature detectors)(隐层节点)间的相互作用。神经网络每一层有一个超参数Keep_prob,为这一层隐藏单元保留的几率。对参数较多的$W^{[l]}$,容易过拟合,可以把Keep_prob设置的低些。不容易过拟合的层,可以把Keep_prob设置的高些,甚至为1。
通常输入层不应用drop_out。
inverted dropout
反向随机失活(inverted dropout)方法,通过除以 keep-prob,确保$a^{[l]}$的期望值不变。inverted dropout可以使应用dropout之后,每一层的输出期望值保持稳定。确保在测试阶段不执行 dropout 来调整数值范围,激活函数的预期结果也不会发生变化。
dropout缺点downside:代价函数𝐽不再被明确定义
为什么drop_out能正则化?因为该单元的输入可能随时被清除,不依赖于任何一个特征,不会太依赖某些局部的特征,使模型泛化性更强。drop_out 将产生收缩权重的平方范数的效果,和之前讲的l2正则化类似。
计算视觉中,图片像素多,输入量非常大。而数据量一般不足,容易过拟合。所以 dropout 在计算机视觉中应用得比较频繁,几乎是计算机视觉研究人员默认选择。
drop_out缺点downside:就是代价函数 不再被明确定义
Reference:
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.
Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.
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.
Srivastava N. Improving neural networks with dropout[J]. University of Toronto, 2013, 182.
Bouthillier X, Konda K, Vincent P, et al. Dropout as data augmentation[J]. arXiv preprint arXiv:1506.08700, 2015.