損失関数L(w)=(w−3)²を勾配降下法で最小化する。現在の重みはw=7、学習率は0.1である。1回更新した後のwの値として、最も適切なものを1つ選べ。
正解と解説を見る
解説
正解 B
この問題の論点:勾配降下法の1回の更新
ポイント
勾配降下法では、重みを勾配と逆向きに、学習率×勾配の分だけ動かします。更新式はw ← w − η×勾配(ηは学習率)です。
選択肢ごとの解説
- A
不適切
微分で係数の2を掛け忘れ、勾配を
7 − 3 = 4として計算した値です(7 − 0.1×4 = 6.6)。(w − 3)²をwで微分すると2(w − 3)となり、w=7では8になります。 - B
適切 正解
勾配は
2(w − 3)で、w=7では8です。勾配と逆向きに、学習率を掛けた分だけ動かすので7 − 0.1×8 = 6.2となり、最小値の3に近づきます。 - C
不適切
勾配の向きに進めた値です(
7 + 0.1×8 = 7.8)。勾配は損失が増える向きを指すため、勾配降下法では符号を反転させ、逆向きに動かします。 - D
不適切
損失の値
L(7) = 16を勾配の代わりに使った値です(7 − 0.1×16 = 5.4)。更新に使うのは損失の大きさではなく、損失をwで微分した勾配です。
補足
同じ関数で学習率を0.5にすると、7 − 0.5×8 = 3となり、1回で最小値に届きます。学習率を1.0にすると7 − 1.0×8 = −1となり、最小値を飛び越えて反対側の同じ距離に移ります。次の更新では勾配が−8なので−1 − 1.0×(−8) = 7に戻り、往復を続けます。学習率がこれより大きいと、往復するたびに最小値から遠ざかり、発散します。
試験での狙われ方
更新式の符号や、学習率が更新幅にどう効くかを、簡単な関数で計算させる形が考えられます。
参考
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目16 最適化手法)
- Goodfellow, Bengio, Courville, Deep Learning (2016) (4.3 Gradient-Based Optimization)