机器学习正则化(Regularization)详解

正则化是机器学习中解决过拟合、提升模型泛化能力的核心技术,本质是通过 "给模型加约束" 避免其过度拟合训练数据中的噪声,让模型学到数据的通用规律而非局部波动。


一、为什么需要正则化

过拟合的根源: 模型复杂度 > 数据复杂度

问题 本质 正则化对策
模型太"聪明" 参数过多,拟合噪声 约束参数规模
数据有"杂质" 样本少/含噪声 强制模型简化
特征有"冗余" 高维稀疏特征 自动特征筛选

核心思想(奥卡姆剃刀)

"如无必要,勿增实体"

在拟合能力与模型简洁性间寻找最优平衡点


二、为什么能解决过拟合?

在损失函数中添加 "惩罚项",限制模型参数的 "大小 / 数量",强制模型 "简化"

  • 惩罚项会让模型在 "拟合训练数据" 和 "保持参数简单" 之间做权衡;

    最终训练出的模型既不会完全拟合噪声(过拟合),也不会过于简单(欠拟合)

通用公式

J ( θ ) = L ( θ ) ⏟ 拟合能力 + α ⋅ Ω ( θ ) ⏟ 复杂度惩罚 \mathcal{J}(\boldsymbol{\theta}) = \underbrace{\mathcal{L}(\boldsymbol{\theta})}{\text{拟合能力}} + \underbrace{\alpha \cdot \Omega(\boldsymbol{\theta})}{\text{复杂度惩罚}} J(θ)=拟合能力 L(θ)+复杂度惩罚 α⋅Ω(θ)

  • L ( θ ) \mathcal{L}(\boldsymbol{\theta}) L(θ):原始损失(MSE/交叉熵)
  • Ω ( θ ) \Omega(\boldsymbol{\theta}) Ω(θ):正则化项(L1/L2范数)
  • α \alpha α:正则强度 (超参数,需交叉验证调优)
    • α = 0 \alpha=0 α=0 → 无正则化(易过拟合)
    • α ↑ \alpha \uparrow α↑ → 惩罚增强(防过拟合,但过大导致欠拟合)

关键 : α \alpha α 是"记忆"与"理解"的调节旋钮!


三、三大经典方法对比

1、L2正则化

Ridge回归

惩罚项为参数的 L2 范数平方和

​ J ( θ ) = L ( θ ) + α ∑ j = 1 n θ j 2 \mathcal{J}(\boldsymbol{\theta}) = \mathcal{L}(\boldsymbol{\theta}) + \alpha \sum_{j=1}^{n} \theta_j^2 J(θ)=L(θ)+αj=1∑nθj2

  • 效果 :所有参数趋近0但不为0(参数衰减)
  • 特征间的权重会更均衡,降低模型对个别特征的依赖
  • 数值大的参数会被大幅惩罚,避免单个参数主导模型

2、L1正则化

Lasso回归

惩罚项为参数的 L1 范数(绝对值和)

​ J ( θ ) = L ( θ ) + α ∑ j = 1 n ∣ θ j ∣ \mathcal{J}(\boldsymbol{\theta}) = \mathcal{L}(\boldsymbol{\theta}) + \alpha \sum_{j=1}^{n} |\theta_j| J(θ)=L(θ)+αj=1∑n∣θj∣

  • 效果 :L1 惩罚会让部分不重要的参数直接变为 0,等价于自动剔除无用特征
  • 最终得到 "稀疏参数向量",简化模型的同时实现特征选择
  • 生成稀疏模型,提升可解释性
  • 高度相关特征选择不稳定
  • 使用高维特征筛选(文本/基因数据)

3、Elastic Net

结合 L1 和 L2 的惩罚项,兼顾特征选择和参数稳定

​ J ( θ ) = L ( θ ) + α ρ ∑ ∣ θ j ∣ + α ( 1 − ρ ) 2 ∑ θ j 2 \mathcal{J}(\boldsymbol{\theta}) = \mathcal{L}(\boldsymbol{\theta}) + \alpha \rho \sum |\theta_j| + \frac{\alpha (1-\rho)}{2} \sum \theta_j^2 J(θ)=L(θ)+αρ∑∣θj∣+2α(1−ρ)∑θj2

  • 核心 : ρ \rho ρ 控制L1/L2权重( ρ = 1 \rho=1 ρ=1→Lasso, ρ = 0 \rho=0 ρ=0→Ridge)
  • 优势 :兼顾L1稀疏性 + L2稳定性,高维数据首选
  • 适用:特征高度相关 + 高维稀疏场景

