Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Exploding Gradient

勾配爆発では、誤差逆伝播中に勾配が指数関数的に増大し、極端な重み更新、損失の急増、NaN値を引き起こします。原因、兆候、対処法について解説します。

勾配爆発は、逆伝播で計算された勾配が、深層型またはリカレント型のニューラルネットワークを逆方向に伝わるにつれて指数関数的に増大する学習上の障害です。勾配降下法がモデルの重みに非常に大きな更新を適用し、損失関数の値が急増するか、NaNまたはinfになり、学習が発散します。これは勾配消失問題とは正反対の現象です。Pascanu, Mikolov, and Bengioはリカレントニューラルネットワークにおける両方の問題を分析し、勾配爆発への対策として勾配ノルムクリッピングを提案しており、この手法は現在も深層学習のトレーニングにおける標準的な対策となっています。

勾配爆発が起きる理由#

連鎖律により、初期レイヤーに届く勾配は、後続のレイヤーごと、またはリカレントネットワークでは時間ステップごとの因子の積になります。これらの因子が一貫して1より大きいと、積は深さに応じて指数関数的に増大します。たとえば、1.5という因子が30レイヤーにわたって繰り返されると、信号は約190,000倍になります。よくある原因には、不適切な重みの初期化、高すぎる学習率、正規化されていない入力、リカレントモデルでの長いシーケンス、混合精度学習でのオーバーフローがあります。混合精度学習では、65,504を超えるFP16値はinfになります。損失曲線が突然急上昇するかNaNになる、勾配ノルムのログがステップ間で桁違いに増加する、重みがNaNになる、といった兆候が見られます。

予防と緩和#

最新の学習パイプラインの多くは、これらの対策をいくつか組み合わせています。

  • 勾配クリッピング: すべての勾配のグローバルL2ノルムがしきい値を超えたとき、すべての勾配を同じ係数で縮小します。更新の方向は維持し、長さだけを制限します。
  • バッチ正規化: バッチ正規化とレイヤー正規化は各レイヤーの活性化値を再スケーリングし、レイヤー間で信号のスケールを安定させ、損失ランドスケープを滑らかにします。
  • 慎重な初期化: Xavier(Glorot)初期化とHe初期化は、レイヤー間で活性化値の分散がほぼ一定に保たれるように、初期重みをスケーリングします。
  • 残差接続: スキップ接続により、各ブロックを迂回する恒等写像の経路が勾配に与えられます。そのため、バックワード信号は1つの長い積ではなく、複数の経路の和になります。
  • 学習率ウォームアップ: 小さな学習率から始め、最初の数ステップで徐々に引き上げることで、重みとオプティマイザーの統計量が安定していない間に大きな更新が起きるのを防ぎます。

以下のコードでは、入力をそれぞれ1.5倍に増幅する30層のスタックを構築し、PyTorchで生成された勾配をクリッピングします。

import torch
from torch import nn

torch.manual_seed(0)

# 30 stacked linear layers, each initialized to amplify its input by 1.5x
layers = [nn.Linear(64, 64, bias=False) for _ in range(30)]
for layer in layers:
    nn.init.orthogonal_(layer.weight, gain=1.5)
model = nn.Sequential(*layers)

loss = model(torch.randn(8, 64)).pow(2).mean()
loss.backward()

# clip_grad_norm_ rescales all gradients in place and returns their norm before clipping
norm_before = nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
norm_after = nn.utils.get_total_norm([p.grad for p in model.parameters()])
print(f"Gradient norm before clipping: {norm_before:.2e}, after: {norm_after:.2f}")

クリッピング前の勾配ノルムは9.90e+10ですが、クリッピング後は1.00です。そのため、クリッピング前の勾配がどれほど大きくても、次のオプティマイザーのステップは上限内に収まります。

Ultralytics YOLO26の学習では、各ステップでこの対策を実行します。トレーナーは混合精度勾配のスケーリングを解除し、グローバルノルムを10.0にクリッピングします。それでもinfまたはNaN値が含まれる更新は、勾配スケーラーがスキップします。カスタムトレーナーでは上限を変更できます。たとえば、RT-DETRでは0.1に引き下げられます。

勾配爆発と勾配消失#

どちらの問題も、逆伝播におけるレイヤーごとの因子の積が原因です。因子が1より大きいと勾配爆発が起こり、不安定な更新、数値オーバーフロー、発散につながります。通常はクリッピングで対処します。因子が1より小さいと勾配はゼロに近づき、初期レイヤーが学習を停止します。通常はReLUなどの非飽和活性化関数、残差接続、LSTMなどのゲート付きリカレントユニットで対処します。正規化と慎重な初期化は、どちらの問題にも有効です。

実際のアプリケーション#

大規模言語モデルは長いテキストシーケンスを使って数十万ステップにわたり学習するため、損失の急上昇が既知の危険要因です。そこで、学習レシピでは勾配をクリッピングします。GPT-3はAdamを使用して学習され、グローバル勾配ノルムは1.0にクリッピングされました。

コンピュータビジョンでは、深い物体検出ネットワークを、高い学習率と混合精度を使ってCOCO規模のデータセットで学習するため、クリッピングと損失スケーリングによって、まれな極端なバッチが重みを破損するのを防ぎます。Transformerベースの検出器は、デコーダーのクロスアテンションを介した勾配が急増する可能性があるため、より影響を受けやすくなります。そのため、RT-DETRやDINOなどのDETR系モデルでは、通常、最大ノルムを0.1にしてクリッピングします。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう