ディープラーニングの学習
G検定の勾配消失問題と活性化関数
G検定のシラバスには、誤差逆伝播法の学習の仕組みとして勾配消失問題があります。このページは、シグモイド・tanh・ReLUの微分の最大値を比べ、層を重ねると勾配がどれだけ小さくなるかを小さな計算で確かめます。活性化関数の微分が1より小さいと、層の数だけ掛け合わされて勾配が消えていきます。
この記事の目次
公式情報の確認
試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-10-02。
試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。
結論
- 勾配消失問題は、深い層まで勾配を戻すと小さくなりすぎて、学習が進まなくなる問題
- 誤差逆伝播では層ごとの微分が掛け合わされるため、微分が1より小さいと積が急に小さくなる
- シグモイドの微分は最大0.25で、勾配消失が起きやすい代表例
- ReLUは正の入力で微分が1なので、積が小さくなりにくい
- ReLUは負の入力で微分が0になる点が、選択肢の取り違えどころ
3つの活性化関数の微分
Dive into Deep Learningは、シグモイドの微分を sigmoid(x)(1−sigmoid(x)) とし、入力が0のとき最大値0.25になると示しています。tanhは入力を−1から1の値にし、微分は入力が0に近いとき最大の1に近づきます。ReLUは max(x, 0) で、入力が負なら微分は0、正なら1です。
| 関数 | 式 | 出力の範囲 | 微分の値 | 勾配への影響 |
|---|---|---|---|---|
| シグモイド関数 | 1/(1+e^−x) | 0〜1 | 最大0.25(入力が0のとき) | 入力が大きくても小さくても微分が0に近づく |
| tanh関数 | (e^x−e^−x)/(e^x+e^−x) | −1〜1 | 最大1(入力が0付近) | 0付近では1に近いが、入力が離れると小さくなる |
| ReLU関数 | max(x, 0) | 0以上 | 正の入力で1、負の入力で0 | 正の側では微分が1で、掛けても小さくならない |
用語はシグモイド関数、tanh関数、活性化関数(ReLU等)の用語集にあります。
層の数と微分の積
誤差逆伝播法では、出力側から入力側へ向かって、層ごとの微分が掛け合わされます。Dive into Deep Learningも、多数の層を逆伝播すると積全体の勾配が消えやすいと説明しています。ここでは、シグモイドの微分の最大値0.25だけを層の数だけ掛けた値を比べます。
| 層の数 | 積 | 値 |
|---|---|---|
| 1層 | 0.25 | 0.25 |
| 5層 | 0.25の5乗 | 約9.8×10⁻⁴(0.00098) |
| 10層 | 0.25の10乗=1÷1,048,576 | 約9.5×10⁻⁷ |
10層で、微分の積は約100万分の1まで小さくなります。この小ささでは、更新量がほとんど0になり、パラメータが動きません。
入力が大きいとさらに小さくなる
0.25は、入力が0のときの最大値です。入力が4のとき、シグモイドは1÷(1+e^−4)で約0.9820、微分は 0.9820×(1−0.9820) で約0.0177まで下がります。入力0の最大値の約7%です。
Dive into Deep Learningが「入力が大きくても小さくても勾配が消える」と述べているのは、この状態です。入力が4の層を3つ通ると、微分の積は約5.5×10⁻⁶になります。0.25を3回掛けた約0.016より、さらに小さい値です。
勾配爆発問題との向きの違い
層ごとの値がすべて1より小さければ、積は層の数とともに0へ近づきます。逆にすべて1より大きければ、積は増え続けます。たとえば1.5を10回掛けると約57.7です。積が小さくなる側が勾配消失、大きくなる側が勾配爆発と整理すると、2つの問題を取り違えません。このページの数値は、どちらも説明用の導出です。
ReLUで消えにくい理由
ReLUの正の入力での微分は1です。1を10回掛けても1のままなので、同じ10層の計算でも、微分の積は小さくなりません。Dive into Deep Learningは、この性質からReLUが実務の標準になったと述べています。
ただし、負の入力では微分が0です。その経路を通る勾配は0になります。ReLUは「微分が常に1」ではなく「正の入力で1、負の入力で0」と覚えると、選択肢の取り違えを避けられます。過学習を抑える別の工夫は過学習と正則化のページにあります。
計算例の読み方
上の積は、微分の最大値だけを掛けた説明用の数値です。実際の勾配には重みも掛かるため、実際の大きさを表すものではなく、シグモイドを重ねると小さくなる方向に働くことの目安です。「0.25を10回掛けると必ず約9.5×10⁻⁷になる」という言い方は誤りです。
問題文から読み取る
このページの計算例から導いた読み方です。出題を予想するものではありません。
- 「層を深くすると入力側で勾配が小さくなる」とあれば、勾配消失問題
- 「微分の最大値が0.25」とあれば、シグモイド関数
- 「正の入力で微分が1」とあれば、ReLU関数
- 「ReLUは負の入力でも微分が1」という選択肢は誤り(負では0)
- 「ReLUを使えば勾配消失は必ずなくなる」と断定する選択肢は慎重に読む
G検定の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
よくある質問
勾配消失問題とは何ですか?
多数の層を誤差逆伝播で戻るとき、層ごとの微分が掛け合わされて勾配が小さくなりすぎ、パラメータの更新が小さすぎて学習が進まなくなる問題です。Dive into Deep Learningも、更新が小さすぎてパラメータがほとんど動かず、学習できなくなると説明しています。
なぜシグモイド関数で起きやすいのですか?
シグモイドの微分は最大でも0.25で、入力が大きくても小さくても0に近づくためです。Dive into Deep Learningは、活性化関数の選び方が勾配消失の原因になりやすく、シグモイドの勾配は入力が大きくても小さくても消えると述べています。
ReLUを使えば、勾配消失は必ず防げますか?
必ずとはいえません。ReLUは正の入力で微分が1なので小さくなりにくい一方、負の入力では微分が0です。このページは微分の値の違いを示すもので、ReLUだけで解決すると断定するものではありません。
G検定のシラバスに勾配消失問題はありますか?
このサイトのG検定の出題範囲の整理では、「学習の仕組み」の項目に勾配消失問題と勾配爆発問題、「再帰型ニューラルネットワーク」の項目にも勾配消失問題が入っています。最新のシラバスは、受験前にJDLAの公式ページで確認してください。
