Dropout 笔记
Dropout操作是指在网络的训练阶段,每次迭代时会从基础网络中随机丢弃一定比例的神经元,然后在修改后的网络上进行数据的前向传播和误差的反向传播。模型在测试阶段会恢复全部的神经元。Dropout是一种常用的正则化方法,可以缓解过拟合问题。
Dropout为什么可以缓解过拟合问题
一方面,Dropout 可以看作是集成了大量神经网络的Bagging方法。Bagging是指用相同的数据训练若干个不同的模型,最终的预测结果是这些模型进行投票或取平均值而得到的。所以,Dropout通过在每次迭代中随机丢弃一些神经元来改变网络结构,以实现训练不同结构的神经网络的目的。在测试阶段会恢复全部的神经元,这相当于之前训练的不同结构的网络都参与了对最终结果的投票。
另一方面,Dropout能够减少神经元之间复杂的共适应(co-adaptation)关系。由于Dropout每次丢弃的神经元是随机选择的,所以每次保留下来的网络会包含着不同的神经元,这样在训练过程中,网络权值的更新不会依赖于隐节点之间的固定关系(固定关系可能会产生一些共同作用从而影响网络的学习过程)。换句话说,网络中每个神经元不会对另一个特定神经元的激活非常敏感,这使得网络能够学习到一些更加泛化的特征。
Reference
百面深度学习