技術指南

批量歸一化

批量歸一化是一種在訓練期間重新調整神經網路每一層的輸入的技術,使深度網路訓練更快、更可靠。

閱讀時間約2分鐘最後更新

概述

它成為深度學習中最廣泛使用的技巧之一。

深入探討

當資料流經深層網路時,隨著早期層的更新,每層的值分佈不斷變化,這會減慢訓練速度並不穩定。 Ioffe 和 Szegedy 在 2015 年引入的批量歸一化透過對當前小批量中每個層的輸入進行歸一化來解決這個問題,使它們的平均值和單位方差大致為零。然後,它應用兩個可學習的參數:gamma 和 beta,讓網路可以縮放並將歸一化值移回(如果有幫助的話),因此它不會失去表徵能力。回報是巨大的:網路可以容忍更高的學習率,在更少的時期內收斂,對權重初始化不太敏感,並且通常泛化得更好一些。問題是行為取決於批次統計數據,因此非常小的批次可能會使其不穩定。

技術洞察

對於小批量中的每個特徵,批量歸一化計算批量平均值和方差,減去平均值,然後除以標準差(加上一個小 epsilon 以確保穩定性)。然後,它輸出伽瑪乘以歸一化值加上貝塔,其中伽瑪和貝塔是學習的。在訓練過程中,它使用即時批次統計數據,同時保持運行平均值;在推理時,它會切換到那些儲存的運行平均值,因此預測不依賴哪些其他範例碰巧共享批次。它通常插入層的線性步驟及其激活函數之間。

戰略影響

成本與預算

多年來,架構決策決定著效能和營運成本。

更明確的決策

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。

品質管控

更好的工程選擇可以減少生產中的可靠性事故。

批量歸一化的未來

批量歸一化仍然是卷積視覺模型中的主力,但它對批量統計數據的依賴對於循環網路、小批量和分散式訓練來說很尷尬。這推動了層歸一化等替代方案的採用,層歸一化對單一範例中的各個功能進行歸一化,現在主導了變壓器架構,以及特定領域的群組和實例歸一化。對無標準化網路的研究仍在繼續,透過仔細的初始化和擴展來匹配其優點。期望標準化仍然是必要的,並選擇適合架構的特定變體。

現實世界的實施

在 ResNet 影像分類器中插入批歸一化層,使其能夠以更高的學習率進行訓練並在更少的迭代時間內收斂。

穩定先前未經歸一化而出現分歧的醫學影像深度卷積網路的訓練。

降低自訂 CNN 中權重初始化的敏感性,因此工程師可以減少手動調整起始值的時間。

部署模型時從訓練模式批次統計切換到儲存的運行平均值,以便單一影像預測保持一致。

風險與防護欄

優化一項基準測試可以隱藏更廣泛的系統弱點。

基礎設施和維護成本常常被低估。

隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。

實施路線圖

1

在實施之前定義延遲、品質和成本目標。

2

在實際負載和資料條件下進行基準測試。

3

儀器監控錯誤、漂移和使用者影響。

4

在擴展之前準備回滾和事件回應路徑。

不斷探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Batch Normalization quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

開始測驗

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一步指南

RMSNorm 和預層標準化

常見問題

什麼是批次正規化?

批量歸一化是一種在訓練期間重新調整神經網路每一層的輸入的技術,使深度網路訓練更快、更可靠。它成為深度學習中最廣泛使用的技巧之一。

批量歸一化歸一化什麼?

批量歸一化使用當前小批量中計算的平均值和方差來標準化層的輸入,從而在訓練過程中將活化保持在穩定的範圍內。

為什麼批量歸一化包括可學習參數 gamma 和 beta?

在歸一化至零均值和單位變異數後,gamma 和 beta 讓網路重新縮放和重新移動值(如果這是有益的),因此歸一化不會限制該層可以表示的內容。

批量標準化的常見實際好處是什麼?

透過保持層輸入的良好擴展性,批量歸一化可以讓網路以更大的學習率進行訓練,更快地收斂,並且對初始化不太敏感。

在推理時(預測新資料),大量標準化使用什麼統計資料?

在推理時使用即時批次統計資料將根據共享該批次的其他範例進行預測。相反,批量歸一化使用訓練期間儲存的固定運行平均值。

為什麼批量歸一化對於非常小的批量大小表現不佳?

批次歸一化取決於估計批次的平均值和變異數。由於範例很少,這些估計是有雜訊的,這可能會破壞訓練的穩定性。