Dropout是一种通过在训练神经网络过程中随机“取消”神经元以达到减少“co-adaption”的一种算法。
前向传播中,神经网络采用非线性的中间隐藏层对输入输出值进行拟合;通过调整隐藏层内的参数来达到预测的目的。如果输入和输出间的关系很复杂,而且网络中拥有足够多的隐藏层单元来精确建模,那么通常会有许多参数可以对训练集完美建模,于有限数量的标记训练集尤甚。
这些参数每一个都会对测试集做出不同的预测,并且表现很差,其原因与各特征检测单元过度协同于训练集有关。
可以通过Dropout来减少过拟合的情况。
在论文1中所展示的每个测试用例中,每个隐藏层神经元都以
论文在小批量样本上使用标准的随机梯度下降训练dropout网络,存在一些细节:
测试过程:
1:Hinton, Geoffrey E., et al. “Improving neural networks by preventing co-adaptation of feature detectors.” arXiv preprint arXiv:1207.0580 (2012).