バッチ正規化(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)
- 注意点 — 小さいミニバッチでは統計が不安定になりうる
すり替えに注意
| 誤った説明 | 正しい理解 |
|---|---|
| バッチ正規化=正則化 | 正規化層 vs 過学習抑制の考え方(G-299) |
| バッチ正規化=データ拡張 | 画像反転などの拡張とは別(G-017のC) |
| バッチ正規化=量子化 | 重みを整数化する手法ではない(G-017のB) |
| バッチ正規化=同義語置換 | NLPの言い換え処理ではない(G-017のD) |
| バッチ正規化=レイヤー正規化 | 統計の取る軸が異なる(TF-089) |
よくある質問
バッチ正規化は何をする技法ですか?
ミニバッチ内の平均や分散を用いて中間層の活性値を正規化し、学習を安定させる手法です。勾配の流れを改善し、学習を速く進めやすくする効果が期待されます(G-017、TF-088)。
バッチ正規化と正則化は同じですか?
違います。バッチ正規化は正規化層の一種で、中間表現の分布を整えて学習を安定化するのが主目的です。正則化はL1/L2やドロップアウトなど、過学習を抑えるための制約や工夫を指します。名称が似ているため混同に注意します(G-299、TF-090)。
ミニバッチサイズが小さいとどうなりますか?
バッチ正規化はミニバッチ内の統計量に依存するため、バッチサイズが小さいと平均・分散の推定が不安定になり、学習が不安定になる場合があります(TF-088)。