【こうばいばくはつ】
勾配爆発 とは?
最終更新:
💡 逆伝播で勾配が増幅し、学習が不安定になる
ニューラルネットワークの学習中、逆伝播で求める勾配が非常に大きくなり、パラメータの更新や学習が不安定になる問題。長い系列を扱うRNNなどで研究されている。
📌 このページのポイント
- 逆伝播で微分を繰り返し掛け合わせる過程で、勾配が大きく増幅することがある
- 勾配は損失の変化を表す微分で、更新量そのものではない
- 勾配ノルムの上限を超えたら縮小するクリッピングが対策の一つ
- 損失だけでなく勾配の大きさも確認し、原因に応じて設定を見直す
勾配爆発って、学習中に何が爆発するの?
なぜ大きくなるの?
どう対策するの?
勾配消失とは関係あるの?
起きたかどうか、どうやって気づくの?
損失の急な増加に加え、勾配ノルムが大きく跳ね上がっていないかを見よう。NaNやInfも調べるきっかけになるけれど、他の数値計算の問題でも出るので、それだけで勾配爆発と決めつけない。PyTorchのクリッピング関数にも、ノルムが非有限値ならエラーにする設定があるよ。
まとめ:ざっくりこれだけ覚えればOK!
「勾配爆発」って出てきたら「勾配が巨大になり、学習が不安定になる問題」と思えばだいたいOK!
📖 おまけ:英語の意味
「Exploding Gradient Problem」 = 勾配爆発問題
💬 「Exploding」は爆発するという意味で、勾配の値が爆発的に増大する様子からこう呼ばれるんだよ