##
1.过拟合现象
2.过拟合原因
3.过拟合处理方法
##
一、过拟合现象
过拟合指模型在训练集上学习到的特征过于多,可能把不必要的噪声点也学了进来,此时测试集有一点与训练集数据不一样就会判定错误,因此导致模型方差高,泛化能力较低,在验证集上表现较差。
在训练图像上,随着epoch的增加,loss大体为训练集不断下降,但是验证集的loss在后期呈现上升趋势,甚至有可能超过训练集;acc大体为训练集不断上升有趋于1的趋势,但是验证集的acc(准确率)与训练集相差较多,保持不变或下降。
此处为例图,其中蓝线为训练集,黄线为验证集:
二、过拟合原因
造成过拟合的原因有很多,总体上就是导致学的太过了:
1.数据分布不均匀
解决方法:进行数据增强等操作(这个单独去搜索一下其他博主的经验)
2.模型过于复杂
解决方法:精简模型、正则化(L2、Dropout等)
3.迭代次数(peoch)太多,导致了学的太精细
解决方法:stopping early
三、stopping early
stopping early直接字面理解,就是早停方法,在验证集的状态出现下降的时候就停止训练,例如loss上升或者acc下降。一旦检测到验证集损失值开始上升,便可以讲模型权重调整为loss最小时的状态。但是这个方法有一个缺点就是针对训练过程比较抖动的网络,可能会在抖动期间检测到验证集的状态变化,其实此时并非是验证集的最佳状态,但stopping early会在此时提前终止训练。
四、L2正则化
正则化就是在损失函数中添加一个正则项作为惩罚项,其形式为:
其中L代表损失函数,λ代表正则化系数,J代表正则化项,用于约束模型的复杂性。正则项的形式有L1正则化与L2正则化,带有L2范数的方法称为L2正则化。
L1正则称为哈曼顿距离,化经常用于特征筛选,L2正则化成为欧几里得距离,常用于解决过拟合问题。
具体的L2上述形势见上述连接。