深度学习中的过拟合、欠拟合问题(原因及解决方法)

您所在的位置:网站首页 模型训练的方法有哪些 深度学习中的过拟合、欠拟合问题(原因及解决方法)

深度学习中的过拟合、欠拟合问题(原因及解决方法)

2024-06-18 16:54| 来源: 网络整理| 查看: 265

深度学习中的过拟合、欠拟合问题(原因及解决方法) 1. 过拟合1.1 引起过拟合的原因1.2 防止过拟合的方法 2. 欠拟合2.1 引起欠拟合的原因2.2 防止欠拟合的方法

机器学习的基本问题是利用模型对数据进行拟合,学习的目的并非是对有限训练集进行正确预测,而是对未曾在训练集合出现的样本能够正确预测。模型对训练集数据的误差称为经验误差,对测试集数据的误差称为泛化误差。模型对训练集以外样本的预测能力就称为模型的泛化能力,追求这种泛化能力始终是机器学习的目标。

过拟合和欠拟合是导致模型泛化能力不高的两种常见原因,都是模型学习能力与数据复杂度之间失配的结果。“欠拟合”常常在模型学习能力较弱,而数据复杂度较高的情况出现,此时模型由于学习能力不足,无法学习到数据集中的“一般规律”,因而导致泛化能力弱。与之相反,“过拟合”常常在模型学习能力过强的情况中出现,此时的模型学习能力太强,以至于将训练集单个样本自身的特点都能捕捉到,并将其认为是“一般规律”,同样这种情况也会导致模型泛化能力下降。

过拟合与欠拟合的判断标准:

训练集上的表现测试集上的表现结论不好不好欠拟合好不好过拟合好好适度拟合 1. 过拟合

过拟合(over-fitting)也称为过学习,它的直观表现是算法在训练集上表现好,但在测试集上表现不好,泛化性能差。

1.1 引起过拟合的原因 训练集的数据太少或者缺乏代表性;训练集样本存在的噪音干扰过大,导致模型拟合了噪音的特征,反而忽略了真实的输入输出间的关系;参数太多,模型复杂度过高;对于神经网络模型:(a) 对样本数据可能存在分类决策面不唯一,随着学习的进行,BP算法使权值可能收敛过于复杂的决策面;(b) 权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征;对于决策树模型,如果我们对于其生长没有合理的限制,其自由生长有可能使节点只包含单纯的事件数据(event)或非事件数据(no event),使其虽然可以完美匹配(拟合)训练数据,但是无法适应其他数据集。 1.2 防止过拟合的方法

1、增加数据量

从数据源头获取更多数据;

通过数据增强对数据进行扩充:对图像进行翻转、裁剪、缩放、平移、添加噪声等。

2、正则化

在进行目标函数或代价函数优化时,在目标函数或代价函数后面加上一个正则项,一般有L1正则、L2正则等。

稀疏参数( L1 ):参数的稀疏,在一定程度实现了特征的选择。稀疏矩阵指有很多元素为0,少数参数为非零值。一般而言,只有少部分特征对模型有贡献,大部分特征对模型没有贡献或者贡献很小,稀疏参数的引入,使得一些特征对应的参数是0,所以就可以剔除可以将那些没有用的特征,从而实现特征选择。

更小参数( L2 ):越复杂的模型,越是尝试对所有样本进行拟合,那么就会造成在较小的区间中产生较大的波动,这个较大的波动反映出在这个区间内的导数就越大。只有越大的参数才可能产生较大的导数。试想一下,参数大的模型,数据只要偏移一点点,就会对结果造成很大的影响,但是如果参数比较小,数据的偏移对结果的影响力就不会有什么影响,那么模型也就能够适应不同的数据集,也就是泛化能力强,所以一定程度上避免过拟合。

L1正则化和L2正则化的区别:

L1 正则化是指权值向量 w w w 中各个元素的绝对值之和,通常表示为 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣1 ;L2 正则化是指权值向量中各个元素的平方和的开方,通常表示为 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣2 ;

L1正则化减少的是一个常量,L2正则化减少的是权重的固定比例;

使用L1可以得到稀疏的权值;使用L2可以得到平滑的权值(L1会趋向于产生少量的特征那个,而其他特征都是0,而L2会选择更多的特征,这些特征会接近于0);

参数更新的快慢取决于参数本身的大小,参数较大时L2正则化快,参数较小时L1正则化快;

实践中L2正则化通常优于L1正则化。

3、Dropout

在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。

4、Early stopping

如图所示,在对模型训练的时候,模型在训练集上的精度随着时间会一直提高,然而模型在验证集上的精度会提高到一定程度后逐步下降。对模型进行训练的过程即是对模型的参数进行更新的过程,参数更新会用到一些优化算法,为了能够得到验证集精度最高时的参数,Early Stopping的做法就是运行优化方法直到若干次在验证集上的精度没有提升时候停止。

一般的做法是,在训练的过程中,记录到目前为止最好的验证集精度,当连续10次Epoch(或者更多次)没达到最佳精度时,则可以认为精度不再提高了,此时就可以停止迭代了。

早停 5、剪枝

剪枝是决策树类算法防止过拟合的方法。如果决策树的结构过于复杂,可能会导致过拟合问题,此时需要对树进行剪枝,消掉某些节点让它变得更简单。剪枝的关键问题是确定减掉哪些树节点以及减掉它们之后如何进行节点合并。决策树的剪枝算法可以分为两类,分别称为预剪枝和后剪枝。前者在树的训练过程中通过停止分裂对树的规模进行限制;后者先构造出一棵完整的树,然后通过某种规则消除掉部分节点,用叶子节点替代。

6、集成学习

Bagging:从训练集中自助采样,训练多个相互独立的弱学习器,通过一定结合策略形成一个强学习器;

Boosting:初始化训练一个基学习器→根据表现调整样本分布(预测错误的样本在后续收到更多关注)→训练下一个基学习器→多个学习器加权结合。

2. 欠拟合

欠拟合(under-fitting)也称为欠学习,它的直观表现是算法训练得到的模型在训练集上表现差,没有学到数据的规律。

2.1 引起欠拟合的原因 特征量过少;模型复杂度过低。 2.2 防止欠拟合的方法

1、增加特征数

当特征不足或者现有特征与样本标签的相关性不强时,模型易出现欠拟合。可以通过挖掘上下文特征,ID类特征,组合特征等新的特征。

2、 增加模型复杂度

模型简单时其表达能力较差,容易导致欠拟合,因此可以适当地增加模型复杂度,使模型拥有更强的拟合能力。例如在线性模型中添加高次项,神经网络中增加网络层数或神经元个数,或使用非线性模型(核SVM 、决策树、深度学习模型等)。

3、减少正则化参数

正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,就需要减少正则化参数。

参考文献:

https://zhuanlan.zhihu.com/p/56475281 https://blog.csdn.net/qq_42012732/article/details/107318550



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3