Batch Normalization Accelerating Deep Network Training/zh

    From Marovi AI
    Revision as of 04:14, 27 April 2026 by DeployBot (talk | contribs) (Batch translate Batch Normalization Accelerating Deep Network Training unit 17 -> zh)
    (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
    Other languages:
    Languages: English | Español | 中文
    Research Paper
    Authors Sergey Ioffe; Christian Szegedy
    Year 2015
    Venue ICML
    Topic area Deep Learning
    Difficulty Research
    arXiv 1502.03167
    PDF Download PDF

    Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 是 Google 的 Ioffe 和 Szegedy 于 2015 年发表的论文,该论文提出了批量归一化(BatchNorm),这是一种在神经网络训练过程中对层输入进行归一化的技术。通过减少作者所称的内部协变量偏移(internal covariate shift)——即随着参数更新,网络激活分布发生的变化——批量归一化允许使用更高的学习率,降低了对初始化的敏感性,并且在某些情况下起到了正则化的作用,从而消除了对 dropout 的需求。

    概述

    训练深度神经网络的复杂之处在于,随着所有前面各层参数的更新,每一层的输入分布在训练过程中会发生变化。作者将这种现象称为内部协变量偏移,它迫使人们使用较低的学习率并对参数进行精心初始化,从而显著减慢了训练速度。

    批量归一化通过使用基于当前 mini-batch 计算的统计量对每一层的输入进行归一化来解决这一问题。这确保了每一层接收到的输入具有稳定的均值和方差,而不受前面各层变化的影响。该技术作为一种可微变换被插入到网络架构中,因而与标准的 backpropagation 和随机梯度下降兼容。

    主要贡献

    • 批量归一化:一种在 mini-batch 上独立地对每个标量特征进行归一化的方法,使用可学习的缩放和平移参数以保持表征能力。
    • 内部协变量偏移假设:识别并形式化了训练过程中输入分布变化作为优化困难成因的问题。
    • 训练加速:证明了批量归一化在 ImageNet 上能够以 14 倍的速度更快地收敛到相同的准确率水平,并允许使用更高的学习率。
    • Inception-BN 架构:GoogLeNet(Inception)的批量归一化版本,其准确率超过了原始模型,并在 ImageNet 上接近了人类水平的表现。

    方法

    对于给定层中激活值的一个 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 $

    其中 $ \epsilon $ 是用于数值稳定性的一个小常数,$ \gamma $$ \beta $ 是可学习的参数,允许网络在归一化没有益处时撤销归一化。这些缩放和平移参数至关重要:没有它们,归一化会将表示限制为零均值和单位方差,从而可能降低模型的表达能力。

    在训练期间,均值和方差按 mini-batch 计算。在推理期间,batch 统计量被总体统计量替代——即在训练期间累积的滑动平均值——以确保单个样本的输出是确定性的,且不依赖于 batch 中的其他样本。

    批量归一化通常应用于激活函数之前、线性或卷积变换之后。当与卷积层一起使用时,归一化是按特征图(通道)进行的,而不是按单个激活进行,并在一个特征图内的所有空间位置之间共享统计量。

    作者还观察到,批量归一化降低了对精确初始化的依赖,允许使用更高的学习率而不发散,并提供了温和的正则化效果,因为每个样本的归一化值依赖于其 mini-batch 中的其他样本,从而引入了随机噪声。

    结果

    在 ImageNet 分类任务上:

    • 一个采用批量归一化的网络仅用7% 的训练步数(加速 14 倍)就达到了原始 Inception 模型的准确率。
    • BN-Inception(采用批量归一化和其他改进)取得了 4.82% 的 top-5 验证误差,超过了原始 GoogLeNet 的准确率(6.67%)并接近人类水平。
    • 使用批量归一化使得训练时可以采用比基线高 10 倍的学习率而不发散。
    • 在某些配置下,批量归一化消除了对 dropout 的需求且不损失准确率,从而简化了架构并进一步缩短了训练时间。

    消融实验表明,批量归一化与更高学习率以及去除 dropout 的组合产生了最佳的结果。

    影响

    批量归一化成为深度学习架构中最普遍的组件之一。在 2010 年代后期,它在卷积网络中几乎被普遍采用,并且在许多架构中仍然是标准做法。该技术的成功启发了一系列归一化方法,包括 layer normalization(在 Transformers 和循环网络中更受青睐)、instance normalization(用于风格迁移)以及 group normalization(在小 batch size 下很有用)。

    尽管最初关于内部协变量偏移的解释存在争议——Santurkar 等人(2018 年)的后续工作认为其主要益处来自于平滑优化曲面,而不是减少分布偏移——但批量归一化的实际有效性是无可争议的。它是训练深度网络的关键推动力,而这些深度网络推动了 2010 年代计算机视觉领域的进展。

    批量归一化也影响了从业者对网络设计的思考方式。通过稳定训练动态,它使超参数搜索更具容错性,并鼓励了更深、更宽架构的发展。该技术与其他组件——学习率、权重初始化和正则化——之间的相互作用仍是一个活跃的研究领域。

    参见

    参考文献

    • Ioffe, S. y Szegedy, C. (2015). Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. Proceedings of ICML 2015. arXiv:1502.03167
    • Szegedy, C., Liu, W., Jia, Y., et al. (2015). Going Deeper with Convolutions. CVPR 2015.
    • Santurkar, S., Tsipras, D., Ilyas, A. 与 Madry, A. (2018). How Does Batch Normalization Help Optimization? NeurIPS 2018.