『バッチ正規化』は2015年に登場してから、深層学習の標準技術となりました。仕組みと効果を押さえましょう。
バッチ正規化って、何を正規化するの?
バッチ正規化(Batch Normalization, BatchNorm) は、各層の入力をミニバッチごとに平均0・分散1に正規化する技術よ。
2015年にセルゲイ・イオッフェらが提案したわ。
これにより、層ごとの入力分布のズレ (これを内部共変量シフトと呼ぶ) が緩和され、学習が安定化するの。
分布を揃えると、なんでいいんですかぁ?
各層が『安定した入力分布』の中で学習できるから、学習率を大きく設定でき、収束も速くなるの。
副次的に正則化効果もあるわ。
BatchNorm導入後、ドロップアウトや細かいハイパーパラメータ調整の必要性が減り、DLの学習が圧倒的に楽になったのよ。
すごい発明だね!
ただ弱点もあって、バッチサイズが小さいと統計値が不安定になっちゃうの。
そこで派生手法が登場したのよ。
Layer Normalization (LayerNorm) はバッチ方向ではなく各サンプル内のチャネル方向で正規化。
TransformerやRNNで使われるわ。
系列の長さが変わるモデルに向いてるんですねぇ!
他にもGroup Normalization、Instance Normalizationなど、用途に応じた正規化手法が開発されているの。
推論時はミニバッチ統計ではなく、学習中に蓄積した移動平均を使うのも重要なポイントよ。
正規化って、今の深層学習に欠かせないんだね!
G検定では『バッチ正規化 (2015)』『内部共変量シフト』『Layer Normalization』『推論時は移動平均を使う』、この4つを押さえてね!
確認クイズ
Transformerモデルで主に使われる正規化手法はどれか。
- バッチ正規化 (BatchNorm)
- Layer Normalization (LayerNorm)
- Instance Normalization
- Local Response Normalization
こたえを見る
正解: 2. Layer Normalization (LayerNorm)
Layer NormalizationはTransformerで主に使われる正規化手法で、バッチ方向ではなく各サンプル内のチャネル方向で正規化します。可変長の系列やバッチサイズが小さい場合に有効です。