ある物流会社が、配送遅延の発生を予測するため、隠れ層を12層重ねたネットワークを作った。隠れ層の活性化関数はすべてシグモイド関数である。学習を進めると、出力層に近い層の重みは更新されるのに、入力層に近い層の重みはほとんど変化しなかった。この状況への対処として、最も不適切なものを1つ選べ。
正解と解説を見る
解説
正解 D
この問題の論点:勾配消失問題への対処
ポイント
勾配消失問題の原因は、層をさかのぼるたびに勾配が縮むことです。活性化関数やネットワークの構造を変えて対処し、学習率を下げても解決しません。
選択肢ごとの解説
- A
適切
シグモイド関数の導関数は最大でも0.25で、層をさかのぼるたびに掛け合わされて勾配が小さくなります。ReLU関数は正の領域で導関数が1なので、層を通っても勾配が小さくなりにくくなります。
- B
適切
シグモイド関数は入力の絶対値が大きいと導関数がほぼ0になります。バッチ正規化で活性化関数に入る値の分布を整えると、こうした飽和が起きにくくなり、勾配が保たれやすくなります。
- C
適切
スキップ結合があると、勾配の一部は足し算の経路を通り、途中の層の導関数を掛けられずに入力層側へ届きます。ResNetで広く使われるようになり、100層を超えるネットワークの学習を可能にしました。
- D
不適切 正解
学習率は勾配に掛ける係数なので、小さくすると入力層側の更新はさらに小さくなります。勾配が層ごとに縮む原因には効きません。学習率を下げるのは、更新が大きすぎて学習が発散するときの対処です。
試験での狙われ方
勾配消失問題の対策として、ReLU関数、バッチ正規化、スキップ結合、重みの初期値の工夫などを選ばせる形が考えられます。
参考
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目12 活性化関数)
- Glorot, Bengio, Understanding the difficulty of training deep feedforward neural networks (2010)
- Ioffe, Szegedy, Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (2015)
- He, Zhang, Ren, Sun, Deep Residual Learning for Image Recognition (2015)