在机器学习的模型中,如果模型的参数太多,而训练样本又太少,那么多轮迭代后,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。
而Dropout和正则化、earlystopping、扩增数据集等方法一样,都是缓解过拟合的有效方法。
在2012年,Hinton在其论文《Improving neural networks by preventing co-adaptation of feature detectors》中提出Dropout。当一个复杂的前馈神经网络被训练在小的数据集时,容易造成过拟合。为了防止过拟合,可以通过阻止特征检测器的共同作用来提高神经网络的性能。
在2012年,Alex、Hinton在其论文《ImageNet Classification with Deep Convolutional Neural Networks》中用到了Dropout算法,用于防止过拟合。并且,这篇论文提到的AlexNet网络模型引爆了神经网络应用热潮,并赢得了2012年图像识别大赛冠军,使得CNN成为图像分类上的核心算法模型。
随后,又有一些关于Dropout的文章《Dropout:A Simple Way to Prevent Neural Networks from Overfitting》、《Improving Neural Networks with Dropout》、《Dropout as data augmentation》。
什么是Dropout呢?
Dropout说的简单一点就是:我们在前向传播的时候,让某个神经元的激活值以一定的概率1-p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征。
那么怎么停止工作呢?其实就是加一层mask,以一定概率将这层网络的输出置0,那么这轮迭代的反向传播中,就不会对置0位置的参数进行更新了,相当于保存了这些位置的参数。
另外,由于Dropout在训练时,只保留了p的神经元,在测试时,一般将p置为100%。那么测试时的输出结果就会大于训练时的结果,这是不符合IID假设的。
所以,我们在训练的Dropout后,对神经元输出值除以p,进而进行rescale:
x /= retain_prob
这叫做inverted dropout。而利用inverted dropout,我们可以在训练的时候直接将dropout后留下的节点输出扩大1/p倍,这样就可以使结果的scale保持不变,而在预测的时候也不用做额外的操作了,更方便一些。
也有传统的做法是,那么在预测的时候,如果所有的隐藏层单元都需要参与进来,则得到的结果相比训练时平均要大 1/p ,为了避免这种情况,就需要测试的时候将输出结果乘以 p 使下一层的输入规模保持不变。
数学分析:
假设我们设置保留概率为p, 那么该层大约有比例为1-p的单元会被drop掉,因为每个神经元是否drop就是一次伯努利实验,这层的dropout概率服从伯努利分布,而\(a^{l-1}\)分布的期望就是np。\(z^l=w^la^{l-1}+b^l\)当 l-1层有比例为1-p的单元drop后,\(a^{l-1}\)大约会变为原来的p倍,为了保证l层的z期望不变,所以要在\(a^{l-1}\)与dropout矩阵乘积后,要除以p,即扩大1/p倍,期望又回到n。
Dropout为什么可以解决过拟合?
(1)取平均的作用: 先回到标准的模型即没有dropout,我们用相同的训练数据去训练5个不同的神经网络,一般会得到5个不同的结果,此时我们可以采用 “5个结果取均值”或者“多数取胜的投票策略”去决定最终结果。例如3个网络判断结果为数字9,那么很有可能真正的结果就是数字9,其它两个网络给出了错误结果。这种“综合起来取平均”的策略通常可以有效防止过拟合问题。因为不同的网络可能产生不同的过拟合,取平均则有可能让一些“相反的”拟合互相抵消。dropout掉不同的隐藏神经元就类似在训练不同的网络,随机删掉一半隐藏神经元导致网络结构已经不同,整个dropout过程就相当于对很多个不同的神经网络取平均。而不同的网络产生不同的过拟合,一些互为“反向”的拟合相互抵消就可以达到整体上减少过拟合。
(2)减少神经元之间复杂的共适应关系: 因为dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况 。迫使网络去学习更加鲁棒的特征 ,这些特征在其它的神经元的随机子集中也存在。换句话说假如我们的神经网络是在做出某种预测,它不应该对一些特定的线索片段太过敏感,即使丢失特定的线索,它也应该可以从众多其它线索中学习一些共同的特征。从这个角度看dropout就有点像L1,L2正则,减少权重使得网络对丢失特定神经元连接的鲁棒性提高。
(3)Dropout类似于性别在生物进化中的角色:物种为了生存往往会倾向于适应这种环境,环境突变则会导致物种难以做出及时反应,性别的出现可以繁衍出适应新环境的变种,有效的阻止过拟合,即避免环境改变时物种可能面临的灭绝。
Reference