Table of Contents
バッチ正規化は、ニューラルネットワークのトレーニングプロセスを改善するためにディープラーニングで使用される技術です。 これは、学習の安定化と加速に役立つ各レイヤーの入力を正規化します。 この記事では、関与する計算、利点、および練習中のバッチ正規化の展開方法を説明します。
バッチ正規化の計算
トレーニング中に、バッチ正規化は、現在のミニバッチを渡る各機能の平均と分散を計算します。 正規化値は、標準偏差による平均と分割をサブトラクトすることによって計算されます。 式は次のとおりです。
]標準値:[]] []x = (x - μ) / √(σ2 + ε)
x]は入力で、μ]は、バッチ平均で、[σ2]はバッチ分散であり、[ε]はゼロで分割を防ぐ小さな定数です。 正規化後、学習可能なパラメータスケールと出力をシフト:
[]出力:] []]]]y = γ * x 時 + β]
バッチ正規化の利点
バッチ正規化は、ニューラルネットワークのトレーニングにおいていくつかの利点を提供しています。それは、ネットワークの活性化の分布の変化である内部の共和シフトを減少させます。この安定化により、より高い学習率とより速いコンバージェンスが可能になります。さらに、それは定期的な化の形態として機能し、潜在的にドロップアウトのような他の技術の必要性を減らす。
他の利点は、モデルの精度と堅牢性、さらには、バニシングやグラデーションを爆発させることを苦しむことなく、より深いネットワークを使用する能力を含みます。
バッチ正規化の実用化
神経ネットワークにおけるバッチ正規化の実装には、各々の連結層または完全に接続層の後にバッチ正規化層を追加することが含まれます。 TensorFlow や PyTorch などのフレームワークでは、これは組み込み機能で簡単です。
トレーニング中、バッチ正規化層は、平均と分散の移動平均を更新します。 推論中、これらの平均は正規化に使用され、一貫性のあるパフォーマンスを保証します。
バッチ正規化を展開する際には、バッチサイズを考慮することが重要です。 より小さいバッチサイズは、モデル性能に影響を与えることができる平均と分散のより少ない安定した推定値につながる可能性があります。 レイヤー正規化やグループ正規化などの代替は、このような場合に使用できます。