本文へ移動

G検定(ジェネラリスト検定)

ぐるーぷせいきか

グループ正規化

GN

Group Normalization

チャンネルをいくつかのグループに分け、1つのデータの中でグループごとに求めた平均と分散で値を正規化する手法です。統計量の計算にミニバッチの他のデータを使わないので、計算がバッチサイズに依存せず、小さなバッチサイズでも精度が安定します。

詳しい説明

グループ正規化とは何か

グループ正規化(Group Normalization、略してGN)は、ニューラルネットワークの層が出力した値について、チャンネルをいくつかのグループに分け、グループごとに求めた平均と分散で正規化する手法です。ここでいう正規化は、値から平均を引いて標準偏差(分散の平方根)で割り、平均0、分散1の尺度に揃える計算を指します。2018年にユシン・ウー(Yuxin Wu)とカイミン・ホー(Kaiming He)が論文"Group Normalization"で提案しました。

チャンネルとは、畳み込み層などの出力が持つ特徴マップの1枚1枚のことです。ある層が64枚の特徴マップを出力するなら、その出力は64チャンネルを持ちます。

バッチサイズが小さいと困る理由

比べる相手になるのはバッチ正規化です。バッチ正規化は、ミニバッチ(学習データから取り出した少数のデータのまとまり)ごとに平均と分散を計算し、正規化する手法です。1つのミニバッチに含まれるデータの数をバッチサイズと呼びます。

ウーとホーの論文は、バッチサイズが小さくなるとミニバッチから求める平均と分散の推定が不正確になり、バッチ正規化の誤差が急激に増えることを指摘しています。少ない数のデータから求めた平均や分散は、たまたまそのミニバッチに入ったデータに大きく左右されるからです。

グループ正規化は、平均と分散を求めるときにミニバッチの中の他のデータを使いません。使うのは、正規化しようとしている1つのデータの中の値だけです。

チャンネルをグループに分ける仕組み

グループ正規化では、1つのデータの出力について、チャンネルをあらかじめ決めた数のグループに分けます。この数をグループ数と呼び、 で表します。チャンネル数を とし、チャンネルを均等に分けるなら、1つのグループには 個のチャンネルが入ります。

そのうえで、グループごとに、そのグループに属するチャンネルの値だけから平均と分散を求め、そのグループの値を正規化します。別のグループの値は、このグループの平均と分散には入りません。

平均と分散の計算に使うのは1つのデータの中の値だけなので、ミニバッチに何個のデータが入っていても計算の中身は変わりません。論文は、グループ正規化の計算はバッチサイズに依存せず、幅広いバッチサイズで精度が安定すると述べています。

平均と分散の計算式

あるグループ に属する値を の 個とします。グループの平均 と分散 は次の式で求めます。

正規化した値 は、それぞれの値から平均を引き、標準偏差 で割って求めます。

画像を扱う層では、1つのチャンネルが縦と横に並んだ多数の値を持ちます。そのため は、グループに入るチャンネル数に、1チャンネルあたりの値の数(縦の画素数と横の画素数の積)を掛けた数になります。

8チャンネルを2グループに分けた計算例

仕組みを見やすくするため、1つのデータの出力が8チャンネルあり、各チャンネルが値を1つだけ持つとします。実際の画像では1チャンネルに多数の値がありますが、計算の手順は同じです。値は説明のための架空のものです。

チャンネル1から8の値は、順に3、9、11、17、48、52、48、52です。グループ数を とし、チャンネル1から4をグループ1、チャンネル5から8をグループ2にします。

グループ1の値は3、9、11、17です。平均は です。平均との差は 、、、 で、その2乗は49、1、1、49です。分散は 、標準偏差は です。正規化した値は 、、、 になります。

グループ2の値は48、52、48、52です。平均は で、平均との差は 、、、、その2乗はすべて4です。分散は 、標準偏差は2なので、正規化した値は 、、、 になります。

2つのグループは、もとの値の大きさ(平均10と平均50)もばらつき(標準偏差5と2)も違っていました。正規化したあとは、どちらのグループも平均0、分散1にそろいます。この計算にはミニバッチの他のデータが1つも出てこないので、バッチサイズが1でも同じ計算ができます。

グループ数を変えると結果はどう変わるか

グループに分けず、同じ8個の値全体を1つのまとまりとして()正規化すると、結果が変わります。8個の平均は 、分散は 、標準偏差は約20.36です。このときチャンネル1から4の値は、約 、、、 になります。チャンネル5から8の値はおよそ0.88から1.08の範囲に入ります。2つのグループの大小関係は残る一方、グループ1の中の違いは のとき( から )よりずっと狭い範囲に縮みます。

反対にグループ数を増やすと、1つのグループに入るチャンネル数が減り、平均と分散を求めるのに使う値の数が少なくなります。グループ数はチャンネル数を超えられず、 のときは1つのチャンネルがそのまま1つのグループになります。

このようにグループ数は、どのチャンネルどうしで尺度を揃えるかを決める値です。学習を始める前に人が決める設定値(ハイパーパラメータ)として扱います。

誤解しやすい点

グループ正規化のグループは、ミニバッチの中のデータを集めたものではありません。1つのデータの中のチャンネルを集めたものです。バッチ正規化がミニバッチに含まれる複数のデータにまたがって平均と分散を求めるのに対し、グループ正規化は1つのデータの中で求めます。

バッチサイズに依存しないという性質は、どのバッチサイズでもバッチ正規化より精度が高いという意味ではありません。論文の要旨が述べているのは、グループ正規化の精度が幅広いバッチサイズで安定するという点です。

この語で使った根拠資料には無いため本文では扱いませんでしたが、バッチ正規化と同様、グループ正規化も正規化した値を学習で決まる係数で拡大・平行移動し直す仕組みを一般に持つとされます(この語の根拠資料には確認できていません)。

試験で問われること

G検定

  • グループ正規化は、1つのデータの中でチャンネルをグループに分け、グループごとに平均と分散を計算して正規化します。
  • 平均と分散の計算にミニバッチの他のデータを使わないので、グループ正規化の計算はバッチサイズに依存しません。
  • バッチ正規化は、バッチサイズが小さくなるとミニバッチから求める平均と分散の推定が不正確になり、誤差が急激に増えます。グループ正規化は幅広いバッチサイズで精度が安定します。
  • グループ数を変えると、1つのグループに入るチャンネルが変わり、正規化に使う平均と分散も変わります。グループ数はチャンネル数を超えられません。

最終更新日: 2026/09/14