LoginSignup
26
20

More than 3 years have passed since last update.

深層学習 Day 4 - BatchNorm、LayerNorm のまとめ

Last updated at Posted at 2020-11-29

この記事は個人的なお勉強用のメモです。

講義

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 では複数のチャンネルをまとめてグループにして正規化する。

26
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
20