機械学習: バッチ正規化を使用する場合の欠点は何ですか?

機械学習: バッチ正規化を使用する場合の欠点は何ですか?

バッチ正規化は、ディープラーニング分野における大きな進歩の 1 つであり、近年研究者によって議論されているホットなトピックの 1 つでもあります。バッチ正規化は、トレーニングをより高速かつ安定的にする広く採用されている手法であり、ディープラーニングの分野で最も影響力のある方法の 1 つとなっています。ただし、まだ注意すべき問題がいくつかあります。

[[326393]]

バッチ正規化を使用する理由は何ですか?

バッチ正規化とは

ディープラーニング モデルをトレーニングする場合、各中間活性化層の出力分布は、以前の重みを更新するたびに反復ごとに変化します。この現象は内部共変シフト (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 年間の深い測定学習は無駄になったのでしょうか?

ブログ    

推薦する

OpenAIの従業員が996の勤務スケジュールを公開、ネットユーザー「本当の競争は強制する必要はない」

OpenAI も 996 で動作することが確認されています (doge)。 『Thinking C...

PyTorch エクスペリエンス ガイド: ヒントと落とし穴

PyTorch の開発者は、PyTorch の哲学は即時のタスクを解決すること、つまり計算グラフをそ...

...

パンデミックの間、AI はどのようにして工場の安全な運営を維持するのに役立つのでしょうか?

[[377897]]新型コロナウイルスの感染拡大が世界中で続く中、多くの企業が業務をリモートワーク...

CAIOは企業が緊急に必要とする人材になりつつある

数え切れないほど多くの企業が AI 技術の研究や導入に競い合う中、多くの企業が熟練した AI チーム...

MIT テクノロジーレビュー: 6 つの質問が生成 AI の未来を決定する

「生成AIは2023年に世界を席巻します。その未来、そして私たちの未来は、私たちの次の一手によって決...

アマゾンとファーウェイの機械学習面接を経験すると、試験官はこれらの答えを聞きたがっていることが判明

[[245589]]ジョージ・セイフ氏はこれまで、主にデータサイエンスや機械学習関連の職種を対象に、...

機械学習における勾配降下法

最大化問題は、機械学習アルゴリズムの非常に重要な部分です。ほぼすべての機械学習アルゴリズムの中核は、...

...

AI人工知能がアパレル業界に侵入し、大量の「鉄丼」が解雇に直面!

[[238920]]ファッション業界における人工知能(AI)技術の応用はますます深く広範囲になって...

AI、機械学習、RPA業界への期待

毎年、IT 業界メディアの eWEEK では、新製品、革新的なサービス、開発動向など、IT 業界の今...

Google翻訳カーネルのアップグレードによりエラー率が55%以上低下したと主張

最近、Google 翻訳はひっそりと翻訳コアをアップグレードしました。 Google が提供する公式...

自動運転システムにおけるエッジコンピューティング技術

エッジ コンピューティングは、ネットワークのエッジでコンピューティングを実行する新しいコンピューティ...