【漫话机器学习系列】201.正则化的参数范数惩罚(Parameter Norm Penalties for Regularization)

正则化的参数范数惩罚(Parameter Norm Penalties for Regularization)

Regularization with Parameter Norm Penalties
—— 限制模型参数的大小,缓解过拟合问题的经典方法。


1. 背景与来源

正则化(Regularization)最早源于统计学和机器学习的研究,用于解决模型的过拟合(Overfitting)问题。过拟合是指模型在训练集上表现很好,但在测试集上效果很差,泛化能力弱。

最经典的参考文献:

  • Tikhonov Regularization(1943年) —— 最早的思想雏形

  • Ridge Regression(Hoerl & Kennard, 1970) —— L2 正则化

  • Lasso Regression(Tibshirani, 1996) —— L1 正则化

  • Deep Learning Book (Ian Goodfellow, 2016) —— 深度学习中的系统总结


2. 正则化的思想核心

核心思想:

在原始损失函数 Loss 的基础上,添加一项额外的惩罚(penalty),防止参数(weights)过大,从而控制模型复杂度,提升泛化能力。

数学表达式:

Loss' = Loss + \lambda \cdot \Omega(\theta)

其中:

符号含义
Loss原始损失(如 MSE,交叉熵)
λ正则化强度(超参数,需调优)
Ω(θ)参数范数惩罚项
θ模型参数(权重)

3. 常见的参数范数(Parameter Norm)

L2 范数(Ridge Regularization / Weight Decay)

\Omega(\theta) = ||\theta||_2^2 = \sum_i \theta_i^2

特性:

  • 惩罚参数平方

  • 导致权重趋向较小但不会完全为零

  • 平滑模型

L1 范数(Lasso Regularization)

\Omega(\theta) = ||\theta||_1 = \sum_i |\theta_i|

特性:

  • 惩罚绝对值

  • 导致部分权重收缩为 0

  • 具有特征选择功能(稀疏)


4. 为什么能缓解过拟合?

原因解释
限制参数大小防止模型对训练集数据的极端拟合
降低复杂度减少自由度,降低方差
提升泛化能力在未知数据上效果更稳健

5. 程序代码示例(以 L2 正则化为例)

PyTorch 示例

import torch
import torch.nn as nn
import torch.optim as optim

# 简单模型
model = nn.Linear(10, 1)

# L2 正则化的 lambda
lambda_l2 = 0.01

# 定义优化器时加 weight_decay = lambda_l2 即为 L2 正则化
optimizer = optim.SGD(model.parameters(), lr=0.1, weight_decay=lambda_l2)

criterion = nn.MSELoss()

# 训练步骤
for data, target in dataloader:
    optimizer.zero_grad()
    output = model(data)
    loss = criterion(output, target)
    loss.backward()
    optimizer.step()

TensorFlow 示例

from tensorflow.keras import regularizers, layers, models

model = models.Sequential([
    layers.Dense(64, input_shape=(10,), 
                 kernel_regularizer=regularizers.l2(0.01)),
    layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse')


6. 举例说明效果

模型是否正则化训练误差测试误差
无正则化0.010.5
L2 正则化0.020.05

→ 可以看到,正则化牺牲了部分训练精度,换来了更好的测试集表现。


7. 不同范数的对比

正则化类型数学表达式效果场景
L2 范数(Ridge)\Omega(\theta) = ||\theta||_2^2 = \sum_i \theta_i^2平均压缩参数,减少复杂度特征多且均重要时
L1 范数(Lasso)\Omega(\theta) = ||\theta||_1 = \sum_i |\theta_i|稀疏性正则化
Elastic NetL1+L2组合兼顾两者稀疏又平滑

8. 总结

优势劣势
缓解过拟合需要调参
提升泛化lambda 取值敏感
可与其他技术结合不适用于所有模型

9. 拓展阅读

  • Deep Learning Book - Ian Goodfellow, Chapter 7

  • Machine Learning Yearning - Andrew Ng

  • Hands-On Machine Learning - Aurélien Géron

  • PyTorch 官方文档(weight_decay 参数)

  • TensorFlow 官方文档(regularizers)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值