AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
58/100 第六週:📌 轉換器架構與注意力機制(Transformers & Attention)🔍
58.訓練技巧與 LayerNorm 🌪 穩定訓練,提升收斂效果!
🎯 單元導讀:
在深度學習模型特別是 Transformer 架構中,當層數增加、數據維度提升,模型很容易陷入:
• 梯度爆炸或消失
• 訓練震盪或不收斂
• 層間資訊失衡
為了解決這些問題,Transformer 引入了關鍵訓練技巧——層正規化(Layer Normalization,簡稱 LayerNorm)。
本課將帶你理解 LayerNorm 的核心原理、與 BatchNorm 的區別,以及其在深度模型訓練中的重要地位。
________________________________________
🧠 一、什麼是 LayerNorm?
➤ 定義:
LayerNorm 就像是一種「資料整理師」,它會在每一層神經網路中,幫每一筆資料的特徵做整理,讓每筆資料都更平均、更穩定,幫助模型學得更快、更準。
________________________________________
🧪 二、LayerNorm步驟
🪜 LayerNorm 的步驟(簡單講)
1. 拿到一筆資料的特徵
比方說,這筆資料有 4 個特徵(像身高、體重、年齡、血壓),LayerNorm 會針對這一筆資料來進行整理,不管其他人怎樣。
2. 看看這筆資料的整體狀況
它會看看這 4 個特徵整體是偏高、偏低,還是分布得很分散?簡單說,就是了解這筆資料的「平均狀況」和「整體差異」。
3. 統一整理特徵的範圍
接著,它會把這 4 個特徵拉回到一個「比較一致的範圍」,例如從原本亂七八糟的數值整理成「都介於 -1 到 +1 之間」,讓神經網路更容易處理。
4. 加上調整鈕(模型可以學習的)
最後,LayerNorm 還會提供「微調鈕」,讓模型在訓練過程中可以自己學習該怎麼微調這些整理後的數值,讓結果更貼近目標。
________________________________________
🔍 三、與 BatchNorm 的差異
LayerNorm 和 BatchNorm 都是常見的正規化方法,但使用時機有所不同。BatchNorm 是針對整個批次中每個特徵進行正規化,需依賴較大的 batch size,適合用於 CNN 等圖像模型;而 LayerNorm 是針對每一筆樣本自己的所有特徵進行正規化,不受 batch 大小影響,因此特別適合應用於 NLP、Transformer 或 RNN 等處理單一樣本或變長序列的任務中,能在小批次情況下仍保持穩定效果。
________________________________________
🏗 四、LayerNorm 在 Transformer 的應用位置
在 Transformer 架構中,每個子層(如注意力機制或前饋神經網路)都會套用一種稱為「殘差連結 + LayerNorm」的設計,形式為 output = LayerNorm(x + SubLayer(x))。這種結構的好處是:殘差連結能讓訊息和梯度更順利地在深層網路中傳遞,避免梯度消失;而 LayerNorm 則能穩定每一層的輸出,使模型更容易收斂,提升學習效率。這樣的組合是 Transformer 成功訓練深層結構的關鍵之一。
📘 小結:
在 Transformer 中,每個子層(如注意力、前饋網路)都會加上殘差連結與 LayerNorm,這種組合讓模型能夠更穩定地訓練更深的網路,既保持了訊息的流通,也確保了數值穩定。
________________________________________
🧩 五、訓練穩定化的常用技巧補充
在訓練 Transformer 等深層神經網路時,常搭配多種技巧來提升穩定性與效能:
🎯 LayerNorm 用來穩定每層輸出分佈,有助模型更快收斂;
🌀 Gradient Clipping 可防止梯度爆炸,避免訓練過程崩潰;
🔁 Warm-up Learning Rate 則是在訓練初期採用較小的學習率,逐步增加,提升穩定性;
🎛 Dropout 幫助防止過擬合,提升模型的泛化能力;
⚖️ Label Smoothing 則透過調整標籤分佈,降低模型過度自信,使預測更穩健。這些技巧共同打造出穩定、高效的深層學習模型訓練流程。
________________________________________
📚 六、小結與學習啟示
✅ LayerNorm 是 Transformer 成功訓練的關鍵之一
✅ 它幫助模型在各層中穩定梯度與訊號傳遞,特別適合語言序列與變長資料
✅ 與殘差結合使用,使 Transformer 在加深網路時仍保持穩定與高效學習
________________________________________
💬 問題挑戰與思考:
1. 為什麼 NLP 模型幾乎不用 BatchNorm,而偏好 LayerNorm?
ANS:
🔹 BatchNorm 依賴整個批次的特徵統計(如均值與變異數),需要較大的 batch size,且不適合處理變長的序列資料。<br>
🔹 NLP 模型常處理 句子長度不一、batch size 小、甚至是單句預測,因此 BatchNorm 不穩定。
🔹 LayerNorm 則是針對「每筆樣本自己的特徵」進行正規化,不受 batch 大小影響,能穩定訓練,特別適合應用於 Transformer、RNN、BERT 等 NLP 架構。
2. 你能想像如果不使用 LayerNorm,深層 Transformer 的訓練會有什麼問題?
ANS:
🔸 每層輸出的數值可能會變得不穩定或失控,導致模型訓練過程震盪或發散。
🔸 梯度可能會出現 爆炸或消失,影響反向傳播,使模型難以學習。
🔸 模型收斂變慢,需要更多訓練步驟與資源才能達到效果,甚至會卡在局部最差點。
🔸 缺乏正規化會導致輸出分佈漂移(Shift),深層模型難以疊加。
3. 除了正規化,有哪些方法能進一步提升訓練穩定性?
ANS:
在訓練深層神經網路(特別是 Transformer)時,除了使用 LayerNorm 外,還有多種技巧能進一步提升訓練的穩定性與效果。
🔁 Warm-up Learning Rate 透過初期使用較小的學習率並逐步提高,有助於避免模型在初期不穩定;
🌀 Gradient Clipping 可限制梯度值,防止梯度爆炸導致訓練失敗;🎛 Dropout 隨機屏蔽部分神經元輸出,減少過擬合並提升模型泛化能力;
⚖️ Label Smoothing 則透過柔化標籤避免模型過度自信,提高預測穩健度;
🧠 Pre-LN 架構 將 LayerNorm 移到子層前,有助於提升深層模型收斂效果,這在 GPT 等模型中已被廣泛採用;
🧪 AdamW 優化器 則整合了權重衰減與自適應學習率調整,是訓練大規模模型時表現穩定且效果良好的優化選擇。這些技巧相輔相成,構成高效穩定的訓練流程核心。