05 过拟合(over-fitting)与正则化(regularization)

news/2025/2/25 16:32:13/文章来源:https://www.cnblogs.com/wangle1006/p/18736648

1. 什么是Overfitting

我们希望神经网络模型能够找到数据集中的一般规律,从而帮助我们预测未知数据。这个过程是通过不断地迭代优化损失函数(也就是预测值和实际值的误差)而实现的。然而随着误差进一步缩小,模型的“走势”过于“贴合”我们的训练数据,对训练数据中的噪声也过于趋近,把这些噪声数据也学进了模型当中。这时候,该模型承载的就不再是“一般规律”,而是把所有数据几乎“记忆”了下来。当我们用这种模型去预测未知数据时,会发现误差非常大。这种模型过于“贴合”训练数据的情况,就叫做过拟合(Overfitting)。
下图展示了回归任务和分类任务的三种不同拟合情况:

Meedeniya, Dulani. Deep Learning: A Beginners’ Guide. 1st ed. New York: Chapman and Hall/CRC, 2023.

Overfitting的表现,一般是在训练数据上表现优异,但在未见过的新数据上表现显著下降。因此,我们通常将所有数据集分成训练集和测试集,用训练集训练模型,用测试集验证模型是否发生过拟合。

上图中,在Underfitting时,模型几乎没有学习到数据的一般规律,此时训练集的误差和测试集的误差都很大;在Overfitting时,模型过于“贴合”训练数据,导致把噪声内容也学习到模型当中,此时模型虽然在训练集上误差很小,但在测试集上表现很差;理想情况应该是模型学习到数据的一般规律,在训练集和测试集上表现良好。

2. Overfitting的原因

模型过于复杂

当模型的参数增多,层数加深时,模型表达能力也在提升,但当表达能力远超数据真实规律时,就更容易学习到训练数据中的噪声、异常值或特定细节,而非学习到数据背后的通用规律。

数据量不足 质量低劣

当训练样本过少时,模型难以捕捉数据的整体分布,反而把局部的噪声当作规律。

训练策略不当

在模型训练时,训练集的误差随着优化过程不断地缩小,如果训练迭代次数过多,就会使得模型过于“贴合”训练数据,导致在测试集上误差加大。

3. 如何处理overfitting

正则化(Regularization)的定义
正则化是一类提升模型泛化能力的技术,其核心目标是抑制模型对训练数据中噪声、异常值或局部特征的过度依赖,从而缓解过拟合现象。所谓泛化能力,是把在已知数据中学习到的潜在规律(知识)迁移到未知数据上的能力。泛化能力好,则模型应用到未知数据上也能进行很好的预测;泛化能力差,则模型不能很好的对未知数据进行预测。一切提升模型泛化能力的方法都可以称为正则化方法。

通过上文中Overfitting原因介绍,我们很容易对症下药,从调整训练策略、降低模型复杂度、增强数据三个面找到处理Overfitting的方法:

early stopping

正则化最简单的方式,就是提前结束训练。在优化迭代的进行过程中,训练集数据的误差会持续降低,而验证集上的误差则会经历一个初始的下降阶段后达到一个转折点。过了这个转折点,模型开始出现过拟合现象,导致验证集上的误差转而上升。因此,我们在这个拐点处就停止迭代,以此来有效避免模型的过拟合问题。

dropout

在训练时随机“丢弃”(临时屏蔽)一部分神经元,迫使网络不依赖特定神经元,增强泛化能力。这本质上是一种降低模型复杂度的方法。这种随机的丢弃是指在每次迭代均屏蔽不同的神经元,确保模型在不同训练批次中接触不同的子网络结构。

具体实现方法是:在训练阶段,每个神经元以概率p被保留,以1-p的概率被临时屏蔽(输出置零)。屏蔽过程通过生成与神经元输出维度相同的随机掩码矩阵实现,矩阵元素以概率p取1,其余取0。保留的神经元输出乘以1/p,这是为了保证整体流入下一层的信号强度不变。
示例:若某层有1000个神经元,保留概率p=0.7,则每次迭代约300个神经元被屏蔽,剩余700个输出放大至1/0.7≈1.428
在反向传播时,该层神经元的梯度也要乘以这个掩码矩阵,保证其对应的权重不得到更新。

在测试时,将所有神经元保留,来测试整体模型能力。

L1,L2正则化

L1正则化(Lasso):在损失函数中添加参数的绝对值之和作为惩罚项:

其中,\(L_{data}\)为原始损失函数(如均方误差),λ为正则化强度参数。

L2正则化(Ridge):在损失函数中添加参数的平方和作为惩罚项:

注意L2正则化常包含系数1/2​以简化梯度计算。

我们看损失函数添加了正则项之后对梯度的影响:
L1的梯度更新

符号函数\(sgn(w_j​)\)导致参数每次更新固定步长(如±λ),当w为正时,更新后w会变小;w为负时,更新后w会变大。w最终可能收敛到0,从而降低模型复杂度。

L2的梯度更新

参数更新幅度与当前值成正比,参数逐渐衰减但不会归零。通过限制权重幅度,L2正则化实质降低了模型的“容量”,使其无法过度关注训练数据中的细微波动,从而更关注主要规律。

L1、L2对比:
L1正则化鼓励模型参数稀疏化(即产生很多零值参数),通过稀疏性自动筛选重要特征,适用于高维数据(如基因数据、文本分类)。而L2正则化则使模型参数趋近于零,但并不产生完全稀疏的模型。
L1正则化倾向于将无关特征权重设置为零,对于异常值较为鲁棒;而L2正则化则对所有参数进行平滑处理,防止模型对单一特征过度敏感,有一定的抑制噪声作用。
从计算角度来看,L2正则化由于目标函数可导,优化过程更稳定。

