Normalization Layers
Normalization Layersについて調べてた時以下の記事が非常に分かりやすかったので日本語で要約しました。
www.quora.com
- Normalization Layers
- Batch Normalization
- Layer Normalization
- Instance Normalization
- Group Normalization
- おまけ
- 引用記事
Normalization Layers
がCNNの特徴マップとします。
にはの4つの次元があるため、は4次元テンソルとして表すことができます。
以下の例では、は、それぞれサイズ6×6で4個の特徴マップを持ち、4サンプルで1バッチだとします。
normalization layerはデータから平均と分散を計算し、次のように特徴マップを正規化します。
ここで、
- γはスケーリングパラメータ
- βはシフトパラメーター
- ϵは数値の不安定性(ゼロ除算の問題) を回避するためのもの
基本的に normalization layer でこの一般的な定式は同じですが、それらの間の違いはとの計算方法です。
以下で主な normalization layer を要約し、それらがどのように機能するか説明します。
Batch Normalization
Batch Normalizationは、各チャンネルに対してとを計算します。
例えば次の図のように、各色付きグループは、1つのスカラーと1つのスカラーになります。
,
Layer Normalization
Layer Normalizationは各サンプルに対してとを計算します。
,
Instance Normalization
Instance Normalizationは各サンプルと各チャンネルに対してとを個別で計算します。
,
Group Normalization
Group Normalizationは各サンプルおよび各グループに対してとを個別で計算します。 以下はの例です。
,
おまけ
Instance NormalizationやGroup NormalizationというNormalizationについて調べると必ずと言っていいほど出てくるこの図。 凄い、分かりやすいですね^^
みたいに言っている記事が多いのですが初見の私が見たらマジで意味不明でした...(補足)そもそもなぜNormalizationは必要?