一文读懂欠拟合与过拟合
点击左上方蓝字关注我们
前言:
欠拟合与过拟合的概念
在训练模型的过程中,我们通常希望达到以下两个目的:
1. 训练的损失值尽可能地小。
2. 训练的损失值与测试的损失值之间的差距尽可能地小。
用一个通俗的例子来说明:
欠拟合的特点:训练的损失值很大,且测试的损失值也很大。
过拟合的特点:训练的损失值足够小,而测试的损失值很大。
对于一个足够复杂度或足够参数量的模型或神经网络来说,随着训练的进行,会经历一个“欠拟合-适度拟合-过拟合”的过程。
对于一个复杂度不够的模型或参数量太少的神经网络来说,只有欠拟合。
欠拟合产生的原因与解决方法
根据欠拟合的特点来看,产生欠拟合的主要原因有两个:
1. 模型的容量或复杂度不够,对神经网络来说是参数量不够或网络太简单,没有很好的特征提取能力。通常为了避免模型过拟合,会添加正则化,当正则化惩罚太过,会导致模型的特征提取能力不足。
2. 训练数据量太少或训练迭代次数太少,导致模型没有学到足够多的特征。
根据欠拟合产生的原因来分析,解决方法有两个:
1. 换个更复杂的模型,对神经网络来说,换个特征提取能力强或参数量更大的网络。或减少正则化的惩罚力度。
2. 增加迭代次数或想办法弄到足够的训练数据或想办法从少量数据上学到足够的特征。如适度增大epoch,数据增强,预训练,迁移学习,小样本学习,无监督学习等。
过拟合产生的原因与解决方法
根据过拟合的特点来看,过拟合产生的原因有以下四个:
1. 模型太复杂,对神经网络来说,参数太多或特征提取能力太强,模型学到了一些偶然的特征。
2. 数据分布太单一,例如训练用的所有鸟类都在笼子里,模型很容易把笼子当成识别鸟的特征。
3. 数据噪声太大或干扰信息太多,如人脸检测,训练图像的分辨率都是几百乘几百,而人脸只占了几十到几百个像素,此时背景太大,背景信息都属于干扰信息或噪声。
4. 训练迭代次数太多,对数据反复地训练也会让模型学到偶然的特征。
根据过拟合产生的原因来看,解决方法有以下四个:
1. 换一个复杂度低一点的模型或正则化,对神经网络来说,使用参数量少一点的网络,或使用正则化。
2. 使用不同分布的数据来训练。如数据增强,预训练等。
3. 使用图像裁剪等方法对图像进行预处理。
4. 及时地停止训练。如何判断什么时候该停止训练?使用K折交叉验证,若训练损失还在减少,而验证损失开始增加,则说明开始出现过拟合。
END
整理不易,点赞三连↓