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.