四、QA

1.为什么 L2 正则化让参数趋近于 0 但不会完全为 0

  • 定义带L2正则的损失函数

J ( θ ) = 1 2 m ∑ i = 1 m ( y i − θ x i ) 2 + λ 2 θ 2 J(\theta) = \frac{1}{2m}\sum_{i=1}^m (y_i - \theta x_i)^2 + \frac{\lambda}{2}\theta^2 J(θ)=2m1i=1∑m(yi−θxi)2+2λθ2

  • 求导找最优解(令导数=0)

d J ( θ ) d θ = − 1 m ∑ i = 1 m x i ( y i − θ x i ) + λ θ \frac{dJ(\theta)}{d\theta} = -\frac{1}{m}\sum_{i=1}^m x_i(y_i - \theta x_i) + \lambda \theta dθdJ(θ)=−m1i=1∑mxi(yi−θxi)+λθ

  • 令导数=0(最优解的必要条件),解这个方程:

− 1 m ∑ i = 1 m x i y i + θ ⋅ 1 m ∑ i = 1 m x i 2 + λ θ = 0 -\frac{1}{m}\sum_{i=1}^m x_i y_i + \theta \cdot \frac{1}{m}\sum_{i=1}^m x_i^2 + \lambda \theta = 0 −m1i=1∑mxiyi+θ⋅m1i=1∑mxi2+λθ=0

  • 最终解为

θ = 1 m ∑ i = 1 m x i y i 1 m ∑ i = 1 m x i 2 + λ \theta = \frac{\frac{1}{m}\sum_{i=1}^m x_i y_i}{\frac{1}{m}\sum_{i=1}^m x_i^2 + \lambda} θ=m1∑i=1mxi2+λm1∑i=1mxiyi

分子:是特征x和标签y的协方差(乘以常数),只要x和y有线性相关性,分子≠0

分母, λ > 0 \lambda>0 λ>0,因此分母必然>0

综上 θ = 非零数 正数 ≠ 0 \theta = \frac{非零数}{正数} ≠ 0 θ=正数非零数=0,且 λ \lambda λ越大,分母越大, θ \theta θ越小(趋近于0)


2.L1 惩罚会让部分不重要的参数直接变为 0

当我们对参数 θ i θ_i θi 求梯度进行优化时,L1 惩罚项的导数是一个常数(±α)

这意味着,无论参数 θ i θ_i θi当前是多大,优化器都会持续不断地施加一个固定大小的 "拉力",试图把它往 0 的方向推

  • 如果一个特征很重要 :对应的 θ i θ_i θi 较大。此时,原损失的下降梯度 (为了拟合数据)大于 L1 的惩罚拉力。因此,模型会保留这个参数,让它保持较大的值以保证预测准确度
  • 如果一个特征不重要 :对应的 θ i θ_i θi很小或接近 0。此时,L1 的惩罚拉力 大于 原损失的下降梯度。模型会发现:"把这个参数归零,虽然预测损失会增加一点点,但因为去掉了惩罚项,总损失 J(θ) 反而会更低。" 于是,为了整体最优,这个参数就被直接设为了 0
相关推荐
忧郁的橙子.2 小时前
12- - AI 应用开发新范式 MCP 技术详解
人工智能·microsoft·mcp
阿酷tony2 小时前
Nano Banna 提示词:生成跨越维度的奇幻广告
人工智能·nano banana·nano banana pro
青瓷程序设计2 小时前
【蝴蝶识别系统】~Python+深度学习+人工智能+算法模型+图像识别+2026原创
人工智能·python·深度学习
召田最帅boy2 小时前
Spring Boot博客系统集成AI智能摘要功能实战
人工智能·spring boot·后端
新缸中之脑2 小时前
用Agent Lightning训练Agent
人工智能
chilavert3182 小时前
技术演进中的开发沉思-377 NLP:任务体系与历史
人工智能·自然语言处理
Westward-sun.2 小时前
OpenCV基础操作:边缘检测详解
人工智能·opencv·计算机视觉
奇树谦2 小时前
边缘计算×AUV:解锁深海探索的“实时智能”密码
数据库·人工智能·边缘计算
xiao5kou4chang6kai42 小时前
【人工智能与大气科学】如何结合最新AI模型与Python技术处理和分析气候数据
linux·人工智能·大气科学·气候·wrf
电子科技圈2 小时前
BANF与芯科科技携手推出智能轮胎监测解决方案实现“最后的模拟领域”的数字化转型
网络·人工智能·嵌入式硬件·物联网·车载系统·智能硬件·交通物流