深層学習: BatchNorm、LayerNorm、InstanceNorm、GroupNorm、SwitchableNorm についての理解

深層学習: BatchNorm、LayerNorm、InstanceNorm、GroupNorm、SwitchableNorm についての理解

ディープラーニングの標準

ディープラーニングではBatchNorm、LayerNorm、InstanceNorm、GroupNormがよく登場しますが、これら4つの違いは以下のとおりです
ここに画像の説明を挿入

バッチノルム

BatchNorm の処理対象は、サンプルのバッチ同じチャネル特徴です。BatchNorm は、このサンプルのバッチの同じ次元の特徴の平均と分散を正規化します。BatchNorm は、CV 分野で広く使用されています。

BatchNorm の利点は次のとおりです。
1. ネットワーク内の勾配の流れを改善します。正規化では、すべての特徴を [0,1] にスケールできるため、バックプロパゲーション中の勾配が 1 付近になり、勾配の消失現象が回避されます。
2. 学習率を高めます。正規化されたデータはすぐに収束に達します。
3. モデルトレーニングの初期化への依存を軽減します。

レイヤノルム

LayerNorm の処理対象は各単一サンプルすべてのチャネル特徴であり、LayerNorm はこの単一サンプルのすべての次元特徴の平均と分散を正規化することです。LayerNorm は NLP の分野で広く使用されています。

異なる次元のフィーチャの次元は異なることが多いのに、なぜ LayerNorm を使用するのでしょうか? NLP 分野では LayerNorm の方が適しているためです。
テキストをバッチにまとめた場合、BatchNorm は各文の同じ次元の特徴 (同じ位置) に作用し、テキストは文ごとに読み取られることがわかり、NLP の法則に準拠しません。
LayerNorm は文に対して正規化され、LayerNorm は一般に [batchsize, seq_len, dims] の dims などの 3 次元で使用され、通常は単語ベクトルの次元など、この次元の各特徴の量は次のようになります。同じ。したがって、上記のフィーチャの異なる寸法によって引き起こされる正規化されたスケーリングの問題は発生しません。

インスタンスノルム

InstanceNorm の処理対象は、各単一サンプル同一チャネル特徴です。InstanceNorm は、単一サンプルの同次元特徴の平均と分散を正規化するものです。InstanceNorm は、定型化された移行で広く使用されています。

画像の様式化では、生成される結果は主に特定の画像インスタンスに依存するため、バッチ全体を正規化することは画像の様式化には適さないため、HW を正規化します。これにより、モデルの収束が高速化され、各イメージ インスタンス間の独立性が維持されます。

グループノルム

GroupNorm の処理対象は各単一サンプル同じチャネル特徴セットであり、GroupNorm は単一サンプルの同じ次元特徴セットの平均と分散を正規化することです。

切り替え可能なノルム

SwitchableNorm は BatchNorm、LayerNorm、InstanceNorm を組み合わせたもので、異なる重みを割り当ててネットワークが正規化層を適応的に学習できるようにします。

付録

Pytorch 公式 Web サイト - 正規化レイヤー

おすすめ

転載: blog.csdn.net/weixin_43603658/article/details/131957131