0.前言
过拟合(OverFitting)问题在机器学习中很常见,即模型在训练集数据上表现很好,但在测试集与新数据集上泛化能力很差,这就是过拟合。
1.过拟合的原因
造成过拟合的原因很多。常见的如下
1.训练集数据太少,很容易就过拟合了。
2.训练集测试集的数据分布不一致,这点很容易被忽略。比如有的算法要求数据集符合高斯分布,训练集也满足条件,但是上线以后线上数据分布发生了变化,效果肯定不会太好。
3.模型本身特别复杂。比如树模型,如果树的棵数太多,深度太大,也很容易就过拟合。
2.深度学习中解决过拟合问题的办法
1.针对训练数据太少的问题,可以增加训练数据。
2.增对模型复杂度太高的问题,可以降低模型复杂度。比如,减少层的数量或者减少神经元的个数,这样可以缩小网络的规模。
3.正则化,这是解决过拟合的常用方法。
4.dropout,神经网络在每一次迭代过程中随机地丢弃神经网络中的神经元。每当我们丢弃不同的神经元,相当于重新训练了一个新的神经网络。
5.early stop,训练过程中,如果训练误差继续减小,但是测试误差已经开始增加,此时可以停止训练。
6.集成学习,将多个模型进行组合,可以降低少数模型过拟合风险。
7.BN,Batch Normalization。在CNN每层之间加上将神经元的权重调成标准正态分布的正则化层。