Tuesday, July 29, 2025

208 4層の勾配消失問題

208 4層の勾配消失問題

勾配消失問題とは、深層ニューラルネットワークが学習する際、入力に近い層ほど重みがうまく更新されなくなる現象です。この問題は、ニューラルネットワークが誤差を出力層から入力層へと逆向きに伝えていく「誤差逆伝播法」によって学習する過程で起こります。その伝播の中で、各層を通るたびに誤差の大きさがどんどん小さくなってしまい、最終的には入力層付近ではほとんど変化がない、つまり学習が止まってしまうのです。

特に、シグモイド関数やtanh関数といった従来の活性化関数を使っていると、出力が一定の範囲に収まってしまうため、出力が飽和状態になると、それに対する反応も鈍くなってしまいます。その結果、深い層に行くにつれて変化が伝わりづらくなり、勾配が限りなくゼロに近づいていきます。これが「勾配が消える」という現象の本質です。

たとえば、入力層から数えて4層目まであるネットワークを考えてみましょう。このとき、出力層から誤差が伝播してくる際、活性化関数によって変化の度合いが小さくなる処理が3回続きます。1層目に到達する頃には、その変化はほとんど感じられないほど微小になってしまうことがあり、それが学習の停滞を引き起こします。つまり、層が深くなるごとにこの問題は顕著になり、4層程度でも既に影響が現れ始めます。

このような状態になると、入力に近い層のパラメータはほとんど更新されなくなり、ネットワーク全体が効果的に学習できません。これにより、せっかく深い層まで構築したモデルが持っているはずの表現力を活かせなくなってしまいます。

この問題への対策としては、出力の変化が極端に小さくならないようにする工夫がいくつかあります。たとえば、ReLUという活性化関数は、出力が正の値のときに反応が鈍らず、勾配も保たれる性質があります。さらに、各層の出力を整えるバッチ正規化や、勾配が適切な範囲に収まるように工夫された重みの初期設定方法も有効です。また、繰り返し構造を持つRNNのようなネットワークでは、特にこの問題が深刻になるため、LSTMと呼ばれる特別な構造が考案され、長期的な情報を保ちながら学習できるようになっています。

このように、勾配消失問題は深いネットワークを学習させる上で避けては通れない重要な課題ですが、さまざまな工夫によってその影響を和らげることができます。4層といった比較的浅いネットワークでも油断はできず、問題の兆候を見逃さずに設計することが大切です。

No comments:

Post a Comment