バッチ正規化はディープラーニングの定番テクニックですが、「バッチサイズが小さいと効きが悪い」という弱点があります。その弱点を解決するために生まれたのがグループ正規化(Group Normalization)です。チャネルをグループ分けして正規化するという発想を、バッチ正規化との対比でわかりやすく解説します。
📖 ひと言でいうと
グループ正規化とは、1つのサンプルの中でチャネルを複数のグループに分割し、グループごとに平均と分散をそろえる正規化手法です。ミニバッチ全体の統計量を使わないため、バッチサイズに依存せず安定した学習ができます。
身近な例えでいうと、クラス全員のテスト結果を使って成績を調整する(バッチ正規化)のではなく、生徒1人の答案の中で「国語系の設問グループ」「数学系の設問グループ」といったまとまりごとに採点基準をそろえるイメージです。他の生徒が何人いようと関係なく調整できます。厳密には、正規化とは各グループ内の数値を平均0・分散1に近い分布へ変換する処理を指します。
🖼 1枚でわかるグループ正規化
📘 公式テキストの説明
グループ正規化(Group Normalization)は、ディープラーニングにおける正規化手法の一つで、特に畳み込みニューラルネットワーク(CNN)で用いられる。従来のバッチ正規化(Batch Normalization)は、ミニバッチ内の全サンプルを用いて各層の出力を正規化するが、バッチサイズが小さい場合や、バッチ内のデータ分布が偏っている場合には効果が低減することがある。これに対し、グループ正規化は、各サンプル内のチャネルを複数のグループに分割し、各グループごとに正規化を行う手法である。この方法により、バッチサイズに依存せず、安定した学習が可能となる。特に、バッチサイズが小さい場合や、バッチ正規化が適用しにくいリカレントニューラルネットワーク(RNN)などのモデルにおいて有効である。グループ正規化は、バッチ正規化やレイヤー正規化(Layer Normalization)、インスタンス正規化(Instance Normalization)と並ぶ正規化手法の一つとして位置づけられ、各手法の特性に応じて使い分けられる。
この説明の構造は「バッチ正規化の弱点→グループ正規化の解決策→有効な場面→手法ファミリーの中での位置づけ」です。何を正規化の単位(統計量を計算する範囲)にするかが手法ごとの違いのすべてであり、グループ正規化は「1サンプル内のチャネルのグループ」を単位に選んだ、と理解すれば全体がつながります。
🔍 しっかり理解する
バッチ正規化の弱点はどこにあるか
バッチ正規化は、ミニバッチ内の全サンプルを集めて「この層の出力の平均と分散」を計算し、それを使って正規化します。つまり統計量の品質はバッチ内のサンプル数に依存します。バッチサイズが32や64あれば統計量は安定しますが、2や4しかないと、たまたま入ったサンプルに引きずられた偏った平均・分散になってしまい、正規化がかえって学習を乱すことがあります。
小さいバッチを使わざるを得ない場面は実務で珍しくありません。高解像度画像や3Dデータ、物体検出やセグメンテーションのような大きなモデルでは、GPUメモリの制約から1バッチに数枚しか載せられないことがあるのです。
グループ正規化の発想——バッチの外に頼らない
グループ正規化は、統計量の計算範囲を「ミニバッチ全体」から「1つのサンプルの内部」に切り替えます。具体的には、あるサンプルの特徴マップのチャネル(たとえば64チャネル)をいくつかのグループ(たとえば8グループ×8チャネル)に分割し、各グループの中で平均・分散を計算して正規化します。
- ミニバッチ内の全サンプルで統計量を計算
- バッチサイズが大きければ強力
- 小バッチ・分布の偏りで効果が低減
- バッチサイズに依存する
- 1サンプル内のチャネルグループで統計量を計算
- 他のサンプルを一切参照しない
- バッチサイズに依存せず安定
- 小バッチの学習やRNN系でも有効
他のサンプルを参照しないため、バッチサイズが1でも同じように動作します。これが「バッチサイズに依存せず、安定した学習が可能」という最大の利点の理由です。
正規化ファミリーの中での位置づけ
公式テキストにある通り、グループ正規化はバッチ正規化・レイヤー正規化・インスタンス正規化と並ぶ手法群の一員です。違いは「1サンプル内のどの範囲をまとめて正規化するか」にあります。レイヤー正規化は全チャネルを1つにまとめて正規化し、インスタンス正規化はチャネル1つずつ個別に正規化します。グループ正規化はその中間で、チャネルをいくつかのグループに束ねて正規化します。グループ数を1にすればレイヤー正規化に、グループ数をチャネル数と同じにすればインスタンス正規化に一致する、中間的・一般形的な手法と見ることができます。試験対策としては「グループ正規化=両者の中間」というイメージを持っておくと、4手法の関係が整理しやすくなります。
💡 具体例で考える
物体検出モデルの学習を考えてみましょう。高解像度の画像を扱う物体検出では、GPUメモリの都合で1GPUあたりバッチサイズ2程度しか確保できないことがあります。バッチ正規化ではサンプル2個分の統計量しか得られず、正規化が不安定になって精度が落ちがちです。ここでグループ正規化に置き換えると、統計量は各サンプル内部で完結するため、小バッチでも学習が安定します。グループ正規化はまさにこうした「大きなモデル×小さなバッチ」という実務的な制約から生まれた手法です。
もう1つの適用場面がRNNなどの系列モデルです。系列の長さがサンプルごとに異なるRNNでは、バッチ単位の統計量の扱いが難しく、バッチ正規化が適用しにくいことが知られています。バッチに頼らないグループ正規化やレイヤー正規化なら、この問題を回避できます。
⚠️ よくある誤解・紛らわしい用語
- 「グループ」の意味を取り違えない — サンプル(データ)をグループ分けするのではなく、1サンプル内のチャネルをグループ分けします。「何を分割するか」を問う選択肢に注意してください。
- バッチ正規化との違い — 統計量の計算範囲が「バッチ内の全サンプル」か「1サンプル内のチャネルグループ」かが本質的な違いです。効果の違い(バッチサイズ依存の有無)とセットで覚えましょう。
- レイヤー正規化・インスタンス正規化との混同 — いずれも1サンプル内で完結する仲間ですが、まとめる範囲が「全チャネル(レイヤー)/グループ(グループ)/1チャネル(インスタンス)」と異なります。
- 「グループ正規化が常に最良」ではない — バッチサイズが十分大きい場面ではバッチ正規化も強力です。公式テキストの通り「各手法の特性に応じて使い分けられる」が正しい理解です。
📝 試験でのポイント
- 「各サンプル内のチャネルを複数のグループに分割し、グループごとに正規化」という定義文の正誤判定が基本形です。
- 最大の特徴「バッチサイズに依存せず安定した学習が可能」は、バッチ正規化の弱点(小バッチ・分布の偏りで効果低減)と対にして出題されやすいポイントです。
- 「バッチサイズが小さい場合」「RNNなどバッチ正規化が適用しにくいモデル」という有効場面を選ばせる応用問題を想定しましょう。
- 4つの正規化手法の名前を並べ、それぞれの正規化単位を対応させる問題に備えて、違いを一言で言えるようにしておくと安心です。
📚 まとめ
グループ正規化は、1サンプル内のチャネルを複数グループに分割し、グループ単位で正規化する手法です。ミニバッチの統計量に頼らないため、バッチサイズに依存せず安定した学習ができ、小バッチでの学習やバッチ正規化が適用しにくいRNNなどで威力を発揮します。バッチ・レイヤー・インスタンス正規化と並ぶファミリーの一員であり、「何を単位に正規化するか」という軸で比較して覚えるのが攻略の近道です。
