过拟合、欠拟合

Dulcea ·
更新时间:2024-11-11
· 739 次阅读

过拟合和欠拟合 训练误差和泛化误差 训练误差,模型在训练集合上表现的误差。 泛化误差 ,模型在任意一个数据集上表现出来的误差的期望。 过拟合,模型训练误差远小于在测试集上的误差。 欠拟合 ,模型无法在训练集上得到较低的训练误差。 如何判断过拟合和欠拟合

现在常用的判断方法是从训练集中随机选一部分作为一个验证集,采用K折交叉验证的方式。把原始训练数据集分割成K个不重合的子数据集,然后我们做K次模型训练和验证。每一次,我们使用一个子数据集验证模型,并使用其他K-1个子数据集来训练模型。在这K次训练和验证中,每次用来验证模型的子数据集都不同。最后,我们对这K次训练误差和验证误差分别求平均。

主要的因素 模型复杂度 训练数据集大小

在这里插入图片描述
般来说,如果训练数据集中样本数过少,特别是比模型参数数量(按元素计)更少时,过拟合更容易发生。此外,泛化误差不会随训练数据集里样本数量增加而增大。因此,在计算资源允许的范围之内,我们通常希望训练数据集大一些,特别是在模型复杂度较高时。
解决的方法
过拟合:

权重衰减

在loss 函数上增加二范数,l2 norm,即权重衰减等价于 L2 范数正则化(regularization)。正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。
在这里插入图片描述
其中超参数 λ>0 。当权重参数均为0时,惩罚项最小。当 λ 较大时,惩罚项在损失函数中的比重较大,这通常会使学到的权重参数的元素较接近0。当 λ 设为0时,惩罚项完全不起作用。

dropout
dropout的思想是当一组参数经过某一层神经元的时候,去掉这一层上的一部分神经元,让参数只经过一部分神经元进行计算。注意这里的去掉并不是真正意义上的去除,只是让参数不经过一部分神经元计算而已。

提前终止训练
减少训练的迭代次数。从上面的误差率曲线图可以看出,理论上能够找到一个训练程度,此时验证集误差率最低,视为拟合效果最好的点。

欠拟合
增加模型复杂度或者提高数据集大小。


作者:aimicm



过拟合 欠拟合

需要 登录 后方可回复, 如果你还没有账号请 注册新账号