バッチ正規化とは

ばっちせいきかbatch normalization別名 Batch Normalization、BatchNorm

1行定義

バッチ正規化とは、ミニバッチ内のデータから特徴ごとの平均と分散を求め、層への入力を平均0・分散1にそろえて学習を安定させる手法のことです。

くわしく

バッチ正規化は、ニューラルネットワークの途中の層で、値の範囲をそろえる手法です。2015年にIoffeとSzegedyが提案しました。CNNでは、畳み込み層の直後に入れる構成が広く使われています。

しくみ

学習では、データを数十〜数百件程度ずつまとめたミニバッチ単位で計算します。バッチ正規化は、このミニバッチの中で、特徴(CNNではチャネル)ごとに平均と分散を求めます。そして各値から平均を引き、標準偏差で割って、平均0・分散1にそろえます。

ただし、そろえたままでは層が表せる値の範囲が狭くなります。そこで、学習で決まる2つのパラメータ(スケールγとシフトβ)で拡大と平行移動を加えてから、次の層へ渡します。

効果

  • 大きめの学習率でも発散しにくくなり、学習が速く進みます。
  • 重みの初期値の影響を受けにくくなります。
  • ミニバッチごとに統計量がぶれるため、弱い正則化の効果もあります。提案論文では、ドロップアウトが不要になる場合もあったと報告されています。

提案論文は、学習中に各層への入力の分布が変わる「内部共変量シフト」を減らすことが効く理由だと説明しました。その後、誤差関数の形をなめらかにして最適化を進めやすくすることが主な理由だとする研究も出ています。効く理由の説明は、今も1つに定まっていません。

推論時の扱い

推論では、1件ずつ予測することもあります。そのため、学習中に移動平均などで記録しておいた平均と分散を使って正規化します。学習時と推論時で、使う統計量が異なる点に注意します。

弱点

ミニバッチが小さいと、平均と分散の推定がぶれて、学習が不安定になります。また、系列の長さが変わるRNNには使いにくい面があります。こうした場面では、サンプルごとに統計量を計算するレイヤー正規化やグループ正規化が使われます。

G検定での出題

ミニバッチ単位で平均と分散を計算する点、学習を速く安定させる効果、推論時は学習中に記録した統計量を使う点、ミニバッチが小さいと不安定になる弱点が問われます。

混同しやすい用語

用語意味
レイヤー正規化1つのサンプルの中で、その層のすべてのユニットの値をまとめて平均0・分散1にそろえる正規化の手法

違いを表で比べる:バッチ正規化とレイヤー正規化、正規化と正則化

◯×チェック

  1. バッチ正規化は、平均0・分散1にそろえた値に、学習で決まる2つのパラメータによる拡大と平行移動を加えてから出力する。

    答えを見る

    答え ◯ 正しい

    スケールγとシフトβと呼ばれます。正規化で表現できる範囲が狭まらないよう、必要なら元の分布に戻せるようにしています。

  2. バッチ正規化を使ったモデルは、推論時にも入力されたデータから毎回平均と分散を計算し直して正規化する。

    答えを見る

    答え × 誤り

    推論時は、学習中に移動平均などで記録しておいた平均と分散を使います。こうすると、1件ずつ予測しても結果が安定します。

  3. バッチ正規化を入れると、大きめの学習率を使っても学習が発散しにくくなる。

    答えを見る

    答え ◯ 正しい

    各層への入力の大きさがそろうためです。提案論文でも、より大きな学習率を使えることが利点に挙げられています。

練習問題

バッチ正規化の問題(9問)
  1. 勾配消失問題への対処
  2. 正規化手法と統計量の範囲
  3. 小さいミニバッチでの正規化
  4. バッチ正規化の推論時の統計量
  5. バッチ正規化の出力の計算
  6. バッチ正規化の効果
  7. 場面に応じた正規化層の選択
  8. AlexNetの学習の工夫
  9. DCGANのネットワーク構造

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術19

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習