正規化は、ニューラル ネットワークにおける勾配の爆発または消失の問題を解決するためによく使用されます。これは、すべての値が同じスケールまたは分布になるように、特徴の値を範囲 [0,1] にマッピングすることで機能します。簡単に言えば、正規化はニューラル ネットワークへの入力を正規化し、トレーニング速度を向上させます。
正規化手法には主に次の 2 種類があります。
バッチ正規化
#隠れ層の出力を取得するには、通常、非線形活性化関数を使用して入力を処理します。また、特定の層の各ニューロンについて、平均値と単位標準偏差がゼロになるように事前にアクティブ化することができます。これは、入力特徴のミニバッチに対して平均減算と標準偏差除算を実行することで実現できます。
ただし、すべての事前アクティブ化をすべてのバッチに対してゼロおよび単位標準偏差に強制するのは厳密すぎる可能性があるため、特定の変動分布を導入すると、ネットワークの学習をより効果的に行うことができます。
この問題を解決するために、バッチ正規化ではスケール ファクター ガンマ (γ) とオフセット ベータ (β) という 2 つのパラメーターが導入され、どちらも学習可能なパラメーターです。
バッチ正規化では、バッチ統計の使用に注意を払う必要があります。バッチサイズが小さい場合、サンプル平均と標準偏差は実際の分布を表すのに十分ではないため、ネットワークは意味のある学習を行えなくなります。したがって、バッチ サイズがより正確な統計を取得するのに十分な大きさであることを確認し、それによってモデルのパフォーマンスと学習を向上させる必要があります。
レイヤー正規化
レイヤー正規化は、研究者の Jimmy Lei Ba、Jamie Ryan Kiros、Geoffrey E. Hinton によって提案された方法です。この方法の中心となる考え方は、特定の層内のすべてのニューロンにわたって、特定の入力のすべての特徴を同じ分布にすることです。 バッチ正規化とは異なり、レイヤー正規化は各サンプルの特徴次元に対して正規化操作を実行します。入力フィーチャの各ニューロンの平均と分散を計算することにより、この層の出力を正規化します。この方法は、モデルがデータの小さなバッチに適応し、モデルの汎化能力を向上させるのに役立ちます。 レイヤー正規化の利点は、バッチ
に依存してすべての特徴を正規化するのではなく、各入力を特定のレイヤーに正規化し、バッチへの依存を排除することです。これにより、層の正規化は、一般的なトランスフォーマーやリカレント ニューラル ネットワーク (RNN) などのシーケンス モデルに適したものになります。
1. バッチ正規化では、ミニバッチ内の各特徴を個別に正規化します。レイヤー正規化は、バッチ内の各入力をすべてのフィーチャにわたって個別に正規化します。
2. バッチ正規化はバッチ サイズに依存するため、小さなバッチには効果的ではありません。レイヤーの正規化はバッチ サイズに依存しないため、より小さいサイズのバッチにも適用できます。
3. バッチ正規化では、トレーニング中と推論中に異なる処理が必要です。レイヤーの正規化は特定のレイヤーの入力長に沿って行われるため、トレーニング時と推論時に同じ一連の操作を使用できます。
以上がバッチ正規化とレイヤー正規化の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。