モデル・技術

バッチ正規化とは?ミニバッチの統計で層の地形を整える——分布シフトへの対処

読み:ばっちせいきか / 英:Batch Normalization(BN)

更新日: 読了目安:約6分

バッチ正規化(Batch Normalization)は、ミニバッチ内の平均・分散を使って中間層の活性値を正規化し、深層学習学習を安定化する技法です。本記事は正規化の数式の導出ではなく、「層ごとに分布がずれる問題を、バッチ統計でいかに整えるか」——内部共変量シフトへの対処——に焦点を当てます。

何が困っていたか

深いネットワークでは、学習が進むにつれ各層の入力分布が変わり続ける——いわゆる内部共変量シフト——ことがあります。下流の層は「いつも同じ分布の入力が来る」と仮定しにくくなり、勾配降下法の更新が不安定になります。

学習率を極端に小さくする以外に、層の直前で分布を整える——それが正規化層の発想です。バッチ正規化はその代表格として、2010年代のCNN学習を大きく楽にした技法の一つです。

バッチ正規化の仕組み

試験で問われる定義の骨格は次の一文です。

ミニバッチ内の活性値を正規化し、学習を安定させる手法である。

概念として押さえるポイントは3つです。

  • 対象 — 中間層の活性値(各層の出力)
  • 統計 — いま処理しているミニバッチ内の平均・分散
  • 操作 — 平均0・分散1付近にスケール調整(学習可能なパラメータで再スケールすることもある)

ミニバッチとは、勾配降下法で一度にまとめて処理する小さなデータの束です。バッチ正規化は「同じバッチ内のサンプル同士」で統計を取る——という点が、後述のレイヤー正規化との違いになります。

期待される効果

効果試験向けの説明
学習の安定化中間層の分布を整え、更新が暴れにくくなる(G-222
学習の高速化勾配の流れが改善し、やや大きめの学習率でも進みやすい場合がある
正則化効果ミニバッチごとのノイズがわずかに働くこともあるが、主目的は過学習抑制ではない

ミニバッチサイズが小さすぎると、統計量の推定が不安定になり効果が落ちる——という注意も試験に出ます(TF-088)。

正規化層の一族

正規化層は「どの軸で平均・分散を取るか」で名前が分かれます。

手法統計の取り方向きやすい場面
バッチ正規化ミニバッチ内のサンプル間CNNなど、バッチが十分ある学習
レイヤー正規化各サンプル内の特徴方向Transformerなど(TF-089
インスタンス正規化サンプル×チャンネルごとスタイル変換など
グループ正規化チャンネルをグループ化小バッチでも安定(G-289

正則化(L1/L2、ドロップアウト早期終了)とは目的が異なります。正規化層は分布を整えて学習を安定化、正則化は過学習を抑える——という整理がG-299の正解です。

試験で押さえるポイント

  • 定義 — ミニバッチ内の統計量で中間層の出力を正規化(TF-088、G-017)
  • 目的 — 学習の安定化・高速化。正規化層の主目的(G-222)
  • 正則化との違い — 名称は似るが意味は別(G-299、TF-090)
  • 注意点 — 小さいミニバッチでは統計が不安定になりうる

演習で確認する

G検定:TF-088G-017G-222G-299TF-090TF-089

すり替えに注意

誤った説明正しい理解
バッチ正規化=正則化正規化層 vs 過学習抑制の考え方(G-299)
バッチ正規化=データ拡張画像反転などの拡張とは別(G-017のC)
バッチ正規化=量子化重みを整数化する手法ではない(G-017のB)
バッチ正規化=同義語置換NLPの言い換え処理ではない(G-017のD)
バッチ正規化=レイヤー正規化統計の取る軸が異なる(TF-089)

よくある質問

バッチ正規化は何をする技法ですか?

ミニバッチ内の平均や分散を用いて中間層の活性値を正規化し、学習を安定させる手法です。勾配の流れを改善し、学習を速く進めやすくする効果が期待されます(G-017TF-088)。

バッチ正規化と正則化は同じですか?

違います。バッチ正規化は正規化層の一種で、中間表現の分布を整えて学習を安定化するのが主目的です。正則化はL1/L2やドロップアウトなど、過学習を抑えるための制約や工夫を指します。名称が似ているため混同に注意します(G-299TF-090)。

ミニバッチサイズが小さいとどうなりますか?

バッチ正規化はミニバッチ内の統計量に依存するため、バッチサイズが小さいと平均・分散の推定が不安定になり、学習が不安定になる場合があります(TF-088)。