勾配消失問題とは、ディープラーニングにおいて層を深くした際、ネットワークの逆誤差伝播法で計算される勾配が入力層に近づくにつれて小さくなり、学習が進まなくなってしまう現象です。活性化関数としてシグモイド関数などを使用すると発生しやすく、パラメータの更新が停滞することでモデルの精度向上を妨げる大きな課題となります。
勾配消失問題とは
勾配消失問題とは、深層学習モデルの層が深くなるにつれて勾配が極めて小さくなり、入力層に近い重みが適切に更新されなくなる現象のことです。
詳しく解説
ニューラルネットワークの学習では、出力誤差を入力側に遡って伝える逆誤差伝播法というアルゴリズムが使われます。この計算過程では各層の微分値(勾配)を掛け合わせていきますが、シグモイド関数などの特定の活性化関数を使用していると、1未満の値が何度も乗算されるため、入力層に近づくほど勾配がゼロに近づいてしまいます。勾配が消失すると重みパラメータがほとんど更新されず、多層構造の強みである複雑な特徴量の獲得が阻害されます。この問題を解決するために、勾配が小さくなりにくいReLUなどの新しい活性化関数の導入や、構造上の工夫が行われるようになりました。
具体例・使われ方
たとえば、10層以上ある深層ニューラルネットワークを構築して画像認識モデルを学習させる場合を考えます。出力層に近い層は順調に学習が進むのに対し、入力層に近い初期の層では勾配がほぼゼロとなり、パラメータが更新されません。その結果、入力画像からエッジや輪郭といった基礎的な特徴を抽出する能力が学習されず、モデル全体の認識精度が頭打ちになるという形で現れます。
似た用語との違い
似た現象として「勾配爆発問題」があります。勾配消失問題が勾配がゼロに近づいて学習が停止するのに対し、勾配爆発問題は勾配が層を遡るごとに極端に大きくなり、計算結果がオーバーフローして学習が不安定化・崩壊する現象です。どちらも深層化に伴う勾配の計算トラブルですが、勾配の変化の方向性が真逆です。
注意点
勾配消失問題は活性化関数の変更(ReLUの採用など)や残差接続(ResNet)の導入で大幅に改善されますが、単に層を浅くすればよいわけではありません。また、学習が停止している原因が勾配消失だけでなく、学習率の設定ミスやデータの偏りである場合もあるため、勾配の大きさを直接モニターして原因を切り分けることが重要です。