バッチ正規化は、トレーニング速度、安定性、収束を向上させるためにディープ ニューラル ネットワークで使用される手法です。その主な目的は、内部共変量シフトの問題に対処することです。これは、前の層のパラメーターの変更によるトレーニング中の各層の入力の分布の変化を指します。この変化により、トレーニング プロセスが遅くなり、各層が効果的に学習することがより困難になる可能性があります。
バッチ正規化の仕組み
-
ミニバッチ内の正規化: トレーニング中に、バッチ正規化では、ミニバッチ平均を減算し、ミニバッチ標準偏差で除算することにより、各層の入力を正規化します。これにより、内部共変量シフトが軽減され、ネットワークがより安定し、より高速なトレーニングが可能になります。
-
学習可能なパラメータ: バッチ正規化では、アクティベーションごとに 2 つの学習可能なパラメータが導入されます。これは通常、scale パラメータと shift パラメータと呼ばれます。これらのパラメーターにより、モデルが適応し、各レイヤーの入力に最適なスケールとシフトを学習できるようになります。
-
特徴全体の正規化: ミニバッチ ディメンション全体での正規化に加えて、バッチ正規化では、バッチ内の各サンプルの特徴全体で正規化も行われます。この正規化は、特徴の次元ごとに独立して実行されます。
トレーニングへの影響
-
収束の高速化: バッチ正規化により、発散のリスクなしでより高い学習率の使用が可能になるため、多くの場合、トレーニング中の収束が高速化されます。
-
過学習の軽減: 正則化の形式として機能し、ドロップアウトまたは他の正則化手法への依存を軽減し、それによって過学習をある程度防ぐのに役立ちます。
-
安定性と勾配フロー: 勾配の消失または爆発の可能性を低減することでトレーニング プロセスを安定させ、ネットワークを介したより堅牢な勾配フローを可能にします。
欠点と制限
-
バッチ サイズの依存性: バッチ正規化の有効性は、トレーニング中に使用されるバッチ サイズの影響を受ける可能性があります。バッチ サイズが非常に小さいと、ミニバッチ統計の推定が不正確になり、パフォーマンスに影響を与える可能性があります。
-
一部のアーキテクチャへの適用が難しい: バッチ正規化は、リカレント ニューラル ネットワーク (RNN) の計算の逐次的性質により、最適に機能しない可能性があります。
-
推論への影響: 推論中、正規化に使用される平均および標準偏差は、トレーニング データセット全体または実行中の統計から推定する必要があります。これにより、特に推論データの分布がデータセットと大幅に異なる場合には、多少の不一致が生じる可能性があります。トレーニングデータ。
バッチ正規化は強力な手法であり、多くの深層学習アーキテクチャで一般的に使用されていますが、その有効性はネットワーク アーキテクチャ、データ分散、および特定の使用例によって異なります。シナリオによっては、レイヤー正規化 や インスタンス正規化 などの代替手段が優先される場合があります。