正则化方法:L1/L2如何防止过拟合

admin 2026-05-01 05:54:50 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细解释了L1和L2正则化如何防止机器学习模型过拟合。L2正则化通过在损失函数中加入权重平方和作为惩罚项,使所有权重参数普遍变小但不为零,从而提升模型泛化能力;L1正则化则使用权重绝对值之和作为惩罚项,能产生稀疏解,即部分权重精确为零,具备自动特征选择的功能。文章还从几何角度阐释了L1产生稀疏性的原因,并列举了基因数据分析、推荐系统等实际应用场景。 综合评分: 0 文章分类: 其他


cover_image

正则化方法:L1/L2 如何防止过拟合

原创

代码小铺 代码小铺

代码小铺

2026年4月30日 14:43 湖北

在小说阅读器读本章

去阅读

引言

想象一下,你是一名备考的学生。考试前一天,你把历年真题的每一道题、每一个答案都背了下来。考试那天,你发现题目跟历年真题一模一样——你考了满分。但第二天换了一套新题,你却不及格。

这就是机器学习中的过拟合(Overfitting)。模型把训练数据”背”得太熟,却失去了泛化能力。而正则化,就是那个在你死记硬背时提醒你”理解规律更重要”的老师。

今天,我们就来聊聊机器学习中最经典的两种正则化方法——L1 正则化L2 正则化,以及它们是如何从数学上”管住”模型的。


核心概念:什么是过拟合?

训练机器学习模型时,我们希望模型学会的是数据背后的一般规律,而不是死记硬背每一条数据。

但模型往往”太努力”了。当你给它一个拥有数百万参数的深度网络,又只给它几千条训练数据时,模型会完美拟合每一条训练样本——包括那些噪声和异常值。

用一个形象的比喻:

  • 欠拟合:模型只画了一条直线,连数据的大致趋势都没抓住
  • 恰好拟合:模型画了一条平滑的曲线,抓住了数据的核心规律
  • 过拟合:模型画了一条疯狂扭动的曲线,穿过了每一个数据点

过拟合的模型在训练集上表现完美,但遇到从未见过的新数据时,表现惨不忍睹。


公式推导:损失函数 + 惩罚项

要理解正则化,我们先看机器学习的核心目标函数——损失函数

其中 w 是模型的参数(权重),L 是衡量预测值和真实值之间差距的函数,n 是样本数量。

问题在于,仅最小化这个损失,模型会倾向于把某些权重变得非常大——用极其复杂的函数去拟合每一个数据点。

正则化的思路很朴素:在损失函数上加一个”惩罚项”,限制参数的大小

L2 正则化(Ridge 回归)

L2 正则化在所有参数的平方和上加一个惩罚:

这里的 是正则化强度参数,控制”管得多严”。 越大,对参数的惩罚越重,模型被迫选择更小的权重值。

L2 的效果:让所有权重都变小,但不会精确变成零。它像是给参数施加了一个”温和的引力”,让它们保持在零附近,却不强制清零。

L1 正则化(Lasso 回归)

L1 正则化使用参数的绝对值之和作为惩罚:

L1 的效果:它不仅让权重变小,还会把一些不重要的权重精确地变成零。这就是所谓的稀疏性(Sparsity)——L1 自动帮你做了特征选择。


几何直觉:为什么 L1 会产生稀疏性?

这个问题从几何角度看特别优雅。

考虑一个只有两个参数 的简单模型。我们可以把正则化约束画在二维平面上:

  • L2 约束,这是一个圆形
  • L1 约束,这是一个菱形(旋转的正方形)

现在想象损失函数的等值线(椭圆形的等高线)。最优解出现在等值线第一次碰到约束区域边界的地方。

对于圆形的 L2 约束,等值线通常在某个”边上的点”接触, 都不为零。

但对于菱形的 L1 约束,等值线很容易在菱形的顶点处接触——而这些顶点恰好落在坐标轴上!这意味着某个参数精确为零。

维度越高,L1 的”角”和”棱”就越多,产生零参数的概率就越大。这就是 L1 正则化天然具有特征选择能力的数学原因。


实际应用

场景一:基因数据分析

在癌症基因研究中,可能有 20000 个基因特征,但只有几百个样本。绝大多数基因与癌症无关。这时 L1 正则化会自动选出最重要的少数基因,把其余的权重归零——相当于从 20000 个候选者中自动筛选出几十个”关键嫌疑人”。

场景二:推荐系统中的 Embedding

大规模推荐系统往往有百万级的用户特征。L2 正则化被广泛用于控制 Embedding 向量的大小,防止某些特征因为出现频率高而主导模型输出。Netflix 和 YouTube 的推荐系统底层都大量使用了 L2 正则化。

场景三:弹性网络(Elastic Net)

实际应用中,L1 和 L2 经常被组合使用:

这被称为弹性网络,它同时拥有 L1 的稀疏性和 L2 的稳定性,是很多竞赛冠军和工业界方案的标准配置。

场景四:深度学习中的权重衰减

在深度学习中,L2 正则化有一个更广为人知的名字——权重衰减(Weight Decay)。几乎所有深度学习框架都在优化器中内置了这个功能。PyTorch 的 AdamW 优化器、TensorFlow 的 kernel_regularizer,底层都是 L2 正则化的变体。


一个直观的小例子

假设你用一个多项式拟合 10 个数据点:

  • 不加正则化:模型可能用一个 9 次多项式完美穿过所有 10 个点,但曲线剧烈震荡
  • 加上 L2 正则化:高次项的系数被惩罚,模型倾向于选择更平滑的低次多项式
  • 加上 L1 正则化:某些次项的系数直接变为零,模型自动”决定”哪些项不需要

这就是正则化的核心哲学:与其让模型自由发挥到极致,不如适度约束它,反而能得到更好的泛化能力


总结

| 特性 | L1 正则化 | L2 正则化 | | — | — | — | | 惩罚项 | 权重绝对值之和 | 权重平方和 | | 效果 | 产生稀疏解,自动特征选择 | 让所有权重变小 | | 几何形状 | 菱形约束(有顶点) | 圆形约束(无顶点) | | 典型应用 | 特征选择、稀疏模型 | 权重衰减、防止过拟合 | | 经典方法 | Lasso | Ridge 回归 |

正则化的本质,是用数学的方式告诉模型:”你不需要完美记住每一条训练数据,学会抓住规律就够了。”这种约束带来自由的思想,不仅适用于机器学习,也适用于我们学习、工作和生活的方方面面。


本文是「代码小铺」数学基础系列的第 26 期。如果觉得有收获,欢迎分享给更多朋友。下期我们继续探索机器学习背后的数学之美。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:代码小铺 代码小铺 代码小铺《正则化方法:L1/L2 如何防止过拟合》

评论:0   参与:  0