数据增强

增加训练数据量,或通过对训练数据进行随机变换(如旋转、缩放、平移等)来增加数据多样性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/889635.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客题解 | 删除链表中重复的结点

题目 题目链接 题目的主要信息:在一个非降序的链表中,存在重复的节点,删除该链表中重复的节点 重复的节点一个元素也不保留举一反三: 学习完本题的思路你可以解决如下题目: JZ18. 删除链表的节点 方法一:直接比较删除(推荐使用) 思路: 这是一个升序链表,重复的节点都…

S2-暗影-牧师Priest-团体-大秘境-专精-天赋-配装-宏

S2毕业装--属性 精通>急速>爆击>全能 精通和急速越高越好。爆击随缘。不要全能。 --团本/单体天赋(更新时间2月1日)--团本/单体天赋代码 CIQAAAAAAAAAAAAAAAAAAAAAAAMmZAAAAAAAAAAAAAGmFPAzMz2sNmZmZMzMLDmNmZmZMbMwYMMLmtpmZwCMAmZzywsZAIjxCA --大秘/AOE天赋(更新时…

S2-戒律-牧师Priest-团体-大秘境-专精-天赋-配装-宏

S2毕业装--属性 急速>全能>精通>爆击 急速和全能越高越好。精通和爆击随缘。 --团本天赋(更新时间2月1日)--团本天赋代码 CAQAJSbRac/22NxZbHdYKOQzcAAWmtZGD2GjZmxMbmtZmZmhBAAAAAAAAAAAzilZbYbmZwswwMzMGsw2MNmYBYmBAFgZbW2AjNb --大秘天赋(更新时间2月1日)--大秘天…

牛客题解 | 二叉树的最大深度

牛客题库题解题目 题目链接 题目的主要信息:给定一棵二叉树的根节点,求这棵树的最大深度 深度是指树的根节点到任一叶子节点路径上节点的数量 最大深度是所有叶子节点的深度的最大值 叶子节点是指没有子节点的节点举一反三: 学习完本题的思路你可以解决如下题目: BM29. 二叉…

牛客题解 | 二叉树的深度

牛客题库题解题目 题目链接 题目的主要信息:给定一棵二叉树的根节点,求这棵树的最大深度 深度是指树的根节点到任一叶子节点路径上节点的数量 最大深度是所有叶子节点的深度的最大值 叶子节点是指没有子节点的节点举一反三: 学习完本题的思路你可以解决如下题目: JZ82. 二叉…

牛客题解 | 二叉树中和为某一值的路径(三)

牛客题库题解题目 题目链接 题目的主要信息:给定一个二叉树root和一个整数值 sum ,求该树有多少路径的的节点值之和等于 sum 路径定义不需要从根节点开始,也不需要在叶子节点结束,但是一定是从父亲节点往下到孩子节点,如下图所示:举一反三: 学习完本题的思路你可以解决如…

S2-兽王-猎人Hunt-团体-大秘境-专精-天赋-配装-宏

S2毕业装--属性 急速>爆击>精通>全能 急速和爆击越高越好。精通随缘。不要全能。 --团本/单体天赋(更新时间2月10日)--团本/单体天赋代码 C0PAAAAAAAAAAAAAAAAAAAAAAAMmxGDsALDDNsBAAAAAgBAAAAAAYGLDzyMjhxYmZMMjZGjZmZyMMmZmZmxMjZYMmZGGDGzgN --大秘/AOE天赋(更新时…

牛客题解 | 二叉树中和为某一值的路径(二)

牛客题库题解题目 题目链接 题目的主要信息:题目给出我们一棵树的树根结点指针,和一个期待值 我们要找出这棵树中,从根节点到叶子节点的路径上的节点值之和等于该期待值的路径,找出所有这样的路径并返回。举一反三: 学习完本题的思路你可以解决如下题目: JZ82. 二叉树中和…

S2-恩护-唤魔师Evoker-团体-大秘境-专精-天赋-配装-宏

S2毕业装--属性 爆击>急速>精通>全能 爆击,急速和精通的收益非常接近。全能随缘。 --团本天赋(更新时间2月4日)--团本天赋代码 CwbBV7//nP39x/JJympTqouKSAAAAAAYmZMLzghZGzixMbjZGAAwMjZMDGzIMDAAAwMzIsNzMz2MzAAjZDWALgZYCZgNDD --大秘天赋(更新时间2月4日)--大秘天…

牛客题解 | 二叉搜索树的后序遍历序列

牛客题库题解题目 题目链接 题目的主要信息:题目给出我们一个一维数组sequence 该数组需要我们判定数组sequence中的元素是否符合一个二叉搜索树的后序遍历顺序 如果该数组sequence可以是一种二叉搜索树的后序遍历顺序,则返回true 如果该数组sequence非二叉搜索树的后序遍历顺…

FX5U 三菱PLC 增加采集协议

FX5U 三菱PLC 增加采集协议 MC协议,端口只能连一个设备

牛客题解 | 买卖股票的最好时机(一)

牛客题库题解题目 题目链接 题目主要信息:给出一个数组表示连续多日的股票价格 你可以选择在某一天买入股票,在另一天卖出股票,买卖都只有一次机会,不能在同一天 假设买卖没有手续费,问最高收益是多少,即卖出的价格减去买入的价格,如果没有利润需要返回0 可以看成查找数…