1. 定義と概要
バッチ正規化(Batch Normalization)とは、ニューラルネットワークの学習時に、ある層への入力をミニバッチ(学習データをいくつかの小さなグループに分けたときの1グループ)単位で平均0・分散1になるよう正規化する手法です。さらに、学習可能なパラメータ(モデルの動作を調整するために学習の中で自動的に決まる数値です)であるγ(スケール)とβ(シフト)で再度変換します。
提案したのは2015年のIoffe氏とSzegedy氏です。全結合層(すべてのノード同士をつなぐ層)や畳み込み層(画像の特徴を少しずつ抽出する層)の出力に対して、活性化関数(出力に非線形の変換を加える関数)の直前に挿入されることが多い手法です。
この手法が必要になる背景には、深いネットワーク特有の現象があります。ネットワークが深くなるほど、各層のパラメータ更新のたびに、その層への入力データの分布が学習中に変化していきます。これは内部共変量シフト(Internal Covariate Shift。層を通るたびに入力データの分布が学習中に少しずつずれていく現象です)と呼ばれます。
入力分布が層を通るたびにずれ続けると、後段の層は変化する分布に適応し続けなければならず、学習が不安定・低速になりやすいという課題がありました。バッチ正規化は各層の入力をミニバッチ単位で正規化することで、この分布の変化を抑え、学習を安定化・高速化する目的で導入されています。層が深いモデルほど、この効果の恩恵は大きくなります。
2. 試験対策ポイント
まず整理しておきたいのは、バッチ正規化の主目的が内部共変量シフトの抑制にある点です。各層の入力分布の変化を抑えることで、学習を安定化・高速化する効果があります。
効果としては、高い学習率を設定しても学習が発散しにくくなる点、重みの初期値への依存を低減できる点が挙げられます。加えて、過学習(学習データに適合しすぎて、未知のデータへの対応力が落ちてしまう状態です)を抑える正則化(モデルが訓練データに適合しすぎることを防ぐための工夫です)としての効果もあるとされます。
この正則化の効果は、ミニバッチごとに統計量が変動することで生じるノイズによるものです。副次的な効果ではありますが、学習の安定化・高速化と並んで押さえておきたい論点にあたります。
学習時と推論(学習済みモデルを使って答えを出す処理です)時で使う統計量が異なる点も、取り違えやすい論点です。どちらの場面でどの統計量を使うのかを並べると、次のように対応します。
| 場面 | 使う平均・分散 | 理由 |
|---|---|---|
| 学習時 | ミニバッチごとに計算した平均・分散 | ミニバッチ単位で統計量をその場で計算できる |
| 推論時 | 移動平均(学習の途中で少しずつ更新しながら記憶しておく平均値です)として蓄積した平均・分散 | 1件ずつの入力を扱うことも多く、ミニバッチ単位の統計量を計算できない |
この切り替えは実装上も必須で、どちらの統計量を使っているかがそのまま推論結果に影響します。
正規化した値をそのまま使うのではなく、学習可能なパラメータγ・βで再度変換することで、正規化前の表現力を損なわないようにしています。
また、ミニバッチのサイズが小さいと平均・分散の推定が不安定になる制約があり、この制約を補う手法としてレイヤー正規化(ミニバッチ全体ではなく1つのデータの中で正規化を行う手法です)などの正規化層がセットで取り上げられます。ドロップアウト(学習時に一部のニューロンをランダムに無効にして過学習を防ぐ手法です)と並んで、学習を安定させる技術群として整理される用語です。
3. 関連概念との比較・相違点
前処理としての正規化(データセット全体をあらかじめ整える処理)との最大の違いは、適用のタイミングと対象にあります。前処理としての正規化はモデルの学習を始める前に、データセット全体に対して一度だけ変換する処理です。これに対しバッチ正規化は、学習の最中に各層の出力に対してミニバッチ単位で繰り返し適用されます。
両者は同じ「正規化」という語を使いますが、指す処理はまったく別物です。正規化の対象が学習前のデータ全体なのか、学習中の層の出力なのかを見分ける点は、取り違えやすいポイントです。
レイヤー正規化との最大の違いは、統計量を計算する単位にあります。名前の似た3つの正規化を、対象と単位で整理すると次のようになります。
| 手法 | 正規化の対象 | 統計量を計算する単位 |
|---|---|---|
| 前処理としての正規化 | 学習前のデータセット全体 | データセット全体に対して一度だけ |
| バッチ正規化 | 学習中の各層の出力 | ミニバッチ全体(複数サンプルにまたがる) |
| レイヤー正規化 | 1つのデータの中 | 1サンプル内の全チャネル |
そのためレイヤー正規化はミニバッチサイズに依存せず、系列長が可変なRNNやTransformer系のモデルで使われやすいという特徴があります。ミニバッチという複数サンプルの単位に依存するか、1サンプル内で完結するかという軸で、両者は区別されます。
4. ビジネス・実務での活用シナリオ
製造業の外観検査では、画像から製品の欠陥を判定する深い畳み込みニューラルネットワークの各層にバッチ正規化を組み込む事例があります。高い学習率を設定しても学習が発散しにくくなるため、モデル開発にかかる試行錯誤の時間を短縮できます。
自然言語処理(人間の言葉をコンピュータに扱わせる分野です)や大規模モデルの開発では、Transformer系のモデルにおいて系列長やバッチサイズが可変であるため、バッチ正規化ではなくレイヤー正規化が採用されることが多くなっています。モデルの構造に応じて正規化手法を使い分ける判断が、実務では求められます。
AI開発・モデル運用の現場では、バッチ正規化を含むモデルは学習モードと推論モードで使う統計量、つまりミニバッチ統計か移動平均かが切り替わる実装になっています。このモードの切り替え忘れは、推論精度の低下につながる典型的な不具合として知られています。
5. 要点まとめ
- バッチ正規化は学習中に各層の出力をミニバッチ単位で平均0・分散1に正規化し、学習可能なパラメータγ・βで再調整する手法で、内部共変量シフトを抑えます。
- 効果は学習の安定化・高速化(高い学習率を設定しやすくなる点)に加えて、過学習を抑える副次的な正則化効果もあります。
- 前処理としての正規化はデータ全体への学習前の一度限りの変換であるのに対し、バッチ正規化は学習中の各層に繰り返し適用される点で区別され、学習時と推論時で使う統計量(ミニバッチ統計か移動平均か)も異なります。
6. 確認問題
問1バッチ正規化は、ニューラルネットワークの学習時に各層への入力をミニバッチ単位で平均0・分散1に正規化する手法である。
解答・解説をみる
○ 正しい
バッチ正規化の基本的な定義そのものです。正規化後の値は、学習可能なパラメータγ・βで再度スケール・シフトされます。
問2バッチ正規化には学習の安定化・高速化に加えて、過学習を抑える正則化としての効果もあるとされる。
解答・解説をみる
○ 正しい
ミニバッチごとに統計量が変動することで生じるノイズが、副次的な正則化として働くとされています。学習の安定化・高速化と表裏一体の効果です。
問3バッチ正規化は、モデルの学習を始める前にデータセット全体に対して一度だけ適用する前処理の手法である。
解答・解説をみる
× 誤り
正しくは、バッチ正規化は学習中に各層の出力に対してミニバッチ単位で繰り返し適用される手法です。データセット全体を学習前に一度変換するのは前処理としての正規化であり、両者は別の処理です。

