✅
正規化
はじめに
概要
- シラバス:E資格2024#2
- ニューラルネットワークの正規化手法を勉強する
キーワード
Batch Normalization, Layer Normalization,
Instance Normalization, Group Normalization
学習内容
バッチ正規化(Batch Normalization)
- ニューロンの出力(活性化)に対して、バッチごとに平均と標準偏差を計算し正規化を行う手法
- ニューラルネットワークでは、層が深くなるにつれて入力の分布が変わってしまい、勾配消失や学習の不安定が起きやすくなる。これを抑えるために、各層の入力を平均0・分散1になるように調整することがバッチ正規化である
- バッチ正規化はバッチ全体で平均と分散を計算するため、入力データごとにシーケンス長が異なる自然言語処理(NLP)のようなタスクには適していない
レイヤー正規化(Layer Normalization)
- 目的はバッチ正規化と同じく、要素を正規化する
- ただ、今回の対象はバッチではなく、一つのサンプルである
- バッチ内のデータ構造(形状)が固定されていることが前提となる。しかし、この前提は「可変長のシーケンスを扱う言語モデルのようなタスク」では成り立ったない。レイヤー正規化はこの課題を解決する
- RNN・Transformerのような時系列・構造入力に最適
インスタンス正規化(Instance Normalization)
- 1つの入力サンプルの中で、チャネルごとに正規化を行う手法
- 画像スタイル変換や画像生成(GAN)などのタスクでよく使われる
画像スタイル変換の例

出典:
Ulyanov, D., Vedaldi, A., & Lempitsky, V. (2016). Instance normalization: The missing ingredient for fast stylization. arXiv preprint arXiv:1607.08022.
グループ正規化(Group Normalization)
- チャネルをいくつかのグループに分けて、その中で正規化する手法
経緯
- バッチ正規化はバッチ数が小さいと平均・分散の推定が不安定になり、学習が非効率になってしまうというメリットがある
- 改善として、バッチ中の複数のサンプルを使うのではなく、1つのサンプルだけを使って平均・分散を計算するという方法が考えられた
- レイヤー正規化はRNNなどの時系列モデルで提案された
- インスタンス正規化は画像のスタイル変換のモデルで提案された
グループ正規化とは
- グループ正規化はレイヤー正規化とインスタンス正規化の間のような仕組みである
- インスタンス正規化と比べると、グループ正規化がグループ単位で正規化するので表現力が高く、汎化性もよい
- バッチサイズに依存しないので、小バッチや1サンプルでも安定
| 性質 | バッチ正規化 | グループ正規化 | インスタンス正規化 |
|---|---|---|---|
| バッチ方向を使うか | 使う | 使わない | 使わない |
| チャネルごとに独立か | 独立(各Cごと) | グループ単位(複数C) | 完全に独立(各Cごと) |
| 正規化範囲 | N方向 | C/G方向 | C方向 |
| 空間方向(H×W)を使うか | 使う | 使う | 使う |
まとめ

出典:
Wu, Y., & He, K. (2018). Group normalization. In Proceedings of the European conference on computer vision (ECCV) (pp. 3-19).
- N = バッチサイズ
- C = チャネル数(特徴マップ)
- H, W = 高さ・幅(空間)
| 手法 | 正規化する要素 | 特徴 |
|---|---|---|
| バッチ正規化 | 各チャネルに対し、バッチ全体と空間(N×H×W) | バッチ依存、チャネルごとに空間も含めて正規化 |
| レイヤー正規化 | 各サンプルの全チャネル・空間(C×H×W) | サンプル単位、全チャネルと空間をまとめて正規化 |
| インスタンス正規化 | 各サンプル・チャネルごとに空間(H×W) | サンプルとチャネルごとに空間のみを正規化 |
| グループ正規化 | 各サンプルのチャネルをGグループに分け、(C/G×H×W) | サンプル単位、チャネルをグループ分けして空間含め正規化 |
Discussion