バッチ正規化は、ディープラーニング分野における大きな進歩の 1 つであり、近年研究者によって議論されているホットなトピックの 1 つでもあります。バッチ正規化は、トレーニングをより高速かつ安定的にする広く採用されている手法であり、ディープラーニングの分野で最も影響力のある方法の 1 つとなっています。ただし、まだ注意すべき問題がいくつかあります。
バッチ正規化を使用する理由は何ですか?バッチ正規化とは ディープラーニング モデルをトレーニングする場合、各中間活性化層の出力分布は、以前の重みを更新するたびに反復ごとに変化します。この現象は内部共変シフト (ICS) と呼ばれます。これを防ぐには、すべてのディストリビューションを修正する必要があります。簡単に言えば、分布シフトの問題が発生した場合は、シフトを解除して勾配の最適化を支援し、勾配消失を防ぐ必要があります。これにより、ニューラル ネットワークのトレーニングが高速化されます。したがって、この ICS を削減することが、バッチ正規化の開発を推進する重要な原則です。 仕組み バッチ正規化は、バッチ全体の経験的平均を減算し、経験的標準偏差で割ることで、前の出力層の出力を正規化します。これにより、データがガウス分布のように見えるようになります。 ここで、mu と sigma_square はそれぞれバッチ平均とバッチ分散です。 2 つの学習可能なパラメーター γ と β に基づいて、新しい平均と共分散を学習します。 VGG-16ネットワークの中間畳み込み層の特徴分布出力 利点 バッチ正規化を使用する利点をいくつか挙げますが、記事が長くなってしまうため詳細は省略します。
バッチ正規化の問題この記事の目的に戻ると、バッチ正規化によってパフォーマンスが低下したり、まったく機能しなくなったりするケースが多くあります。 小さなバッチサイズを使用すると不安定になる 前述のように、バッチ正規化レイヤーは、バッチ全体にわたって以前の出力を正規化するために、平均と分散を計算する必要があります。 ResNet-50 のバッチ正規化検証エラー 上記はResNet-50の検証エラーグラフです。バッチ サイズが 32 のままであれば、最終的な検証エラーは約 23 になり、バッチ サイズが小さくなるにつれてエラーは減少し続けます (バッチ サイズは平均値そのものなので 1 にはなりません)。損失は大きく異なります(約10%)。 バッチ サイズが小さいことが問題なら、なぜより大きなバッチ サイズを使用しないのでしょうか? 実際には、すべてのケースでより大きなバッチ サイズを使用できるわけではありません。微調整を行う場合、大きな勾配によってモデルに悪影響が及ぶのを避けるため、大きなバッチ サイズを使用することはできません。分散トレーニングでは、大きなバッチ サイズが最終的に小さなバッチ サイズのセットとしてインスタンス全体に分散されます。 これによりトレーニング時間が長くなります NVIDIA とカーネギーメロン大学が実施した実験の結果によると、「バッチ正規化は計算コストが高くないにもかかわらず、収束に必要な反復の合計回数は減少します。反復あたりの時間は大幅に増加する可能性があります」と示されており、バッチサイズが大きくなるにつれてトレーニング時間がさらに長くなる可能性があります。 Titan X Pascal を使用した ImageNet 上の ResNet-50 トレーニング時間の分布 ご覧のとおり、バッチ正規化はトレーニング時間全体の 1/4 を消費します。その理由は、バッチ正規化では入力データに対して 2 回の反復処理が必要になるためです。1 回はバッチ統計を計算し、もう 1 回は出力を正規化します。 テスト/推論フェーズでは不安定 たとえば、実際のアプリケーション「物体検出」を考えてみましょう。オブジェクト検出器をトレーニングする場合、通常は大きなバッチ サイズを使用します (デフォルトでは、YOLOv4 と Faster-RCNN はどちらもバッチ サイズ = 64 でトレーニングされます)。しかし、これらのディープラーニング モデルを本番環境に導入した後は、トレーニングしたときほど効果的ではありません。これは、大きなバッチ サイズでトレーニングされ、リアルタイムではすべてのフレームを処理する必要があるため、バッチ サイズが 1 になるからです。前述したように、バッチ サイズ 1 を使用すると、本質的に平均正規化されるため、正規化レイヤーはいわゆる「内部共変量シフト」を効果的に処理できなくなります。 オンライン学習には不向き バッチ学習とは対照的に、オンライン学習は、データインスタンスを順番に(個別に、またはミニバッチと呼ばれる小さなグループで)入力することでシステムを段階的にトレーニングする学習手法です。各学習ステップは高速かつ低コストであるため、システムは新しいデータが到着すると動的に学習できます。 典型的なオンライン学習パイプライン 外部データ ソースに依存しているため、データは個別に、またはバッチで到着する可能性があります。各反復でバッチ サイズが変化するため、入力データのスケールとシフトにうまく一般化できず、最終的にはパフォーマンスに影響します。 リカレントニューラルネットワークには適さない 畳み込みニューラル ネットワークでは、バッチ正規化によってトレーニング速度と一般化が大幅に向上しますが、再帰型アーキテクチャに適用することは困難であることが判明しています。バッチ正規化は、RNN のスタック間に適用できます。この場合、正規化は「垂直方向」(つまり、各 RNN の出力) に適用されますが、「水平方向」(つまり、時間ステップ間) には適用できません。これは、繰り返し再スケーリングすると勾配が爆発する可能性があるためです。 代替案バッチ正規化が不可能な場合は、いくつかの代替手段を使用できます。
やっとバッチ正規化はディープラーニングの発展における画期的な技術ですが、まだいくつかの問題が残っており、正規化技術にはまだ改善の余地があることがわかります。 |
<<: AIは教育の問題を解決できないが、メンターツールにはなり得る
>>: この 13 年間の深い測定学習は無駄になったのでしょうか?
[[373764]]顔認識訪問者システムの利点は何ですか?以前は、訪問者の管理に手書きの登録が使用...
近年、研究者らはトカマクの停止や損傷の原因となる核分裂反応を研究している。核分裂反応を予測・制御でき...
日常生活で人々が接触する家具のほとんどは、引き出しレール付きの引き出し、垂直回転軸付きの扉、水平回転...
3D ポートレート合成は、常に AIGC の注目を浴びている分野です。 NeRF と 3D 対応 ...
この数か月の「影響」を経て、誰もが半導体不足の事実を十分に認識したと思います。2020年12月以来、...
ビジネスが今やデータ主導型になっていることは誰もが知っています。データ収集の増加に伴い、分析はビジネ...
健康診断のために病院に行くところを想像してください。診察室に入るとすぐに、看護師があなたの写真を撮り...
確かに、人工知能(AI)主導のテクノロジーが人間を不要にするか否かをめぐる議論は、少なくともこの聴衆...
GenAI に対する信頼はまちまちです。 VentureBeat は最近、製造業とサービス業の複数の...