正则化L1/L2

wen IT资讯 27

本文目录导读:

正则化L1/L2

  1. 核心思想与数学公式
  2. 主要效果与区别 (这是最核心的部分)
  3. 直观几何解释
  4. 为什么L1能产生稀疏解?(更容易理解的解释)
  5. 适用场景
  6. 实践中的注意事项

这是一个非常核心的机器学习概念。正则化 (Regularization) 是一种防止模型过拟合的技术,它通过在损失函数中加入一个惩罚项,来限制模型参数(权重)的大小,从而让模型变得更简单、更具泛化能力。

L1和L2正则化是两种最常见的方式,下面我从核心思想、数学公式、主要效果、直观理解适用场景这几个维度为你详细拆解。


核心思想与数学公式

想象一下,原始的损失函数(比如均方误差MSE)是 Loss_original,正则化就是在它的后面加上一个“惩罚项”。

通用形式: Loss = Loss_original + λ * 惩罚项

  • λ (Lambda): 正则化强度系数,λ越大,惩罚力度越强,模型参数会被压缩得越厉害;λ越小,则越接近原始模型。

L1 正则化 (Lasso Regression)

  • 惩罚项: 所有模型参数(权重)的绝对值之和
  • 数学公式: Loss = Loss_original + λ * Σ|wi|

    wi 是模型的权重系数。

L2 正则化 (Ridge Regression)

  • 惩罚项: 所有模型参数(权重)的平方和
  • 数学公式: Loss = Loss_original + λ * Σ(wi²)

    wi 是模型的权重系数。


主要效果与区别 (这是最核心的部分)

这是最需要理解的部分,也是面试或应用中常考的点。

特性 L1 正则化 (Lasso) L2 正则化 (Ridge)
主要效果 特征选择 (产生稀疏权重) 权重衰减 (让权重均匀变小)
最终权重 许多不重要的特征权重会变成精确的0 所有权重都趋近于0,但很少精确为0
模型复杂度 使模型更简单,因为去掉了无用特征 使模型更稳定,但保留了所有特征
解的特性 稀疏解 稠密解
导数/梯度 梯度为常数(±1),在0点不可导 梯度为2*w,在0点可导
对异常值 更鲁棒 (因为不受平方放大的影响) 更敏感 (因为平方放大了异常值的影响)

一句话总结:

  • L1 是一个“剪刀”,把不重要的特征“剪掉”(权重置0)。
  • L2 是一个“压路机”,把所有权重都“压扁”一点,但不会彻底压没。

直观几何解释

想象一个二维损失函数的等高线图(椭圆形),中心点(红点)是最小化原始损失的点,正则化项会施加一个“约束区域”。

  • L1: 约束区域是一个菱形 (正方形旋转45度)。
  • L2: 约束区域是一个

优化的过程是:在椭圆等高线上找到一个点,使其既能尽可能接近中心(原始损失小),又落在约束区域内(惩罚小)。

  • L1 (菱形): 菱形有“尖角”,这些角落在坐标轴上(比如w1=0),等高线非常容易与菱形的尖角相切,一旦相切,其中一个权重就为0,这就是为什么L1能产生稀疏解。

    • 图示: 椭圆与菱形的角相切,得到一个坐标轴上的点。
  • L2 (圆形): 约束区域是光滑的圆形,没有尖角,等高线与圆的切点几乎不可能恰好落在坐标轴上,而是在圆上的某一点,所有权重都非零,但都向圆心收缩。

    • 图示: 椭圆与圆的一个弧面相切,得到一个非零的二维点。
(想象图)
L1 (菱形):          L2 (圆形):
  | w2               | w2
  |  ██               |   ╰─╮
  |████               | ╭───╮
  |  ██               │ │   │
  └─────── w1         └─────── w1
(切点可能在角上,导致w1或w2=0)  (切点在弧上,w1和w2都不为0)

为什么L1能产生稀疏解?(更容易理解的解释)

想象一个特征非常不重要,它的最优权重值很小,比如0.1。

  • L2 情况: 惩罚项是 λ * (0.1)² = 0.01λ,惩罚很小,模型觉得“留着也没太大关系”,于是保留了这个0.1的权重。
  • L1 情况: 惩罚项是 λ * |0.1| = 0.1λ,惩罚相对较大,模型一算:“为了保留这个0.1的权重,我要付出0.1λ的代价,不如直接把它设成0,还能省下这个惩罚。” 这个特征的权重就被精确地“剪掉”了。

对于稍微重要一点的特征(比如权重=10):

  • L2: λ * 100 (平方放大)
  • L1: λ * 10

所以L2对大权重的惩罚更重(100 vs 10),会迫使所有大权重都变小,而L1则对所有非零权重一视同仁地惩罚,导致小权重被优先“清理”掉。


适用场景

场景 推荐正则化 原因
特征非常多,且大部分无用 L1 (Lasso) 自动进行特征选择,只保留最关键特征,模型更易解释,文本分类(词袋模型),生物信息学(基因芯片数据)。
特征数量中等,且可能有关联 L2 (Ridge) 能处理多重共线性问题,让所有相关特征都发挥作用,而非只选一个,时间序列预测,价格预测。
不确定,想结合两者优点 Elastic Net 结合了L1和L2,既能做特征选择,又能处理多重共线性,是很多场景下的首选,公式: Loss + λ1*L1 + λ2*L2
深度学习 L2 (Weight Decay) L2几乎是神经网络训练的标配,用于控制模型复杂度、防止过拟合,L1在深度学习中较少用,但在某些稀疏性要求的场景(如自编码器)也会使用。

实践中的注意事项

  1. 特征缩放: 使用正则化前,务必进行特征缩放(如标准化)。 因为正则化惩罚项 |w| 对特征尺度敏感,如果一个特征的单位是“米”,另一个是“毫米”,不缩放的话,正则化会不公平地惩罚大尺度特征。
  2. λ 的选择: 通常通过交叉验证来选择最佳的 λ 值,λ 越大,模型越简单,λ 设为零,则退化为普通线性回归。
  3. 偏置项 (bias/intercept): 通常不对偏置项进行正则化,因为偏置项只影响模型整体平移,不会影响特征的重要性。
  • L1 (Lasso): 像个激进的门卫,把没用的特征直接挡在门外(权重=0),适合特征选择。
  • L2 (Ridge): 像个和事佬,让所有人都低调一点(权重都变小),但没有开除任何人,适合保持特征完整性。
  • 共同目标: 防止过拟合,提高模型的泛化能力。

抱歉,评论功能暂时关闭!