当验证集准确率一直低于训练集准确率,但无明显下降趋势,这说明此时模型复杂度欠缺,模型能力有限。–欠拟合,增加层数、调整激活函数增加网络非线性、减小模型正则化等措施增大网络复杂度。
当验证集准确率一直低于训练集准确率,且随着训练轮数增加有明显下降趋势。–过拟合,增大网络模型正则化削弱网络复杂度。
也可对应loss的变化。
如何防止过拟合?
- 增大网络模型正则化
- early stopping
- 增加训练数据或者尝试更多数据扩充方式
- dropout
随机失活 dropout
原理:对于某层的每个神经元,在训练阶段均以概率p随机将该神经元权重置0,测试阶段所有神经元均呈激活态,但其权重需乘(1-p)以保证训练和测试阶段各自权重拥有相同的期望。
由于失活的神经元无法参与到网络训练,因此每次训练(前向操作和反向操作)时,相当于面对一个全新网络。随机失活后,相当于指数级子网络的网络集成,对于提升模型泛化性效果显著。
在工程实现中采用“倒置随机失活”,在训练阶段直接将随机失活后的网络响应乘以1/(1-p),这样测试阶段不需做任何量级调整。