深度網路訓練時忽快忽慢,能不能先把每層輸入穩住? 你可以把批次正規化想成幫每層輸入做整理,讓數值分佈不要飄太大。 它能讓訓練更穩,學習率通常也可以設得更大一點。
你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。
容易混淆
批次正規化 vs Layer Norm? 批次正規化:在批次維度上標準化特徵 Layer Norm:在特徵維度上標準化 最關鍵的區別:BN 看批次,LN 看單筆樣本的特徵
批次正規化 vs 正則化? 批次正規化:主要穩定訓練 正則化:主要抑制過擬合 最關鍵的區別:BN 有時會順便帶來正則效果,但不是它的唯一目的
批次正規化 vs Dropout? 批次正規化:訓練和推論時行為不同 Dropout:訓練時隨機關掉部分神經元 最關鍵的區別:BN 會用移動平均,Dropout 則是隨機遮罩
記住這句就好
先把每層數值穩住,訓練就比較走得動
實際案例
深層影像模型 在很多卷積網路裡,BN 讓訓練不容易發散,收斂也更快
大學習率訓練 團隊想把學習率調高以加快訓練,BN 幫助模型在較大步伐下仍維持穩定
算法與應用
重點 你要看什麼 為什麼重要 訓練 用批次均值與方差標準化 讓中間層輸入更穩定 推論 用移動平均統計量 避免每次推論結果飄動 效果 穩定、加速、常帶正則感 讓深層網路較好訓練
iPAS 考題
Q:批次正規化在推論階段怎麼運作? 會使用訓練時累積的移動平均統計量,而不是當下批次的統計。
Q:批次正規化的主要作用是什麼? 穩定訓練過程、改善收斂速度,並讓較大的學習率更容易使用。
情境判斷
Q1:深層模型訓練常發散,BN 有沒有可能幫忙? → 有,因為它能讓中間層分佈更穩定
Q2:如果推論時還在用當下批次統計而不是訓練統計,會有什麼問題? → 結果會不穩,因為單筆或小批次的統計不可靠
常見問題
BN 一定會提升準確率嗎?
不一定,但常能幫助訓練穩定並間接改善表現。
BN 放在激活前還是後?
常見做法是依架構調整,但多數情況會放在激活前後的合適位置測試。
小批次訓練時 BN 好用嗎?
不一定,小批次下統計量較不穩,有時會改用 Layer Norm。