層歸一化 是什麼?

Layer Normalization — 層歸一化 的完整解釋

層歸一化是一種神經網路正規化技術,它在每個層級對所有神經元的激活值進行歸一化,以加速訓練並提高泛化能力。

容易混淆

層歸一化 vs 批次正規化 層歸一化看單一樣本的特徵維度,批次正規化看一整批樣本的同一個特徵。 批次越小時,批次正規化越容易抖,層歸一化通常比較穩。

層歸一化 vs 權重正規化 層歸一化是在整理輸出數值,權重正規化是在限制參數大小。 一個管資料流過去的樣子,一個管模型裡的權重本身。

最關鍵的區別: 一個看自己這一筆,一個看同批別人。

記住這句就好

看自己這一筆,不看整批別人。

實際案例

Transformer 文字模型 長句子進模型時,層歸一化先把每層輸出的尺度穩住,模型比較不容易在訓練中途亂跳。

小批次語音訓練 當 GPU 記憶體不夠,只能用很小的 batch,層歸一化通常比批次正規化更可靠。

算法與應用

它會先算出單一樣本在某一層的平均值和變異數,再把數值標準化到較穩定的範圍。 之後再加上可學習的縮放和偏移參數,讓模型保留需要的表達能力。 在序列模型、語言模型和需要變動批次大小的訓練流程裡很常見。

情境判斷

Q1(直覺題): 如果 batch size 很小,哪種正規化通常比較不容易受影響?

→ 層歸一化通常更穩,因為它不依賴整個批次的統計量。

Q2(判斷題): 如果模型是大批次影像分類,層歸一化一定比批次正規化更好嗎?

→ 不一定,還是要看模型架構和資料型態,影像任務很多時候批次正規化仍然很有競爭力。

相關術語

常見問題

層歸一化和批次正規化最大的差別是什麼?

差在統計量的來源。層歸一化看單一樣本內的特徵,批次正規化看同一個 batch 裡的樣本。

層歸一化為什麼常出現在 Transformer 裡?

因為 Transformer 常處理序列資料,batch 大小也不一定穩定,層歸一化比較不受這些條件影響。

層歸一化會讓模型變慢很多嗎?

通常不會。它多了一些統計計算,但和訓練穩定性比起來,成本多半值得。