勾配消失問題とは
Vanishing Gradient Problem
深いニューラルネットワークで誤差逆伝播をする際、浅い層へ伝わる勾配が極端に小さくなり学習が進まなくなる問題
ひとことで言うと
AIの層が深すぎると、後ろから伝える修正の指示がだんだん薄まって、前の方の層まで届かなくなる問題。
概要
勾配消失問題は、誤差逆伝播法によって出力層から入力層に向かって勾配を伝播させる際、連鎖律により各層の勾配が繰り返し掛け合わされていく過程で、勾配の値が層をさかのぼるごとに指数的に小さくなっていき、浅い層(入力に近い層)のパラメータがほとんど更新されなくなってしまう現象。 シグモイド関数やtanh関数のように、入力の絶対値が大きい領域で勾配がほぼ0になる活性化関数を多層に重ねて使うと、この問題が特に起こりやすい。 勾配がほぼ0になった層は実質的に学習が停止した状態になり、ネットワーク全体としては深くしたはずの層を十分に活用できず、性能が頭打ちになったり、浅いネットワークと変わらない性能しか出せなくなったりする。 対策として、勾配が消えにくいReLU系の活性化関数の採用、勾配を直接伝える経路を作る残差接続、各層の出力を安定させるBatch NormalizationやLayer Normalizationなどが広く使われている。
背景
多層のニューラルネットワークを学習させる際、誤差逆伝播法は連鎖律に基づいて勾配を計算するため、各層の勾配が掛け合わされていく過程で数値的な問題が生じやすい。 勾配消失問題は、この掛け合わせによって勾配が指数的に減衰してしまうことに起因し、深いネットワークの学習を妨げる根本的な課題として認識されてきた。
歴史
1991年: Hochreiterが深いネットワークにおける勾配消失・爆発の問題を指摘。 1997年: LSTMが、ゲート機構によって勾配消失を緩和する再帰型ネットワークとして提案される。 2015年: 残差接続を導入したResNetが、非常に深いネットワークでも勾配消失を抑えて学習できることを示す。
欠点
- 浅い層のパラメータがほとんど更新されず、ネットワークの表現力を十分に引き出せなくなる
- 深いネットワークを設計しても、実際の性能が期待したほど向上しないことがある
- 問題の発生に気づきにくく、学習が進まない原因の切り分けに手間がかかりやすい
比較
関連用語
よくある質問
勾配消失はなぜ起こる?
誤差逆伝播法では各層の勾配が連鎖律により掛け合わされていくため、1未満の値が何度も掛け合わされると、層をさかのぼるほど勾配が指数的に小さくなってしまうため。
勾配消失を防ぐ代表的な方法は?
ReLU系の活性化関数の採用、勾配を直接伝える残差接続、各層の出力を安定させる正規化手法(Batch NormalizationやLayer Normalization)などが広く使われている。