第 5 章 正则化
正则化是在训练目标中加入约束或惩罚项,用来限制模型参数或模型函数的复杂度。
5.1 正则化的基本思想
没有正则化时,训练目标通常只包含经验损失:
加入正则化后,目标函数变成:
其中:
| 符号 | 含义 |
|---|---|
| 原始损失函数 | |
| 正则化项 | |
| 正则化强度 | |
| 训练样本数量 | |
| 参数为 |
正则化项不是用来拟合标签的,它负责表达对模型的偏好。例如 L2 正则化偏好较小且平滑的参数,L1 正则化偏好稀疏参数。
5.2 代价函数
正则化代价函数由经验损失和参数惩罚项组成。
线性回归正则化代价函数:
注意:通常不惩罚
太小,正则化项影响很弱。 太大,参数会被过度压缩,模型表达能力下降。
5.3 正则化线性回归
正则化线性回归中,
后续公式中,
线性回归假设函数仍然是:
正则化后的代价函数可以拆成两部分:
第一部分是原来的均方误差,第二部分是 L2 正则化惩罚项。注意第二个求和从
为什么梯度里会多出
所以对
而
对于 j >= 1:
5.4 正则化的逻辑回归模型
逻辑回归也可以加入正则化。
正则化逻辑回归代价函数:
同样不惩罚
对于 j >= 1,梯度更新中会额外多出正则化项:
5.5 L1 正则化和 L2 正则化
L2 正则化惩罚参数平方和:
L1 正则化惩罚的是参数绝对值之和:
两者的直观区别:
| 方法 | 惩罚方式 | 常见效果 |
|---|---|---|
| L1 正则化 | 惩罚参数绝对值 | 更容易把部分参数压到 0,可用于特征选择 |
| L2 正则化 | 惩罚参数平方 | 更倾向于让参数整体变小,训练更稳定 |
深度学习里常说的权重衰减通常和 L2 正则化关系很近,都是通过限制权重过大来提高泛化能力。
L1 和 L2 的几何直觉不同。L1 的约束区域有尖角,优化结果更容易落在坐标轴上,因此更容易得到稀疏参数;L2 的约束区域更平滑,通常会让参数整体变小,而不是直接压成 0。
实际使用时:
- 如果希望模型自动做特征选择,可以考虑 L1。
- 如果希望训练更稳定、参数不要过大,可以考虑 L2。
- 在线性模型中 L1 常用于稀疏化,L2 常用于控制模型复杂度。
- 在深度学习中,权重衰减比纯 L1 更常见。
5.6 正则化的实际作用
广义上,凡是能限制模型自由度、提高泛化能力的方法,都体现了正则化思想。
常见方法包括:
| 方法 | 作用 |
|---|---|
| 增加训练数据 | 让模型看到更多真实变化,减少记忆训练集噪声 |
| 数据增强 | 对图像做旋转、平移、裁剪等,扩充训练样本 |
| Dropout | 训练时随机丢弃一部分神经元,减少神经元之间的过度依赖 |
| 早停(Early Stopping) | 验证集误差开始变差时停止训练 |
| 权重衰减(Weight Decay) | 惩罚过大的权重 |
| 标签平滑 | 不让分类标签过于绝对,降低模型过度自信 |
| 批归一化 | 稳定训练过程,也可能带来轻微正则化效果 |
图像任务里常见的数据增强包括随机旋转、随机平移、随机裁剪、颜色扰动等。它们不会改变图像的语义类别,但能让模型不要只记住训练图片的固定位置和细节。
Dropout 常用于神经网络。训练时随机让一部分神经元暂时失效,测试时再使用完整网络。它的目的不是减少参数量,而是降低模型对某些局部特征组合的依赖。
5.7 常见正则化方法的细节
权重衰减
权重衰减的直观作用是让权重不要无限变大。对于很多模型来说,过大的权重意味着模型对输入的微小变化非常敏感,决策边界容易变得曲折。
在线性模型里,L2 正则化会在损失函数里加入参数平方和。用梯度下降更新时,它会让权重每次都被轻微往 0 拉回。
对参数
所以参数越大,被惩罚得越明显。
深度学习里常见的 AdamW 是把权重衰减从 Adam 的梯度更新中解耦出来,通常比直接在 Adam 中加 L2 项更清晰。
Dropout
Dropout 在训练阶段随机屏蔽一部分神经元,相当于每次只使用一个较小的子网络参与更新。
例如 dropout rate 为 0.5 时,训练阶段每次随机让一半神经元输出为 0。这样模型不能过度依赖某个固定神经元或固定特征组合。
测试阶段不再随机丢弃神经元,而是使用完整网络,并按实现方式对激活值或权重做缩放,使训练和测试的输出尺度保持一致。
Dropout 更常用于全连接层,在卷积层中通常要谨慎使用。卷积层参数共享,本身已经有一定约束,过强 Dropout 可能破坏空间特征。
数据增强
数据增强的作用是向训练过程加入任务允许的变化,而不是无条件扩充样本数量。
图像分类中,猫左右翻转后仍然是猫,所以水平翻转通常合理;但医学图像或数字识别中,翻转和旋转可能改变语义,就要谨慎。
常见增强和作用:
| 增强方式 | 让模型更鲁棒于 |
|---|---|
| 随机裁剪 | 目标位置变化 |
| 随机翻转 | 左右方向变化 |
| 颜色扰动 | 光照和色彩变化 |
| 随机旋转 | 拍摄角度变化 |
| Mixup / CutMix | 样本组合变化,降低过度自信 |
数据增强的原则是:增强后的样本仍然应该属于原标签。
早停
早停依赖验证集。训练过程中,如果训练误差继续下降,但验证误差开始上升,说明模型正在逐渐记住训练集细节。
早停的做法是保存验证集表现最好的那一轮模型,而不是最后一轮模型。
常见流程:
每轮训练 -> 计算验证误差 -> 如果验证误差更低就保存模型 -> 长时间不提升则停止早停的优点是不需要显式修改损失函数;缺点是它依赖验证集质量,如果验证集太小或分布不稳定,判断也会不稳定。
标签平滑
普通 one-hot 标签会把真实类别设为 1,其他类别设为 0。标签平滑会把真实类别稍微降一点,把其他类别稍微抬一点。
例如三分类中,原始标签可能是:
标签平滑后可能变成:
这样可以降低模型过度自信,尤其在分类任务中有用。
5.8 贝叶斯视角
从贝叶斯角度看,正则化相当于给参数加入先验偏好。
L2 正则化倾向于让参数不要太大,相当于认为“较小的权重更合理”。这和给参数设置以 0 为中心的高斯先验有关系。训练时,模型不仅要拟合数据,还要符合这个先验偏好。
从这个角度看,正则化并不追求训练集误差最低,而是要求模型参数符合先验约束,从而在新数据上更可靠。它通常会牺牲一部分训练集拟合能力,换取更好的泛化能力。
不同正则化方法虽然形式不同,但目标一致:限制模型在训练集上的自由度,让它学习更稳定、更能迁移到新数据的规律。