Overfitting and Regularization/zh

    From Marovi AI
    This page is a translated version of the page Overfitting and Regularization and the translation is 100% complete.
    Other languages:
    Article
    Topic area Machine Learning
    Difficulty Intermediate
    Prerequisites Loss Functions, Neural Networks

    当机器学习模型对训练数据学习得过于充分——捕捉到噪声和特异性而非潜在模式——从而在未见过的数据上表现不佳时,就会发生过拟合正则化是用于防止过拟合并提高模型泛化能力的一系列技术。

    偏差-方差权衡

    对未见过数据的预测误差可以分解为三个组成部分:

    $ \text{Error} = \text{Bias}^2 + \text{Variance} + \text{Irreducible noise} $
    • 偏差衡量模型的平均预测与真实值的距离。高偏差表明模型过于简单,无法捕捉数据的结构(欠拟合)。
    • 方差衡量预测在不同训练集之间的波动程度。高方差表明模型对特定训练数据过于敏感(过拟合)。

    目标是找到使总误差最小化的最佳平衡点。参数过少的模型会欠拟合(高偏差);参数过多的模型会过拟合(高方差)。正则化技术通过约束模型复杂度来调整这种平衡,接受略高的偏差以换取大幅降低的方差。

    检测过拟合

    最清晰的诊断方法是比较训练和验证的性能:

    • 训练损失下降,验证损失也下降 —— 模型仍在学习;继续训练。
    • 训练损失下降,验证损失上升 —— 模型正在过拟合;应用正则化或停止训练。
    • 训练损失高,验证损失高 —— 模型欠拟合;增加容量或延长训练时间。

    在训练迭代过程中绘制这些学习曲线是必不可少的实践。训练准确率与验证准确率之间的较大差距是过拟合的标志。

    L2 正则化(权重衰减)

    L2 正则化添加一个与权重平方大小成正比的惩罚项:

    $ J(\theta) = L(\theta) + \frac{\lambda}{2}\|\theta\|_2^2 = L(\theta) + \frac{\lambda}{2}\sum_j \theta_j^2 $

    正则化项的梯度为 $ \lambda \theta $,因此每个权重在每次更新时都会以乘法方式向零收缩——这就是权重衰减名称的由来。超参数 $ \lambda $ 控制正则化的强度。

    从贝叶斯角度看,L2 正则化等价于对权重施加高斯先验。它鼓励小的、分布式的权重,并抑制任何单个权重变得过大。

    L1 正则化

    L1 正则化对绝对值之和进行惩罚:

    $ J(\theta) = L(\theta) + \lambda \|\theta\|_1 = L(\theta) + \lambda \sum_j |\theta_j| $

    与 L2 不同,L1 惩罚会将许多权重精确地驱动至零,产生稀疏模型。这使得 L1 正则化对特征选择非常有用。LASSO(Least Absolute Shrinkage and Selection Operator,最小绝对值收缩与选择算子)是 L1 正则化线性回归的经典例子。

    属性 L1 L2
    惩罚项 $ \lambda\sum|\theta_j| $ $ \frac{\lambda}{2}\sum\theta_j^2 $
    对权重的影响 将许多权重驱动至精确为零 将所有权重收缩至零附近
    稀疏性
    贝叶斯解释 拉普拉斯先验 高斯先验
    使用场景 特征选择、可解释性 通用正则化

    Dropout

    Dropout(Srivastava 等,2014)是一种专门用于神经网络的正则化技术。在训练期间,每个神经元在每次前向传播时以概率 $ p $ 被随机"丢弃"(置零)。这可以防止神经元相互协同适应,并迫使网络学习冗余表示。

    在测试时,所有神经元都处于激活状态,但其输出被缩放 $ (1 - p) $ 倍以补偿较多的激活单元数量(或等效地,在训练期间输出被缩放 $ 1/(1-p) $ 倍——inverted dropout)。

    Dropout 可以解释为一种近似的集成方法:每个训练步骤使用不同的子网络,而最终模型近似于指数级多个子网络的平均预测。

    早停

    早停(early stopping)在训练期间监控验证损失,并在验证损失停止改善时停止优化。这是最简单且最有效的正则化策略之一。

    在实践中,耐心(patience)参数指定了在最后一次改善之后等待多少个 epoch 再停止。模型权重在验证损失最低的时刻被保存,并在结束时恢复。

    早停作为一种隐式的正则化形式:它限制了训练步骤的有效数量,防止模型完全记忆训练数据。

    数据增强

    数据增强(data augmentation)通过应用保留标签的变换来增加训练集的有效规模和多样性。对于图像数据,常见的增强方法包括:

    • 随机水平/垂直翻转
    • 随机裁剪和缩放
    • 颜色抖动(亮度、对比度、饱和度)
    • 旋转和仿射变换
    • Mixup(对图像对及其标签进行线性插值)
    • Cutout(遮蔽随机区域)

    对于文本数据,增强方法包括同义词替换、回译和释义。数据增强通过让模型接触更多样化的输入而无需收集额外数据,从而减少过拟合。

    其他正则化技术

    • Batch normalization —— 对层输入进行归一化可以减少内部协变量偏移,并具有轻微的正则化效果。
    • 标签平滑(label smoothing) —— 将 one-hot 目标替换为混合形式,例如 $ y_{\text{smooth}} = (1 - \epsilon)\, y + \epsilon / C $,以防止过度自信。
    • 噪声注入 —— 在训练期间向输入、权重或梯度添加高斯噪声。

    实用指南

    1. 从一个足够大、能够对训练数据过拟合的模型开始 —— 这能确认模型具有足够的容量。
    2. 逐步添加正则化(dropout、权重衰减、数据增强)并监控验证性能。
    3. 使用早停作为安全网。
    4. 在可能的情况下,优先选择更多训练数据而非更强的正则化 —— 正则化是数据的替代品,而非真正的替代方案。
    5. 使用验证集而非测试集来调整正则化强度($ \lambda $、dropout 比率)。

    参见

    参考文献

    • Srivastava, N. et al. (2014). "Dropout: A Simple Way to Prevent Neural Networks from Overfitting". JMLR, 15, 1929–1958.
    • Tibshirani, R. (1996). "Regression Shrinkage and Selection via the Lasso". JRSS Series B, 58(1), 267–288.
    • Goodfellow, I., Bengio, Y. 与 Courville, A. (2016). Deep Learning, 第 7 章. MIT Press.
    • Zhang, C. et al. (2017). "Understanding deep learning requires rethinking generalization". ICLR.
    • Shorten, C. 与 Khoshgoftaar, T. M. (2019). "A survey on Image Data Augmentation for Deep Learning". Journal of Big Data.