过拟合:指模型对于训练数据拟合呈过当的情况,反映到评估指标上,是模型在训练集上表现很好,但在测试集和新数据上表现较差;在模型训练过程中,表现为训练误差持续下降,同时测试误差出现持续增长的情况。
欠拟合:指模型对于训练数据拟合不足的情况,表现为模型在训练集和测试集上表现都不好。
如上图所示,从左至右,依次为欠拟合、正常模型和过拟合情况,欠拟合情况中,拟合蓝线没有很好地捕捉到数据的特征,不能很好地拟合数据;过拟合的模型过于复杂,把噪声数据的特征也学习到模型中,导致模型泛化能力下降。
1 降低“过拟合”风险策略
1.1 获取更多的训练数据
使用更多的训练数据是解决过拟合问题的最有效手段,因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响,一般通过以下3个手段获取更多数据:
1.1.1 增加实验数据
增加实验数据来扩充训练数据,例如,图像分类问题,多拍几张物体的照片,但是在大多数情况下,大幅增加实验数据很困难,而且我们不清楚多少数据才能足够。
1.1.2 数据增广(Data Augmentation)
通过一定规则扩充数据,例如,图像分类问题,可以通过对现有图像进行平移、旋转、缩放等方式生成新的图片,以扩充训练数据。
1.1.3 合成数据
使用生成对抗网络(Generative Adversarial Network,GAN)来合成大量的新训练数据。
1.2 调整模型
在数据较少时,模型过于复杂是产生过拟合的主要因素,适当降低模型复杂度可以避免模型拟合过多的采样噪声。
1.2.1 调整模型结构
神经网络模型:减少网络层数、隐层神经元数量等;
决策树模型:降低树的深度、进行剪枝等。
1.2.2 早停(Early stopping)
将数据分成训练集和验证集,训练集用来计算梯度、更新超参数,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练。
1.2.3 正则化(regularzation)
基本思想为,在损失函数中一个用于描述网络复杂度的部分,即结构风险项,在模型训练过程中限制权重增大。以L2正则化为例:
其中,C0C_0C