この記事は個人的なお勉強用のメモです。
講義
Batch Norm
Batch Normalization
バッチ正規化
概要
レイヤー間を流れるデータの分布をミニバッチ単位で 平均 0、分散 1 になるよう正規化正規化する単位はチャンネル
チャンネルごとの正規化なので、この手法は正攻法。
(Rだけをまとめて正規化、Gだけをまとめて正規化、というのは
普通の考え方)
効果
- 学習時間の短縮
- 初期値への依存低減
- 過学習の抑制
問題点
バッチサイズが小さいと、学習が収束しないことがある。効果が薄くなってしまう。
実際はバッチ正規化を使うことは推奨されない。
バッチのサイズに影響を受けるため(環境によってバッチサイズは異なる)。
Layer Norm
Layer Normalization
概要
データの分布を正規化するのはバッチ正規化と同じ。 バッチ正規化との相違点画像データの例
- Batch Norm:ミニバッチ内のチャンネルごとに正規化
- Layer Norm:1枚ずつすべてのチャンネルを正規化
効果
ミニバッチの数に影響しないため、
Batch Norm の問題点を解決している。
入力データのスケールに関してロバスト(堅牢)
重み行列のスケールやシフトに対してロバスト
とはいえ、すべてのチャンネルをまとめて正規化するので
正攻法とは少し外れるか。
(RGBをまとめて正規化する意味とは?と考えてしまう)
Instance Norm
Instance Normalization
概要
データの分布を正規化するのは他の正規化と同じ。 Layer Normとの相違点Layer Norm:1枚ずつすべてのチャンネルを正規化
Instance Norm:1枚の中のチャンネルずつ正規化
Batch Normでバッチサイズが 1 の場合と同じ動き。
効果
コントラスト正規化
画像のスタイル転送
テクスチャ合成
などで利用
関連記事
正規化のイメージは以下のページが非常にわかりやすかった。
Normalization Layers
https://hotcocoastudy.hatenablog.jp/entry/2019/10/12/112213
上記のページによると、Group Normalization という正規化があるとのこと。
Instance Normalization では 1 枚、1 チャンネルごとに正規化するが、
Group Normalization では複数のチャンネルをまとめてグループにして正規化する。