算法背景
过拟合的原因:
在使用深度学习算法进行预测时,为了训练出powerful的神经网络,通常需要设计带有大量参数的神经网络。
- 但若神经网络结构复杂,同时训练数据量小时,容易造成过拟合;
- 样本噪声
- 训练集与测试集特征分布不一致
- 迭代次数过多
常用解决过拟合现象的方法:
- 数据增强
- dropout
- BN(使用BN后就不需要使用dropout)
- L1/L2,soft weight sharing
- early stop train(难以控制时间)
- 降低模型复杂度
算法原理
dropout算法就是在训练过程中,随机移除部分隐藏层的神经元,同时移除掉对应的所有输入与输出。但只是暂时移除,在下一次训练时,又在所有的神经元中随机移除固定比例的神经元。
若隐藏层含有N个神经元,总共有2N种可能的组合,但由于所有的神经网络共享参数,因此参数数量与原来相同,甚至更少。
优点:
- 在训练阶段,dropout之后神经网络会变“瘦”,这样可以避免神经网络结构太复杂,从而导致过拟合。
- 同时在预测过程中,相当于对带有更小参数的处理之后的神经网络的预测结果进行取平均值的效果,会使预测结果更准确。
算法详解
dropout结构: