drop out 为什么能够防止过拟合

我们都知道常见的减小过拟合的方法有:正则化Early Stop增加数据drop out。其中,drop out主要用在神经网络模型中,那么它为什么可以减小过拟合呢?

1.类似取平均值的作用。

 先回到普通的模型(没有dropout),用相同的训练数据去训练3个不同的神经网络,一般会得到3个不同的结果,此时我们可以采用 “3个结果取均值”或者“多数取胜的投票策略”去决定最终结果。(例如 2个网络判断结果为数字9,那么很有可能真正的结果就是数字9,另外1个网络给出了错误结果)。这种“综合起来取平均”的策略通常可以有效防止过拟合问题。因为不同的网络可能产生不同的过拟合,取平均则有可能让一些“相反的”拟合互相抵消。dropout掉不同的隐藏神经元就类似在训练不同的网络(随机删掉一半隐藏神经元导致网络结构已经不同),整个dropout过程就相当于 对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。

2.减少神经元之间复杂的共适应关系

因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。(这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况)。 迫使网络去学习更加鲁棒的特征 (这些特征在其它的神经元的随机子集中也存在)。换句话说假如我们的神经网络是在做出某种预测,它不应该对一些特定的线索片段太过敏感,即使丢失特定的线索,它也应该可以从众多其它线索中学习一些共同的模式(鲁棒性)。(这个角度看 dropout就有点像L1,L2正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高)

参考文献:机器学习中防止过拟合的方法总结


你可能感兴趣的:(机器学习)