Dropout作用基理:
Dropout是为了缓解神经网络过拟合而被提出的一种正则化方法,它确实能够有效缓解过拟合现象的发生,但是Dropout带来的缺点就是可能会减缓模型收敛的速度,因为每次迭代只有一部分参数更新,可能导致梯度下降变慢。
Dropout叫做随机失活,简单来说就是在模型训练阶段的前向传播过程中,让某些神经元的激活值以一定的概率停止工作,进而使得模型的泛化性更强。
Dropout缓解过拟合现象的原因:
(1)集成学习的作用: 先回到标准的模型,我们用相同的数据去训练5个不同的神经网络,一般会得到5个不同的结果。此时我们可以采用 “5个结果取均值”或者“多数取胜的投票策略”去决定最终结果,这种“综合起来取平均”的策略通常可以有效防止过拟合问题。因为不同的网络可能产生不同的过拟合,取平均则有可能让一些“相反的”拟合互相抵消。Dropout隐藏的不同神经元就类似在训练不同的神经网络,随机删掉部分隐藏神经元导致网络结构已经不同。整个Dropout过程就相当于对很多个不同的神经网络取平均,从这个角度看有点类似于集成学习。
(2)正则项的作用: 因为Dropout导致两个神经元不一定每次都在一个网络中出现,这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况 ,迫使网络去学习更加鲁棒的特征 ,这些特征在其它神经元的随机子集中也存在。正因为这样,网络由于不知道浅层的哪些神经元会失活,导致网络不敢赋予浅层神经元太大的权重,这样就减轻了网络对某些局部特征的依赖。换句话说,网络不会对一些特定的线索片段太过敏感,即使丢失特定的线索,它也可以从众多其它线索中学习一些共同的特征。从这个角度看,Dropout就类似于L1以及L2正则化操作,减少权重使得网络对丢失特定神经元连接的鲁棒性提高。