勾配消失問題は、ニューラルネットワークのネットワークが深くになるにつれて、誤差逆伝播における勾配の重みが消失してしまい、学習が進まなくなる技術的な問題である。

なぜ勾配が消失するのか?
深い(層がたくさんある)ネットワークの中で、何層にもわたって逆伝播していくうちに、勾配(重みの値を更新するために使われる情報)がどんどん小さくなるから。

勾配消失問題の原因は?
当時の活性化関数が原因になっていた。
当時よく利用されていたシグモイド関数やTanh関数などを、ReLU関数に変更したことで、勾配消失問題は軽減された。

シグモイド関数やTanh関数では、なぜ勾配消失問題が起こるのか?
シグモイド関数Tanh関数は、入力値が大きいときや小さいとき、関数の微分値(勾配)が限りなくゼロに近くなる。
シグモイド関数の微分値は最大でも0.25、
Tanh関数の微分値は最大で1。
どちらもほとんどの場合、微分値が小さい値になる。

誤差逆伝播では、活性化関数の微分値をいくつもかけ合わせた値を利用する。
小さい値を掛け合わせ続けると、限りなくゼロに近づいていってしまう。
つまり、層がたくさんある深いネットワークで何層も遡るうちに、誤差が消失してしまう。

なぜReLU関数では勾配消失問題が解消されるのか?
ReLU関数は、入力値が負の場合は0、入力値が正の場合は入力値そのものを返す関数である。
ReLU関数は、入力値が正であれば微分が必ず1になるので、勾配が消失しない。