摘要
过拟合是深度学习训练中高频遇到的问题:模型在训练集效果很好,但在测试集泛化能力差。正则化就是一套抑制过拟合、提升模型泛化能力的技术。本文梳理三种最核心正则方案:Dropout、BN 批量归一化、L1/L2 范数惩罚,讲清原理、作用、区别、适用场景。
前言
模型容量过大时,很容易记住训练数据里的噪声,而不是学到通用规律,也就是过拟合 。正则化不是提升模型在训练集上的精度,而是约束模型复杂度,提升测试集泛化性能。 常用三大正则手段:Dropout、BatchNormalization 批量归一化、L1/L2 权重惩罚。
一、Dropout 正则化
目的
保证训练、测试时该层输出期望均值一致,避免数值偏移,抑制过拟合。
原理
训练阶段每次前向传播,随机临时关闭一部分神经元,随机构建不同子网络。阻止神经元之间形成过度协同依赖,相当于集成大量独立子模型,降低对特定神经元的依赖,缓解过拟合。
测试阶段不随机关闭神经元,会对权重做缩放,保证训练、推理输出期望保持一致。
特点
- 核心作用:强力抑制过拟合
- 适用场景:全连接层,Transformer 也会使用 Dropout
- 缺点:增加训练计算开销;不能用于推理阶段
二、BN 批量归一化(Batch Normalization)
背景
深度网络逐层计算时,每层输入的数据分布会持续漂移(内部协变量偏移),后面网络层需要不断适应新分布,导致训练收敛慢、难以训练深层网络。BN 的目标就是把每层输入强行约束到稳定分布。
训练 vs 推理行为
- 训练阶段:按当前 batch 数据计算均值、方差,做归一化
- 测试 / 推理阶段:不再用当前 batch 计算均值方差,使用训练过程滚动保存的全局均值、方差,保证推理稳定
作用
- 加速收敛:每层输入分布稳定,可以使用更大学习率,模型收敛更快,深层网络更容易训练
- 附带轻微正则效果:每个 batch 均值、方差存在随机波动,给训练引入噪声,起到弱正则效果
⚠️重点:BN首要目标不是防过拟合,加速收敛才是本职,正则只是附带效果
三、L1、L2 范数惩罚(权重正则)
核心思想
约束权重大小,不让权重变得极端巨大。在原始损失基础上增加权重惩罚项:
\(总损失 = 预测任务损失 + 权重惩罚损失\)
L2 正则(权重衰减,最常用)
惩罚权重的平方值,鼓励所有权重整体偏小、平滑,避免单个权重数值爆炸。
- 特点:权重趋近于 0,但不会压缩到 0
- 适用:CV、大模型;AdamW 就是专门适配 L2 正则(权重衰减)的优化器
L1 正则
惩罚权重绝对值,会将大量不重要权重直接压缩至 0,实现自动特征稀疏、特征筛选。
- 特点:产生稀疏权重矩阵,自动剔除无效特征
- 适用:高维稀疏场景,文本、推荐系统
四、三种正则化横向对比
表格
| 方法 | 核心作用 | 主要目的 | 正则强度 | 适用场景 |
|---|---|---|---|---|
| Dropout | 随机屏蔽神经元,打破神经元依赖 | 抑制过拟合 | 强 | 全连接层、Transformer |
| BN 批量归一化 | 标准化层内数据分布 | 加速网络收敛,附带弱正则 | 弱 | CNN、深层网络 |
| L2 正则 | 约束权重平方,权重平滑 | 限制权重幅度,稳定模型 | 中等 | CV、大模型,AdamW |
| L1 正则 | 压缩不重要权重到 0,生成稀疏权重 | 特征筛选,限制权重幅度 | 中等 | 高维稀疏:文本、推荐 |
五、面试高频问答
Q1:BN 是正则化手段吗?
A:BN主要功能是解决内部协变量偏移、加速训练收敛,不是专门设计的正则方法。由于 batch 采样带来均值方差的随机抖动,附带轻微正则效果。不能把 BN 当成防过拟合的主力手段。
Q2:L2 正则和权重衰减 AdamW 是什么关系?
A:传统 L2 正则直接加到 loss 里,Adam 优化时权重衰减效果会被二阶动量干扰。AdamW 将权重衰减从损失剥离,直接在参数更新阶段对权重做衰减,是 L2 正则更工程化的实现。
Q3:Dropout 训练和推理阶段有什么区别?
A:训练时随机失活神经元;推理阶段不关闭神经元,需要对权重缩放,保证训练、推理输出期望均值一致,数值不会出现偏移。
Q4:L1 为什么可以得到稀疏权重?
A:L1 惩罚是绝对值,在优化时,很多不重要参数的梯度会直接把参数推到 0,自动完成特征选择;L2 只会让权重趋近 0,不会变成 0。
Q5:多个正则可以一起使用吗?
A:可以。工程中常组合使用,例如:BN + Dropout + L2 权重衰减,同时加速收敛 + 抑制过拟合。但不要叠加过多,容易欠拟合。
六、串联前面的完整工程链路
EDA 数据探查清洗 → 模型搭建(添加 BN/Dropout)+ 正则约束(L1/L2)→ 模型训练,抑制过拟合 → 模型保存 → Flask+Docker 部署 / MoE 大模型预训练微调
总结
- Dropout:随机废掉神经元,破坏神经元依赖,主打强力防过拟合
- BN 批量归一化:修正每层数据分布,主打加快训练收敛,附带轻微防过拟合
- L1/L2 范数惩罚:限制权重大小,约束参数幅度,稳定模型,防止权重极端化
正则化的本质是降低模型自由度,避免模型死记训练集噪声,提升模型在未知测试数据上的泛化能力。