Web教科書

勾配爆発

勾配爆発問題 (Gradient Explosion Problem)

解説

勾配爆発問題とは、ディープラーニングの学習中(誤差逆伝播)に、勾配(更新量)が異常に大きくなりすぎて、計算結果が「無限大(NaN:非数)」になってしまう現象です。

「1.1倍」を繰り返すと大変なことに

勾配消失問題が「0.1倍(1より小さい数)」の掛け算で値が消える現象だったのに対し、勾配爆発はその逆です。
連鎖律」によって勾配の掛け算が繰り返される際、その値が「1より大きい」状態が続くとどうなるでしょうか。

  • 1回目:1.1倍
  • 10回目:約2.6倍
  • 100回目:約13,780倍
  • 1000回目:天文学的な数字(オーバーフロー)

このように、層が深くなるにつれて値がねずみ算式に増大し、コンピュータが扱える数字の限界を超えてしまいます。結果として、重みが極端な値に更新され、学習が完全に崩壊(発散)します。

RNNで頻発する理由

この問題は、特にRNN(再帰型ニューラルネットワーク)でよく起こります。
RNNは構造上、「同じ重みパラメータ」を時系列の数だけ繰り返し掛け算するため、もしその重みが1より大きければ、時間の長さ(タイムステップ)に応じて確実に爆発してしまうからです。


G検定対策

出題ポイント

  • 定義:逆伝播の過程で勾配が指数関数的に増大し、学習が発散(計算不能)する現象。
  • 発生場所:層が深いネットワークや、RNN(再帰型ニューラルネットワーク)で特に起きやすい。
  • 対策:勾配クリッピング(Gradient Clipping)。勾配がある閾値を超えたら、強制的に値をカットする方法。

よくあるひっかけ問題

  • × 勾配爆発を防ぐために、シグモイド関数を使用する
    (解説)逆です。シグモイド関数(微分最大値0.25)は、値を小さくするため「勾配消失」の原因になります。爆発の対策にはなりません。
  • × 勾配爆発が起きると、重みの更新量が0に近づき、学習が止まる
    (解説)それは「勾配消失」の説明です。爆発の場合は、更新量が巨大になりすぎて、最適解を通り越してどこかへ飛んでいってしまいます(発散)。
タイトルとURLをコピーしました