層の多いニューラルネットワークを誤差逆伝播法で学習させると、入力層に近い層ほど勾配が小さくなり、パラメータがほとんど更新されなくなる「勾配消失問題」が生じることがある。この問題が起こる理由と対策の説明として、最も適切なものはどれか。
- 1シグモイド関数の微分の最大値は0.25と小さく、層をさかのぼるたびに1未満の値が掛け合わされて勾配が小さくなるため、隠れ層の活性化関数にReLUを用いることで緩和できる。
- 2ReLUは入力が正の領域で微分が常に0になるため、隠れ層の活性化関数をReLUからシグモイド関数に置き換えることで緩和できる。
- 3勾配の大きさは訓練データの件数に比例するため、訓練データの件数を増やしさえすれば根本的に解決できる。
- 4学習率が小さすぎることが唯一の原因であるため、学習率を十分に大きくすれば、層の数にかかわらず必ず解決できる。
正解と解説を見る
正解:1
シグモイド関数の導関数は最大でも0.25で、誤差逆伝播法では層をさかのぼるたびにこの値が掛け合わされるため、入力層に近い層では勾配が極端に小さくなります。ReLUは入力が正の領域で微分が常に1になるので勾配が減衰しにくく、勾配消失問題を緩和する活性化関数として広く使われるようになりました。選択肢2はReLUの性質を逆に述べており、正の領域での微分は0ではなく1です。データ件数の増加や学習率の調整は、この問題の根本的な解決策ではありません。「シグモイドで勾配消失、ReLUで緩和」と押さえておきましょう。
根拠:誤差逆伝播法と勾配消失問題(シグモイド関数とReLUの導関数の性質)