G検定(ジェネラリスト検定)
こうかいしょうしつもんだい
勾配消失問題
Vanishing Gradient Problem
深いニューラルネットワークで、入力層に近い層の勾配が多数の小さな項の積によって0に近づき、その層の学習がとても遅くなるか、まったく進まなくなる問題。
詳しい説明
どんな問題か
勾配消失問題は、誤差逆伝播法でニューラルネットワークを学習させるときに起こる代表的な失敗の一つです。入力層に近い層(下位の層)の勾配がとても小さくなり、0に近づいてしまう現象を指します。勾配の値が0に近づくことを、勾配が消える(vanish)と表現します。
前提となる誤差逆伝播法
誤差逆伝播法は、ニューラルネットワークの学習で最もよく使われるアルゴリズムで、多層のネットワークで勾配降下法を実行できるようにする仕組みです。微分の概念である勾配を使って、損失が小さくなるように重みを調整します。Kerasのようなライブラリは誤差逆伝播法を自動で処理してくれるため、計算を自分で書く必要はありません。ただし、学習がうまく進まない原因を理解し、調べるためには、勾配の考え方を押さえておく必要があります。
なぜ勾配が小さくなるのか
隠れ層が2つ以上ある深いネットワークでは、入力層に近い層の勾配を計算する過程で、多くの小さな項を掛け合わせることがあります。小さな値どうしの積を何度も重ねると、結果は0に近づいていきます。こうして、入力層に近い層の勾配が消えてしまいます。
学習にどう影響するか
勾配は、重みをどの方向へどれだけ動かすかを決める手がかりです。勾配が0に近い層では重みの調整がほとんど進まないため、その層の学習はとても遅くなるか、まったく進まなくなります。出力層に近い層が学習できていても、入力層に近い層が取り残されるおそれがあります。
対策としてのReLU
活性化関数にReLUを使うことは、勾配消失を防ぐ助けになります。ReLUは防ぐ助けになる手段として示されているものであり、使えば必ず解消すると言い切れるものではない点に注意してください。
勾配爆発問題との対比
対になる問題に勾配爆発問題があります。こちらは重みがとても大きい場合に、入力層に近い層の勾配が多くの大きな項の積となり、大きくなりすぎて収束しなくなる問題です。対策としては、バッチ正規化や学習率を下げることが挙げられます。どちらも多数の項の積から生じますが、項が小さいと消失、大きいと爆発という向きの違いがあり、対策も異なります。
G検定での位置づけ
勾配消失問題は、G検定のシラバス2024のキーワードに含まれています。深いネットワークの学習がなぜ難しいのかを理解するうえで、基本となる概念です。
試験で問われること
G検定
- 勾配消失問題は、誤差逆伝播法による学習で、入力層に近い下位の層の勾配がとても小さくなり0に近づく現象で、この状態を指して勾配が消える(vanish)と表現する。
- 隠れ層が2つ以上ある深いネットワークでは、入力層に近い層の勾配を計算するときに多くの小さな項の積をとることがあり、これが勾配を0に近づける原因になる。
- 勾配が消失した層では重みの調整がほとんど進まず、学習がとても遅くなるか、まったく学習しなくなるため、深いネットワークの学習を妨げる問題として押さえておく。
- 勾配消失を防ぐ助けになる手段として、活性化関数にReLUを使うことが挙げられており、ReLUは勾配消失の対策と結び付けて覚えておくとよいが、必ず解消するとは言えない。
- 対になる勾配爆発問題は、重みが大きいときに大きな項の積で勾配が大きくなりすぎる問題で、対策はバッチ正規化や学習率を下げることであり、勾配消失の対策と取り違えないようにする。
最終更新日: 2026/09/23