(1)开始时随机删除掉隐藏层一半的神经元。
(2)然后,在删除后的剩下一半神经元中正向和反向更新权重和偏向。
(3)再恢复之前删除的神经元,重新随机删除一半的神经元,正向和反向更新w和b。
(4)重复上述过程。
最后,学习出来的神经网络中的每个神经元都是在只有一半神经元的基础上学习的,因为更新次数减半,学习的权重会偏大,所以当所有神经元被恢复后(上述步骤(2)),把得到的隐藏层的权重减半。
丢弃为什么可以减少过拟合?原因为:一般情况下,对于同一组训练数据,利用不同的神经网络训练之后,求其输出的平均值可以减少过拟合。Dropout就是利用这个原理,每次丢掉一半的隐藏层神经元,相当于在不同的神经网络上进行训练,这样就减少了神经元之间的依赖性,即每个神经元不能依赖于某几个其他的神经元(指层与层之间相连接的神经元),使神经网络更加能学习到与其他神经元之间的更加健壮的特征。Dropout不仅减少过拟合,还能提高准确率。
10.2.5 代码实例
本节通过将特征标准化并应用各种优化算法来提高神经网络的性能。我们首先来装载数据:
第10章 神经网络
325