批次正規化 (Batch Norm / BN)

Batch Normalization (Batch Norm / BN)

對每層輸入正規化以穩定訓練的技術

詳細解釋

批次正規化(Batch Normalization)是對每層輸入進行正規化的技術,穩定訓練過程,允許更高學習率,加速收斂,是深度網絡的標準組件。

數學操作:

  • 計算批次均值μ和方差σ²
  • 正規化:x̂ = (x - μ) / √(σ² + ε)
  • 縮放平移:y = γx̂ + β
  • γ和β是可學習參數

為何有效:

  • 內部協變量偏移:減少層間分布變化
  • 平滑損失曲面:優化更穩定
  • 更高學習率:正規化後允許更大學習率
  • 正則化效果:批次噪聲有輕微正則化作用
  • 梯度流:緩解梯度消失/爆炸

訓練vs推理:

  • 訓練:使用當前批次統計量
  • 推理:使用訓練期間累積的移動平均
  • 實現:框架自動處理

位置:

  • 卷積層後:BN→ReLU的順序
  • 全連接層後:同樣適用
  • 注意:在殘差連接前或後有爭議

變體:

  • 層正規化(Layer Norm):每樣本獨立,適合序列模型
  • 實例正規化:每樣本每通道獨立,風格遷移
  • 群組正規化:通道分組正規化
  • 批次重正規化:改進推理穩定性

與其他技術的關係:

  • Dropout:都可視為正則化,但BN允許減小dropout
  • 權重衰減:互補的正則化方法
  • 學習率調度:BN允許使用更大初始學習率

應用:

  • CNN:ResNet、DenseNet等的標準組件
  • 早期Transformer:原始Transformer使用LN而非BN
  • GAN:穩定訓練的關鍵

局限:

  • 小批次問題:批次太小時統計不穩定
  • 序列模型:序列長度變化時不適用(用LN)
  • 分布式訓練:需要同步批次統計

批次正規化是深度學習訓練的標準化技術。

探索更多AI詞彙

查看所有分類,繼續學習AI知識