バッチノームを適用させる前(紫色)から各チャネルごとにバッチノームを適用させていく経過を表しています。赤色になっているところでそれぞれ平均分散を出して正規化します(緑色が適用後)。[注意]「正規化する」≠「正規分布にする」ですので、お気をつけください。正規化というのは単純にデータの線形変換なので、元のデータが従う分布を変えるわけではないのでご注意ください。それでは、実際に原論文で提唱されたバッチノームの手順を見てみましょう。(2015)3行目までは単純に正規化しているだけです。1行目は平均、2行目は分散を取り、3行目で平均0分散1に正規化しています。分散が0の時にゼロ除算しないように設けられている非常に小さな値(=1e-3とか)です。これはどういう意味なのでしょうか。新しく持つことになります。データで学習されるパラメータです。この手順を図に表したものも用意したのでご参照ください。ミニバッチ内の一番手前のチャネルにバッチノームを適用させています。スペースの都合上、特に一番上の画像におけるバッチノーム適用にフォーカスしています。バッチノームの弱点バッチノームというのはいまや当たり前のように使われており、優れた結果を出しまくっています。どんな術にも弱点となる穴は必ずある、と漫画NARUTOでうちはイタチが教えてくれたようにバッチノームにも弱点があります。それは以下の2つです。バッチサイズが小さいと使えない例えば極端な話バッチサイズが1だったら、もちろん正規化なんて無理。エッジコンピュータなどリソースが限られているときはバッチサイズ大きくできないから問題になる。バッチノームの仲間たち上述した問題(特に1つ目)を解決するために出てきた代表的な手法が3つあります。そちらを下図に表したので簡単に説明します。左にミニバッチ、左から2番目に本稿の主人公バッチノーマライゼーションがいます。いずれもバッチノームと処理方法は同じで、1度に正規化する範囲が異なるだけです。(バッチノームは、ミニバッチ内の同一チャネルごとに正規化。)ここでミニバッチ内のそれぞれのブロックは今まで通り画像データを表しているとします。この例ではバッチサイズ3でデータのチャネル数が4です。赤色になっている部分がノーマライゼーションを適用する際の平均と分散を計算する箇所を表しています。いずれもバッチノームが持つ、バッチサイズに下限(通常16以上)を設けてしまうという欠点に対して提案されており、派生手法はいずれもバッチ方向ではなく、チャネル方向に対して正規化されていることがわかります。