【こうばいばくはつ】

勾配爆発 とは?

💡 坂道を転がるボールが加速しすぎて制御不能になるイメージ
📌 このページのポイント
勾配爆発 vs 正常な勾配伝播 正常な勾配伝播 層1 勾配: 0.5 層2 勾配: 0.4 層3 勾配: 0.3 層4 勾配: 0.2 出力 安定 勾配爆発 層1 勾配: 50000 層2 勾配: 5000 層3 勾配: 50 層4 勾配: 5 出力 勾配: 1 <── 逆伝播の方向(出力→入力)──> 対策: 勾配クリッピング / バッチ正規化 / 適切な重み初期化
正常な勾配伝播と勾配爆発の比較
ひよこ ひよこ

勾配爆発って、学習中に何が爆発するの?

ペンギン先生 ペンギン先生

ニューラルネットワークの学習では、誤差を逆方向に伝えてパラメータを調整するんだけど、そのときの「どれくらい調整するか」の値(勾配)が異常に大きくなることがあるんだ。数値がどんどん膨れ上がって、最終的にNaN(数値じゃない値)になって学習が壊れるんだよ。

ひよこ ひよこ

なんでそんなことが起きるの?

ペンギン先生 ペンギン先生

逆伝播では各層の勾配を掛け算で伝えていくんだ。もし各層の勾配が1.5倍ずつだとすると、50層あれば1.5の50乗で約63万倍になる。これが勾配爆発の仕組みだよ。層が深いほど、そしてRNNのように長い系列を扱うほど起きやすくなるんだ。

ひよこ ひよこ

どうやって防ぐの?

ペンギン先生 ペンギン先生

一番よく使われるのは「勾配クリッピング」だよ。勾配の大きさに上限を設けて、それを超えたらカットするんだ。他にもバッチ正規化で各層の出力を安定させたり、重みの初期値をXavierやHe初期化で適切に設定する方法もあるよ。

ひよこ ひよこ

勾配消失問題っていうのも聞くけど、関係あるの?

ペンギン先生 ペンギン先生

まさに表裏一体の関係だよ。勾配が大きくなりすぎると爆発、小さくなりすぎると消失。掛け算の値が1より大きいか小さいかの違いだね。LSTMやGRUといったRNNの改良版は、ゲート機構で勾配の流れを制御して両方の問題に対処しているんだよ。

ひよこ ひよこ

実際の現場で勾配爆発が起きたらどうやって気づくの?

ペンギン先生 ペンギン先生

学習中にloss(損失)が突然NaNやInfになったり、パラメータの値が極端に大きくなったりするのが典型的なサインだよ。TensorBoardなどで勾配のノルム(大きさ)を監視しておくのが実務では大切だね。最近のフレームワークには自動で検出してくれる機能もあるよ。

ひよこ ひよこ

Transformerでも勾配爆発って起きるの?

ペンギン先生 ペンギン先生

Transformerは残差接続やレイヤー正規化が組み込まれているから、RNNほど深刻にはなりにくいよ。でも超大規模モデルの学習では学習率の設定次第で起きることがある。GPTやLLaMAの学習でも勾配クリッピングは使われているんだ。安定した学習のために今でも必須のテクニックだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「勾配爆発」って出てきたら「学習中に勾配が巨大になりすぎてパラメータが吹っ飛ぶ問題」と思えればだいたいOK!
📖 おまけ:英語の意味
「Exploding Gradient Problem」 = 勾配爆発問題
💬 「Exploding」は爆発するという意味で、勾配の値が爆発的に増大する様子からこう呼ばれるんだよ
← 用語集にもどる