テクニカルガイド
バッチ正規化
バッチ正規化は、トレーニング中にニューラル ネットワークの各層への入力を再スケールし、ディープ ネットワークのトレーニングをより高速かつ確実に行う手法です。
このガイドを聴くAIによるナレーション · ~2 min
概要
It became one of the most widely used tricks in deep learning.
ディープダイブ
データが深いネットワークを流れるにつれて、各層に供給される値の分布は、以前の層が更新されるにつれて変化し続けるため、トレーニングが遅くなり、不安定になります。 2015 年に Ioffe と Szegedy によって導入されたバッチ正規化は、現在のミニバッチ全体で各層の入力を正規化し、平均と単位分散がほぼゼロになるようにすることでこの問題に対処します。次に、ガンマとベータという 2 つの学習可能なパラメータを適用します。これにより、ネットワークが拡張され、正規化された値が役立つ場合は元にシフトされるため、表現力が失われることはありません。見返りは大きいです。ネットワークはより高い学習率を許容し、より少ないエポックで収束し、重みの初期化に対する感度が低くなり、多くの場合、一般化が少し良くなります。問題は、動作がバッチ統計に依存するため、非常に小さなバッチでは動作が不安定になる可能性があることです。
現実世界の実装
ResNet 画像分類器にバッチ ノルム レイヤーを挿入することで、より高い学習率でトレーニングし、はるかに少ないエポックで収束できるようにします。
以前は正規化なしで分岐していた医療画像用の深い畳み込みネットワークのトレーニングを安定化します。
カスタム CNN での重みの初期化に対する感度が低下するため、エンジニアが開始値を手動で調整する時間が短縮されます。
モデルをデプロイするときにトレーニング モードのバッチ統計から保存された移動平均に切り替えることで、単一画像の予測の一貫性が維持されます。
バッチ正規化の将来
バッチ正規化は依然として畳み込みビジョン モデルの主力ですが、バッチ統計への依存はリカレント ネットワーク、小さなバッチ、分散トレーニングにとって扱いにくいものです。これにより、レイヤー正規化などの代替手段の採用が促進され、レイヤー正規化は単一のサンプル内の機能全体を正規化し、現在ではトランスフォーマー アーキテクチャの主流となっており、さらに特定のドメインのグループおよびインスタンスの正規化も行われています。慎重な初期化とスケーリングを通じて、その利点に匹敵する正規化不要のネットワークの研究が続けられています。アーキテクチャに合わせて特定のバリアントが選択されるため、正規化は今後も不可欠であることが予想されます。
実践する
なぜそれが重要なのか
- 費用と予算. アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
- より明確な判決. 技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
- 品質管理. より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。
気をつけてください
- 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
- インフラストラクチャとメンテナンスのコストは過小評価されがちです。
- システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。
次のステップ
- 実装前にレイテンシ、品質、コストの目標を定義します。
- 現実的な負荷とデータ条件でのベンチマーク。
- エラー、ドリフト、ユーザーへの影響を計測器で監視します。
- スケーリングの前に、ロールバックとインシデント対応のパスを準備します。
探検を続けましょう
よくある質問
What is Batch Normalization?
バッチ正規化は、トレーニング中にニューラル ネットワークの各層への入力を再スケールし、ディープ ネットワークのトレーニングをより高速かつ確実に行う手法です。これはディープラーニングで最も広く使用されるトリックの 1 つになりました。
バッチ正規化は何を正規化しますか?
バッチ ノルムは、現在のミニバッチ全体で計算された平均と分散を使用してレイヤーの入力を標準化し、トレーニングが進行するにつれてアクティベーションを安定した範囲に保ちます。
バッチ正規化に学習可能なパラメータ ガンマとベータが含まれるのはなぜですか?
平均と単位分散をゼロに正規化した後、ガンマとベータにより、ネットワークが有益であれば値を再スケーリングし、再シフトできるため、正規化によってレイヤーが表現できる内容が制限されることはありません。
バッチ正規化の実際的な利点としてよく挙げられるのは何ですか?
層の入力を適切にスケーリングしておくことで、バッチ ノルムによりネットワークはより大きな学習率でトレーニングされ、より速く収束し、初期化の影響を受けにくくなります。
推論時 (新しいデータの予測)、バッチ正規化ではどのような統計が使用されますか?
推論時にライブ バッチ統計を使用すると、バッチを共有する他のサンプルに応じて予測が行われます。代わりに、バッチ ノルムはトレーニング中に保存された固定移動平均を使用します。
バッチサイズが非常に小さい場合、バッチ正規化が適切に動作しないのはなぜですか?
バッチノルムは、バッチからの平均と分散の推定に依存します。例が非常に少ないため、これらの推定値にはノイズが多く、トレーニングが不安定になる可能性があります。