【こうばいしょうしつもんだい】

勾配消失問題 とは?

最終更新:
💡 学習の合図が小さくなり、重みを直しにくい

ニューラルネットワークの学習で、逆伝播する勾配が非常に小さくなり、一部の重みが更新されにくくなる問題。起こる条件と、活性化関数・初期化・残差接続の工夫を説明します。

📌 このページのポイント
勾配消失:学習の合図が小さくなるデータは入力から出力へ入力側途中の層出力側勾配は出力側から逆向きに計算小さくなる途中の勾配出力側から学習しやすくする工夫の例活性化関数ReLUなど重みの初期化最初の値を工夫残差接続入力を足す経路合図が小さすぎると、直しにくい
逆伝播で勾配が小さくなる場合の模式図。棒は実測値ではありません。実際の勾配は重みや活性化関数などに左右されます。
ひよこ ひよこ
勾配が「消える」と、何に困るの?
ペンギン先生 ペンギン先生
学習では、出力の誤差から勾配を計算して重みを直すよ。逆伝播の途中で勾配がとても小さくなると、入力側などの重みがほとんど更新されなくなる。伝言ゲームで、直してほしいという合図が途中で小さくなるイメージだね。
ひよこ ひよこ
層を増やすと、必ず起こるの?
ペンギン先生 ペンギン先生
必ずではないよ。逆伝播では、各層の重みや活性化関数の微分を掛け合わせる部分がある。その組み合わせによって値が小さくなったり、逆に大きくなりすぎたりする。深さだけでなく、使う関数や初期化の方法も関係するんだ。
ひよこ ひよこ
シグモイドだと、10層で学習できなくなるって本当?
ペンギン先生 ペンギン先生
シグモイドの微分は最大でも0.25なので、小さな値の掛け算が続くことは注意点だよ。ただし実際の勾配には重みなども関係する。0.25を10回掛けた値だけで、あらゆる10層のモデルが学習できないとは判断できないんだ。
ひよこ ひよこ
どうやって学習しやすくするの?
ペンギン先生 ペンギン先生
活性化関数や重みの初期化を選び、ResNetのような残差接続で層の入力を足す経路を作るなどの工夫があるよ。ReLUは正の入力で微分が1になるけれど、負の入力では0になる。どれかを使えば必ず大丈夫というわけではなく、勾配や学習の進み方を確かめよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「勾配消失問題」って出てきたら「学習の合図が小さくなり、重みを直しにくくなる問題」と思えばだいたいOK!
📖 おまけ:英語の意味
「Vanishing gradient problem」 = 勾配が消えるように小さくなる問題
💬 勾配は、重みをどちらへどれくらい変えるかを決める手がかりです。Vanishingは、その値が非常に小さくなることを表します。

参考資料

← 用語集にもどる