勾配消失問題とは

こうばいしょうしつもんだいvanishing gradient problem別名 勾配消失

1行定義

勾配消失問題とは、誤差逆伝播法で入力層に近い層ほど勾配が小さくなり、重みがほとんど更新されなくなる現象のことです。

くわしく

勾配消失問題は、層の深いニューラルネットワークや、長い系列を扱うRNNで、学習が進まなくなる現象です。深いネットワークの学習が長く難しいとされてきた大きな理由の1つです。

なぜ起きるのか

ニューラルネットワークは誤差逆伝播法で学習します。出力の誤差をもとに、各重みを「どちらにどれだけ動かせば誤差が減るか」を表す勾配を求めます。このとき連鎖律により、出力層から入力層へ向かって、各層の微分が次々に掛け合わされます。

掛け合わせる値が1より小さいと、層をさかのぼるほど積は急速に小さくなります。たとえば0.25を10回掛けると、約100万分の1になります。シグモイド関数の微分は最大でも0.25なので、この状況が起きやすくなります。その結果、出力層に近い層は学習できても、入力層に近い層の重みはほとんど変わりません。

RNNでも同じことが起きます。RNNは時間方向に展開すると深いネットワークになり、BPTTで過去にさかのぼるたびに勾配が掛け合わされます。そのため、遠い過去の情報を学習しにくくなります。

主な対策

  • 活性化関数:正の範囲で微分が1になるReLU関数を使う。
  • 重みの初期値:層の大きさに合わせた初期化(Xavierの初期値、Heの初期値)を使う。
  • バッチ正規化:各層への入力の分布を整え、活性化関数が飽和しにくくする。
  • スキップ結合:ResNetのように層を飛び越える経路を作り、勾配を直接伝える。
  • ゲート機構:RNNではLSTMやGRUを使い、情報と勾配を長く保つ。

勾配爆発問題との違い

逆に、掛け合わせる値が1より大きいと、勾配が急激に大きくなります。これが勾配爆発問題です。重みが極端な値になり、学習が発散します。勾配の大きさに上限を設ける勾配クリッピングが代表的な対策です。

覚え方

「1より小さい数の掛け算は、すぐに0へ近づく」と覚えます。

G検定での出題

シグモイド関数の微分の小ささが原因になる仕組み、ReLU関数・LSTM・スキップ結合・バッチ正規化などの対策との対応、勾配爆発問題との違いが問われます。

混同しやすい用語

用語意味
勾配爆発問題誤差逆伝播法で層や時刻をさかのぼって勾配を伝えるうちに勾配が急激に大きくなり、学習が不安定になったり発散したりする現象

◯×チェック

  1. 勾配消失問題が起きると、出力層に近い層よりも、入力層に近い層の重みのほうが更新されにくくなる。

    答えを見る

    答え ◯ 正しい

    勾配は出力層から入力層へ、各層の微分を掛け合わせながら伝わります。そのため入力層に近いほど小さくなります。

  2. 勾配消失問題は、ネットワークの層を増やすほど起きにくくなる。

    答えを見る

    答え × 誤り

    層が増えるほど掛け合わせる回数が増え、勾配は小さくなりやすくなります。深いネットワークほど起きやすい問題です。

  3. RNNで長い系列を学習すると、時間をさかのぼるほど勾配が小さくなり、遠い過去の情報が学習に反映されにくくなることがある。

    答えを見る

    答え ◯ 正しい

    時間方向に展開したRNNは、深いネットワークと同じ構造になるためです。LSTMやGRUのゲート機構はこの対策です。

練習問題

勾配消失問題の問題(14問)
  1. 各層のユニット数の決め方
  2. シグモイド関数と勾配消失
  3. ReLU系関数とtanh関数の性質
  4. 活性化関数の形と勾配の伝わり方
  5. 勾配消失問題への対処
  6. 勾配爆発の症状と対策
  7. 信用割当問題の現れ方
  8. 深層化による訓練誤差の悪化
  9. スキップ結合の働きと応用先
  10. LSTMとGRUのゲート機構
  11. BPTTの逆伝播の進め方
  12. 長期依存の学習とモデル選択
  13. 積層オートエンコーダの学習手順
  14. CECが勾配消失を防ぐ理由

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術12・技術15・技術22

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習