一、认识过拟合与欠拟合
经典图示,其中:
图1:欠拟合表示:模型不能在训练集上获得足够低的训练误差,即:没有学习到;
图3:过拟合表示:模型的训练误差与测试误差之间差距较大,即:在训练集上表现好,在测试集和新数据上表现一般,过学习。
二、解决过拟合的方法
深度学习中常见于解决过拟合。(所有为了减少测试误差的策略统称为正则化方法,这些方法可能会以增大训练误差为代价。)
(1)数据增强(数据扩充)
a、图像的数据扩充:平移、旋转、缩放。例如:Keras中的ImageDataGenerator。(可在Keras中文文档中去了解)
b、利用生成对抗网络(GAN)生成新数据;(后期学习之后会跟进)
(2)降低模型复杂度
a、就神经网络而言:减少网络层数和神经元个数;
b、就决策树而言:降低树的深度、剪枝;
(3)权值约束(添加正则化项)
a、L1正则化
b、L2正则化
(4)集成学习
a、就神经网络而言:Dropout、BatchNormalization
b、就决策树而言:随机森林、GBDT;
(5)提前终止
EarlyStopping
三、解决欠拟合的方法
Note:可以对应着上述解决过拟合的方法来考虑
(1)加入新的特征
a、交叉特征、多项式特征、...
b、深度学习:因子分解机、Deep-Crossing、自编码器
(2)增加模型复杂度
a、线性模型:添加高次项
b、神经网络:增加网络层数、神经元个数
(3)减小正则化项的系数
a、添加正则化项是为了限制模型的学习能力,减小正则化项的系数则可以放宽这个限制
b、模型通常更倾向于更大的权重,更大的权重可以使模型更好的拟合数据