Dropout
- 深度神经网络的参数量巨大,容易出现过拟合。Dropout是一种用于防止神经网络过拟合的技术。
- 常用的防止过拟合的方法:
- 在训练过程中,当模型在验证集上效果开始变差的时候,停止训练。
- 引入参数的惩罚项,例如L1,L2正则。
Dropout原理:
- 去掉打叉的神经元,得到右边的子网络。
- 上图显示了具体的公式, r j ( l ) r_j^{(l)} rj(l)的取值为0或1,有概率p为1,概率1-p为0。
Drop的训练与预测:
- 在训练过程中,神经元以p的概率保留;在测试的时候,所有神经元都保留,只是对权重进行了缩放,变成了 p w pw pw,从而使得训练和测试时神经元的输出的期望都为 p w x pwx pwx。
- 输入层的dropout的p一般设置为0.8以上,隐藏层的p一般设置为0.5。
Dropout可以和很多其它的方法混合使用:
- L1/L2正则
- Max-norm正则
- Large decaying learning rate(学习率的衰减)
- Unsupervised Pretraining(学习率较小的时候才有效)
- Stacks of RBMs
- AutoEncoders
- Deep Boltzmann Machines