LNとBNの比較

LN論文: https://arxiv.org/pdf/1607.06450.pdf

cnn と Transformer アーキテクチャでは、2 つの異なる正規化方法が使用されています. 2 つの違いを理解することは、深層学習モデルの理解を深めるのに役立ちます.

1. 2 つの図の違い

LN : 層の正規化、LN は「水平」であり、サンプルの異なるニューロン間で正規化します。

BN : バッチの正規化、BN は「垂直」であり、各次元が正規化されているため、バッチ サイズと関係があります。

両方の目的は、モデルの収束を高速化し、トレーニング時間を短縮することです。

2. BN はネットワークの共変量シフト問題を解決します

バッチ正規化 (Bactch Normalization、BN) は、ニューラル ネットワークの深化によるトレーニングの難しさを克服するために生まれました. ニューラル ネットワークの深さが深まるにつれて、トレーニングはますます難しくなり、収束速度は非常に遅くなります. 、これはしばしば勾配分散問題 (勾配消失問題) につながります。

統計的機械学習には古典的な仮定があります。ソース ドメインとターゲット ドメインのデータ分布は一貫しています。つまり、トレーニング データとテスト データは同じ分布を満たします。これは、トレーニング データを通じて取得されたモデルがテスト セットで良好な結果を達成できるという基本的な保証です。
Convariate Shift とは、トレーニング セットのサンプル データとターゲット サンプル セットの分布が一致しない場合、トレーニングされたモデルをうまく一般化できないことを意味します。これは、不整合な分布、つまりソース ドメインとターゲット ドメインの条件付き確率は一致しているが、それらの限界確率は異なるという仮定の下での分岐問題です。実際、ニューラル ネットワークの各層の出力については、層内操作の後、各層の出力分布は対応する入力信号分布とは異なり、その差はネットワークの深さが増すにつれて大きくなりますが、各層指しているラベルは変更されません。

解決策: 通常、トレーニング サンプルとターゲット サンプルの比率に応じて、トレーニング サンプルに修正が加えられます。したがって、Bactch Normalization を導入して一部の層またはすべての層の入力を標準化することにより、各層の入力情報の平均と分散が固定されます。

方法:通常、非線形マッピング (活性化関数) の前に Bactch 正規化を使用して x=Wu+b を標準化し、結果 (出力信号の各次元) の平均値が 0 で分散が 1 になるようにします。各層の入力が安定した分布を持つようにすると、ネットワークのトレーニングが容易になります。

利点: Bactch 正規化により、活性化関数を標準化によって線形間隔で分散させることができます. その結果、勾配が増加し、モデルは勾配降下を実行するために大胆になります. 次の利点があります:

  • 収束速度を上げるには、検索ステップ サイズを大きくします。
  • 極小値から飛び出しやすくなります。
  • 元のデータ分布を破壊し、オーバーフィッティングをある程度緩和する

したがって、ニューラル ネットワークの収束速度が非常に遅い、または勾配爆発 (Gradient Explore) をトレーニングできない状況を解決するために、Bactch 正規化を使用してみることができます。

3. BNの欠陥

1. BN はバッチサイズのサンプルの各次元で標準化されているため、サイズが大きいほど正規化のために適切な μ と σ を取得できるため、BN はサイズのサイズにより依存します。
2.トレーニング中、モデルはバッチで埋められますが、予測時に、推論用のサンプルが1つしかない場合、またはサンプル数が少ない場合、オンライン学習シナリオなど、現時点でBNを使用することは明らかに非常に偏っています。
3. RNN は動的ネットワークです。つまり、サイズが大きくても小さくても変化するため、マルチサンプルの次元を揃えることができないため、BN の使用には適していません。

4. LN がもたらす利点:

1. レイヤー正規化は、各サンプルの内部標準化であり、サイズとは関係がなく、影響を受けません。
2. RNN の LN は影響を受けず、内部標準化はそれ自体で行われるため、LN の適用範囲が広がります。

おすすめ

転載: blog.csdn.net/m0_53675977/article/details/129894259