層歸一化 是什麼?
Layer Normalization — 層歸一化 的完整解釋
層歸一化是一種神經網路正規化技術,它在每個層級對所有神經元的激活值進行歸一化,以加速訓練並提高泛化能力。
容易混淆
層歸一化 vs 批次正規化 層歸一化看單一樣本的特徵維度,批次正規化看一整批樣本的同一個特徵。 批次越小時,批次正規化越容易抖,層歸一化通常比較穩。
層歸一化 vs 權重正規化 層歸一化是在整理輸出數值,權重正規化是在限制參數大小。 一個管資料流過去的樣子,一個管模型裡的權重本身。
最關鍵的區別: 一個看自己這一筆,一個看同批別人。
記住這句就好
看自己這一筆,不看整批別人。
實際案例
Transformer 文字模型 長句子進模型時,層歸一化先把每層輸出的尺度穩住,模型比較不容易在訓練中途亂跳。
小批次語音訓練 當 GPU 記憶體不夠,只能用很小的 batch,層歸一化通常比批次正規化更可靠。
算法與應用
它會先算出單一樣本在某一層的平均值和變異數,再把數值標準化到較穩定的範圍。 之後再加上可學習的縮放和偏移參數,讓模型保留需要的表達能力。 在序列模型、語言模型和需要變動批次大小的訓練流程裡很常見。
情境判斷
Q1(直覺題): 如果 batch size 很小,哪種正規化通常比較不容易受影響?
→ 層歸一化通常更穩,因為它不依賴整個批次的統計量。
Q2(判斷題): 如果模型是大批次影像分類,層歸一化一定比批次正規化更好嗎?
→ 不一定,還是要看模型架構和資料型態,影像任務很多時候批次正規化仍然很有競爭力。
相關術語
常見問題
層歸一化和批次正規化最大的差別是什麼?
差在統計量的來源。層歸一化看單一樣本內的特徵,批次正規化看同一個 batch 裡的樣本。
層歸一化為什麼常出現在 Transformer 裡?
因為 Transformer 常處理序列資料,batch 大小也不一定穩定,層歸一化比較不受這些條件影響。
層歸一化會讓模型變慢很多嗎?
通常不會。它多了一些統計計算,但和訓練穩定性比起來,成本多半值得。