第七章:深度学习中的正则化
1. 参数范数惩罚
1.1 L2参数正则化
L2正则化(又称权重衰减(Weight Decay))是最广泛使用的正则化技术之一。其核心思想是在损失函数中添加一个与参数范数成正比的惩罚项,使得模型倾向于学习较小的权重。
考虑一个标准的均方误差损失函数:
加入L2惩罚项后:
其中 \(\|\mathbf{W}\|_F^2 = \sum_{i}\sum_{j} W_{ij}^2\) 是Frobenius范数的平方,\(\lambda > 0\) 是正则化系数。
几何解释:L2正则化在参数空间中形成一个以原点为中心的球形约束区域。优化过程会在最小化原始损失和保持参数在约束区域内之间取得平衡。这等价于对损失函数施加一个Lagrange乘子约束。
权重收缩效应:梯度下降时,权重更新变为:
可以看到,每一步更新都会将权重按因子 \((1 - \alpha\lambda)\) 收缩,这促使权重趋向于零但不会完全变为零。
1.2 L1参数正则化
L1正则化产生的惩罚项为参数的L1范数:
其中 \(\|\mathbf{W}\|_1 = \sum_{i,j} |W_{ij}|\)。
稀疏性诱导:L1正则化的关键特性是它能够诱导稀疏(Sparse)解。许多优化算法(如坐标下降法、次梯度法)会使得部分权重精确为零,从而实现自动特征选择。
几何解释:L1约束形成的是一个以原点为中心的菱形(超平面交点)区域。与L2的圆形区域不同,菱形区域的顶点经常落在坐标轴上,对应某些权重恰好为零。
1.3 L1与L2正则化的对比
| 特性 | L2正则化 | L1正则化 |
|---|---|---|
| 惩罚形式 | $\ | \mathbf{W}\ |
| 解的性质 | 权重均匀缩小 | 稀疏解,部分权重为零 |
| 特征选择 | 不明显 | 明显,自动特征筛选 |
| 优化难度 | 处处可导 | 顶点处不可导 |
| 适用场景 | 防止过拟合,权重普遍较大 | 高维稀疏特征,特征选择 |
1.4 弹性网络(Elastic Net)
弹性网络结合了L1和L2正则化的优点:
这种方法在处理高度相关特征时表现尤为出色,避免了L1正则化随机选择特征的问题。
2. 数据增强与噪声注入
2.1 数据增强
数据增强(Data Augmentation) 是通过人为扩展训练数据来提高模型泛化能力的核心技术,尤其在计算机视觉领域应用广泛。
图像数据的增强方法:
- 几何变换:
- 随机翻转(水平/垂直)
- 随机裁剪与缩放
- 随机旋转(一定角度范围内)
-
随机仿射变换
-
颜色空间变换:
- 随机亮度、对比度调整
- 随机饱和度、色调变化
-
添加随机噪声
-
高级增强技术:
- Cutout:随机遮挡图像的某个区域
- Mixup:将两张图像及其标签按比例混合
- CutMix:将一张图像的裁剪区域粘贴到另一张图像上
数据增强的数学理解:若原始数据服从分布 \(p(\mathbf{x}, y)\),增强后的数据仍应服从相同分布。理想情况下,增强操作 \(T(\cdot)\) 应满足 \(p(T(\mathbf{x}), y) = p(\mathbf{x}, y)\)。
2.2 噪声注入
在输入或隐藏层注入噪声是一种有效的正则化策略。
输入噪声:
这等价于在重构任务中扮演类似角色,有助于模型学习更鲁棒的表示。
隐藏层噪声:在循环神经网络中,向隐藏状态注入噪声:
权重噪声(贝叶斯近似):将权重视为随机变量而非确定性参数。这种方法在变分自编码器等概率模型中有深刻应用。
3. 多任务学习与早期停止
3.1 多任务学习
多任务学习(Multi-Task Learning, MTL) 通过同时学习多个相关任务来改善模型的泛化能力。其核心假设是:不同任务之间存在共享的表示或特征,这些共享知识能够正则化每个单独任务的学习。
硬参数共享(Hard Parameter Sharing):
其中 \(\mathbf{W}_{\text{shared}}\) 是所有任务共享的权重,\(\mathbf{W}_t^{(t)}\) 是任务 \(t\) 特有的输出权重。
软参数共享(Soft Parameter Sharing):
各任务保留各自的权重,但通过正则化手段鼓励它们相似:
多任务学习的有效性条件: 1. 任务之间确实存在共享的底层结构 2. 任务的噪声模式或数据分布具有互补性 3. 任务的难度相近(避免某些任务主导学习过程)
3.2 早期停止
早期停止(Early Stopping) 是深度学习中应用最广泛且最实用的正则化技术之一。
算法流程:
1. 将训练数据划分为训练集和验证集
2. 记录验证集上性能最佳的模型参数
3. 继续训练,当验证集性能连续n个epoch无改善时停止
4. 返回验证集上最佳的模型参数
数学理解:早期停止可视为一种隐式的正则化方法。在梯度下降优化过程中,参数的有效复杂度随迭代次数增加而增加。早期停止限制了优化步数,从而限制了模型的有效复杂度。
设学习率衰减满足 \(\alpha_k = \frac{\alpha_0}{k}\),则早期停止等价于在目标函数中添加一个正则项,其效果类似于L2正则化,但系数取决于迭代过程。
验证集作用:验证集不参与模型训练,仅用于监控模型在未见数据上的表现。这使得验证集性能能够反映模型的真实泛化能力。
4. 集成方法与Bagging
4.1 集成学习概述
集成方法(Ensemble Methods) 的核心思想是组合多个模型的预测以获得比任何单一模型更好的性能。根据经典的学习理论,模型的偏差-方差分解为:
集成方法通过降低方差(Bagging)或同时降低偏差和方差(Boosting)来提升整体性能。
4.2 Bagging
Bagging(Bootstrap Aggregating) 通过创建多个不同版本的训练数据集来训练多个模型,然后通过投票或平均来组合它们的预测。
Bootstrap采样:从原始数据集 \(\mathcal{D}\) 中进行 \(B\) 次有放回采样,每次采样得到大小为 \(|\mathcal{D}|\) 的新数据集 \(\mathcal{D}^{(b)}\)。
Bagging算法:
对于 b = 1 到 B:
1. 从原始数据集中进行有放回采样得到 D^{(b)}
2. 在 D^{(b)} 上训练模型 f^{(b)}(x)
最终预测: f_{\text{ensemble}}(x) = \frac{1}{B} \sum_{b=1}^{B} f^{(b)}(x) (回归)
f_{\text{ensemble}}(x) = \text{mode}\{f^{(b)}(x)\} (分类)
理论分析:假设各基础模型的预测误差不相关,集成模型的方差减少量为单个模型方差的 \(1/B\)。实际上,由于基础模型使用相关数据训练,误差存在一定相关性,但仍有显著方差降低。
深度学习中的Bagging:在神经网络中,我们可以用不同随机初始化、不同架构或不同数据子集训练多个模型。Dropout可以被视为一种高效的Bagging近似。
4.3 模型平均与加权平均
简单平均: $\(\bar{f}(\mathbf{x}) = \frac{1}{B} \sum_{b=1}^{B} f^{(b)}(\mathbf{x})\)$
加权平均:根据各模型在验证集上的表现分配权重: $\(\bar{f}(\mathbf{x}) = \sum_{b=1}^{B} w_b f^{(b)}(\mathbf{x}), \quad \sum_{b=1}^{B} w_b = 1\)$
5. Dropout与标签平滑
5.1 Dropout原理
Dropout 由Srivastava等人于2014年提出,是深度学习中最重要的正则化技术之一。其核心思想是在训练过程中随机"丢弃"(置零)部分神经元,使每个神经元不过度依赖其他神经元。
训练阶段:对于每一层,以概率 \(p\) 保留每个神经元:
其中 \(\mathbf{d}\) 是丢弃掩码,\(\odot\) 表示逐元素乘法。
测试阶段:使用所有神经元,但需要调整输出以保持期望一致: $\(\mathbb{E}[\mathbf{h}_{\text{drop}}] = p \mathbf{h}\)$
为保持训练和测试时神经元的期望输出相同,测试时需将输出乘以保留概率 \(p\)。
5.2 反向Dropout(Inverted Dropout)
反向Dropout 将缩放操作放在训练阶段,这样测试时无需修改网络结构:
训练阶段: $\(\mathbf{h}_{\text{drop}} = \frac{1}{p} \mathbf{d} \odot \mathbf{h}\)$
测试阶段: $\(\mathbf{h}_{\text{test}} = \mathbf{h}\)$
这种做法在实践中更受欢迎,因为只需维护一套网络代码。
5.3 Dropout的权重尺度解释
Dropout可以被理解为对指数级多不同网络结构的Bagging。每个mini-batch对应一个不同的网络架构,最终预测是这些网络预测的加权平均。
Dropout与L2正则化的关系:在使用反向Dropout且设置 \(p=0.5\) 时,Dropout等价于对权重施加隐式的L2正则化,其强度取决于每层的激活值。
5.4 权重绑定(Weight Tying)
权重绑定强迫不同层之间共享参数,这在某些架构设计中能有效减少参数量:
其中 \(\mathcal{S}\) 是需要绑定权重的层集合。
应用场景: - 词嵌入层:输入嵌入和输出嵌入共享权重 - 自编码器:编码器和解码器的权重转置共享 - 孪生网络:两个分支权重完全共享
5.5 标签平滑(Label Smoothing)
标签平滑通过将硬标签转换为软标签来防止模型对训练数据过度自信:
其中 \(K\) 是类别总数,\(\epsilon \in [0, 1]\) 是平滑参数。
交叉熵损失下的效果:对于真实类别 \(c\): $\(q_c = 1 - \epsilon + \frac{\epsilon}{K}, \quad q_{i \neq c} = \frac{\epsilon}{K}\)$
直觉解释:标签平滑鼓励模型在预测时保持适度的概率分布,而不是将全部概率分配给单一类别。这有助于: 1. 提高模型对对抗样本的鲁棒性 2. 提升模型在校验集上的校准(Calibration) 3. 加速训练收敛
6. 批归一化与半监督学习
6.1 批归一化(Batch Normalization)
批归一化由Ioffe和Sergeyve于2015年提出,是深度学习中最广泛使用的归一化技术之一。它在每个mini-batch上对层的输入进行归一化,显著改善了训练稳定性和收敛速度。
算法流程:对于mini-batch \(\mathcal{B} = \{x_1, x_2, \ldots, x_m\}\):
-
计算均值:\(\mu_{\mathcal{B}} = \frac{1}{m} \sum_{i=1}^{m} x_i\)
-
计算方差:\(\sigma_{\mathcal{B}}^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu_{\mathcal{B}})^2\)
-
归一化:\(\hat{x}_i = \frac{x_i - \mu_{\mathcal{B}}}{\sqrt{\sigma_{\mathcal{B}}^2 + \epsilon}}\)
-
缩放和平移:\(y_i = \gamma \hat{x}_i + \beta\)
其中 \(\gamma\) 和 \(\beta\) 是可学习的参数,\(\epsilon\) 是数值稳定性常数(通常取 \(10^{-8}\))。
批归一化作为正则器:批归一化的正则化效果来源于: 1. Mini-batch噪声:每个mini-batch的统计量略有不同,引入了类似dropout的随机性 2. 同一样本在不同batch中归一化方式不同:增加了数据的多样性 3. 降低了内部协变量偏移:使得每层训练更加独立
批归一化在推理时的行为:推理阶段使用整个数据集的移动平均均值和方差: $\(\mu = E_{\mathcal{B}}[\mu_{\mathcal{B}}], \quad \sigma^2 = E_{\mathcal{B}}[\sigma_{\mathcal{B}}^2]\)$
6.2 其他归一化技术
| 技术 | 归一化维度 | 应用场景 |
|---|---|---|
| Layer Normalization | 单样本,所有通道 | RNN、Transformer |
| Instance Normalization | 单样本,单通道 | 风格迁移 |
| Group Normalization | 单样本,通道分组 | 目标检测、分割 |
| Weight Normalization | 权重参数 | 条件生成模型 |
6.3 半监督学习
半监督学习(Semi-Supervised Learning) 利用大量无标签数据和少量有标签数据来提升模型性能。
假设基础:半监督学习有效的前提是数据具有某种平滑性(Smoothness)假设:相似的输入应该产生相似的输出。
方法分类:
-
生成式方法(Generative Methods): 假设数据由某个潜在的生成模型产生。无标签数据帮助学习更好的数据分布 \(p(\mathbf{x})\),从而改善 \(p(y|\mathbf{x})\) 的估计。
-
判别式方法(Discriminative Methods):
- 标签传播(Label Propagation):基于图的方法,将无标签数据通过相似度网络连接到有标签数据
-
协同训练(Co-training):训练两个分类器,相互为无标签数据分配伪标签
-
自监督学习(Self-Supervised Learning): 设计 pretext tasks(如预测旋转、拼图)从无标签数据中学习有用的表示。
半监督学习的正则化视角:无标签数据可以被视为对模型施加额外的约束,要求模型在无标签数据上的预测具有某些性质(如低熵、一致性等)。
7. 多视图学习
7.1 多视图学习的定义
多视图学习(Multi-View Learning) 源于这样的场景:数据具有多种不同的表示或特征集。例如,一个网页可以用页面文本(视图1)和指向该页面的链接文本(视图2)来描述。
核心假设:不同视图对于学习目标都是有用的,且视图之间存在互补信息。
7.2 协同训练(Co-Training)
协同训练是最经典的多视图半监督学习方法:
算法流程:
1. 在每个视图上分别训练一个分类器
2. 每个分类器预测无标签数据的标签
3. 选择高置信度的预测,将其加入另一个分类器的训练集
4. 迭代直到所有无标签数据被处理
理论保证:当两个视图条件独立且每个视图都足够强大时,协同训练能够利用无标签数据显著提升性能。
7.3 多模态学习
多模态学习(Multi-Modal Learning) 是多视图学习在视觉、语言、音频等多模态数据上的扩展。
跨模态对齐(Cross-Modal Alignment): 学习一个统一的表示空间,使得来自不同模态的对应样本在空间中相近: $\(\min \|f_{\text{vision}}(\text{image}) - f_{\text{text}}(\text{caption})\|^2\)$
对比学习(Contrastive Learning): 通过拉近正样本对(同一内容的不同视图)、推远负样本对(不同内容的视图)来学习表示: $\(\mathcal{L} = -\log \frac{\exp(\text{sim}(z_i, z_i^+)/\tau)}{\sum_{j=1}^{N} \exp(\text{sim}(z_i, z_j)/\tau)}\)$
7.4 正则化技术汇总
正则化是深度学习成功的关键因素之一。下表汇总了本章讨论的主要正则化技术:
| 技术类别 | 具体方法 | 正则化机制 | 适用场景 |
|---|---|---|---|
| 参数约束 | L2正则化 | 权重衰减,减小权重幅度 | 通用,适用于各种网络 |
| L1正则化 | 稀疏性,特征选择 | 高维稀疏特征 | |
| 弹性网络 | 结合L1/L2优点 | 相关特征处理 | |
| 数据处理 | 数据增强 | 增加样本多样性 | 计算机视觉,尤其小数据集 |
| 噪声注入 | 增强鲁棒性 | 输入或隐藏层扰动 | |
| 训练策略 | 早期停止 | 隐式限制模型复杂度 | 通用,防止过拟合 |
| 多任务学习 | 共享表示,正则化各任务 | 相关任务学习 | |
| 集成方法 | Bagging | 降低方差 | 模型不稳定场景 |
| 随机正则化 | Dropout | 隐式集成,破坏特征共适应 | 大型深度网络 |
| 标签平滑 | 防止过度自信 | 分类任务,置信度校准 | |
| 归一化 | 批归一化 | Mini-batch噪声,降低ICS | 深度网络加速训练 |
| 半监督 | 无标签数据利用 | 约束模型在无标签数据上的行为 | 有大量无标签数据时 |
| 多视图 | 协同训练 | 多视图互补信息利用 | 多视图或多模态数据 |
8. 总结与展望
正则化是深度学习研究的核心主题之一。随着深度网络变得越来越深、参数越来越多,正则化技术的重要性愈发凸显。本章我们系统介绍了从经典的参数范数惩罚到现代的批归一化、Dropout等技术。
关键洞见: 1. 没有免费的午餐:不同正则化技术有其适用场景,需要根据具体问题选择合适的组合 2. 正则化的组合:实践中经常同时使用多种正则化技术(L2 + Dropout + 数据增强等) 3. 与优化的交互:正则化与优化过程密切相关,如早期停止隐式正则化、Dropout与L2的关系等
前沿方向: - 自动化正则化:AutoML技术自动搜索最优正则化策略 - 理论理解:对Dropout、批归一化等技术的理论理解仍在深入 - 新范式:对比学习、自监督学习等新范式正在重塑我们对正则化的理解
正则化艺术的精髓在于找到模型复杂度与泛化能力之间的精确平衡点。随着研究的深入,我们期待更多创新性正则化技术的出现。
9. 公式汇总
下表整理了本章涉及的核心公式:
| 编号 | 名称 | 公式 | 物理意义 | 类型 |
|---|---|---|---|---|
| (7.1) | L2正则化损失 | \(L_{\text{reg}}(\boldsymbol{\theta}) = L(\boldsymbol{\theta}) + \frac{\lambda}{2}\|\boldsymbol{\theta}\|_2^2\) | 在原始损失上添加权重衰减项 | (T) |
| (7.2) | L1正则化损失 | \(L_{\text{reg}}(\boldsymbol{\theta}) = L(\boldsymbol{\theta}) + \lambda\|\boldsymbol{\theta}\|_1\) | 产生稀疏权重矩阵 | (T) |
| (7.3) | Dropout前向传播 | \(y = \frac{1}{1-p} \cdot \text{mask} \odot \sigma(\mathbf{W}\mathbf{x} + \mathbf{b})\) | 随机掩码实现隐式集成 | (E) |
| (7.4) | 标签平滑损失 | \(L_{\text{LS}} = -\sum_{i=1}^{n} \left( (1-\epsilon)\log p(y_i\|x_i) + \frac{\epsilon}{K-1}\sum_{j\neq y_i}\log p(j\|x_i) \right)\) | 防止过度自信的交叉熵修正 | (T) |
| (7.5) | 批归一化前向传播 | \(\hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}},\quad y_i = \gamma \hat{x}_i + \beta\) | 标准化后重新缩放平移 | (E) |
| (7.6) | 弹性网络 | \(L_{\text{elastic}} = L(\boldsymbol{\theta}) + \lambda_1\|\boldsymbol{\theta}\|_1 + \lambda_2\|\boldsymbol{\theta}\|_2^2\) | 结合L1和L2正则化 | (T) |
注:(T)= 理论推导,(E)= 经验公式