深層学習のトレーニングでは、これら 2 つの正規化操作が頻繁に使用されますが、これらの違いは何でしょうか? 簡単に紹介しましょう:
1.バッチノルム:
深層学習トレーニング中にデータが前処理されていない場合、勾配が消えたり爆発したりする可能性があります。この問題はどのように解決すればよいでしょうか? そのため、トレーニング前およびトレーニング中に標準処理を使用することが多く、これは CV で最も一般的に使用されますBN
。まずは動画を見てみましょう:
上の動画からわかるように、BN は正規化のために同じチャネルbatch
のそれぞれの平均と分散を計算することを目的としているため、正規化された結果が大きいほど良い結果が得られます。 BN には、式のα \alphaを除いて、実際には 4 つのパラメータがあることに注意してください。batch
batch
α和β \betaβに加えて、統計的平均と分散という 2 つの「暗黙の」がありますbatch
、batch
BN の選択とサンプル全体の平均と分散の間にはギャップがあることがわかっています計算中、統計的平均と分散は、最終的な統計的平均と分散として継続的に更新される必要があります。
2.LayerNorm:
簡単に説明すると、1 つのチャネル間の平均と分散を計算しますが特徴layernorm
行列のチャネルに応じて平均と分散を計算する場合、パラメーターは 2 つだけで、計算式は同じです。したがって、CVではこの正規化は基本的には使用されず、意味がありません。 さらに、次のような他の正規化方法もあります。使用するときは自分で情報を確認し、以下の写真を投稿できます。上記は 簡単な紹介であり、詳細な分析はありません。間違いがありますので修正してください。batchborm
batch
layernorm
BN
GN
IN
batchnorm
layernorm