本文へ移動

G検定(ジェネラリスト検定)

こうかいばくはつもんだい

勾配爆発問題

Exploding Gradient Problem

ネットワークの重みが非常に大きいと、誤差逆伝播で入力層に近い層の勾配が多数の大きな項の積になる。その結果、勾配が大きくなりすぎて学習が収束しなくなる問題。

詳しい説明

どのような問題か

勾配爆発問題は、ニューラルネットワークを誤差逆伝播法で学習させるときに起こる失敗の一つです。誤差逆伝播法は、多層のニューラルネットワークで勾配降下法を使えるようにする、最も一般的な学習アルゴリズムです。勾配という微分の考え方を使って、損失が小さくなるように重みを調整します。

ネットワークの重みが非常に大きいと、下位層(入力層に近い層)の勾配を計算するときに、大きな値の項を多数掛け合わせることになります。その結果、勾配が大きくなりすぎて学習が収束しなくなります。この状態を、勾配が爆発すると表現します。

なぜ下位層で起こるのか

深いネットワーク(隠れ層を2つ以上持つネットワーク)では、下位層の勾配を求める計算に、多くの項の積が含まれます。1より大きい値を何度も掛け合わせると、積はどんどん大きくなります。重みが大きいと掛け合わせる項も大きくなるため、下位層の勾配が極端な値になります。

勾配は重みをどれだけ動かすかを決めるものなので、勾配が大きすぎると重みの更新も大きくなりすぎます。損失を最小にする方向へ少しずつ近づくという勾配降下法の前提が崩れ、学習が収束しません。

対策

根拠では、次の2つが勾配爆発を防ぐ助けになる手段として挙げられています。

  • バッチ正規化を使う
  • 学習率を下げる

どちらも必ず防げるとは書かれておらず、防ぐ助けになるという位置づけです。

勾配消失問題との違い

対になる現象に勾配消失問題があります。こちらは多数の小さな項の積によって、下位層の勾配が0に近づく現象です。根拠では、ReLU活性化関数が対策になるとされています。

観点勾配爆発問題勾配消失問題
積の項大きい項の積小さい項の積
勾配の様子大きくなりすぎる0に近づく
根拠が挙げる対策バッチ正規化、学習率を下げるReLU活性化関数

どちらも、下位層の勾配を求める計算が多数の項の積になるという同じ仕組みから起こります。違いは、掛け合わせる項が大きいか小さいかです。

学習の実務との関係

Kerasなどの多くの機械学習ライブラリは、誤差逆伝播を自動で処理します。そのため、勾配を自分で計算する場面はほとんどありません。ただし、学習が収束しないときに原因を調べて直すには、勾配の性質を理解しておく必要があります。根拠も、こうした問題を理解してデバッグするには、ある程度の微分の知識が必要になることが多いと述べています。

試験で問われること

G検定

  • 勾配爆発問題とは、ネットワークの重みが非常に大きいときに、下位層の勾配が多数の大きな項の積になる問題である。その結果、勾配が大きくなりすぎて学習が収束しなくなる。
  • 影響を受けるのは入力層に近い下位層の勾配である。勾配の計算に多くの項の積が含まれる深いネットワーク、つまり隠れ層を2つ以上持つネットワークの学習で問題になる。
  • 根拠が挙げる対策は、バッチ正規化と学習率を下げることの2つである。どちらも必ず防げる手段ではなく、勾配爆発を防ぐ助けになる手段として示されている。
  • 勾配消失問題は、多数の小さな項の積によって下位層の勾配が0に近づく現象である。勾配爆発問題とは、掛け合わせる項が大きいか小さいかという点で対になっている。
  • 対策の組み合わせを取り違えないことが大切である。根拠では、勾配消失の対策にReLU活性化関数、勾配爆発の対策にバッチ正規化と学習率を下げることが挙げられている。

最終更新日: 2026/09/23