本文へ移動

G検定(ジェネラリスト検定)

こうかいこうかほう

勾配降下法

Gradient Descent

損失を計算して、損失が減る向き(勾配の逆方向)へ重みとバイアスを少しずつ動かす。これを繰り返し、損失が最小に近くなるパラメータを探す反復的な最適化手法。

詳しい説明

どんな手法か

勾配降下法は、損失が最も小さくなる重みとバイアスを、手順の繰り返しで求める数学的な手法です。学習は、ゼロに近いランダムな重みとバイアスから始まり、次の4つを繰り返します。

1. 現在の重みとバイアスで損失を計算する
2. 損失を減らすには、重みとバイアスをどちらへ動かせばよいかを決める

3. その方向へ、重みとバイアスを少しだけ動かす

4. 1に戻り、損失がそれ以上下がらなくなるまで繰り返す

燃費データで1回の更新を追う

車の重量(1000ポンド単位)を特徴量、燃費(マイル毎ガロン)をラベルとする7件のデータを使います(例: 重量3.5で燃費18、重量2.37で燃費24)。損失には平均二乗誤差(MSE)を使います。

重み0・バイアス0から始めると、予測はすべて0になります。損失は (18^2 + 15^2 + 18^2 + 16^2 + 15^2 + 14^2 + 24^2) / 7 = 303.71 です。

次に、重みとバイアスのそれぞれについて、損失関数の接線の傾き(勾配)を求めます。重みの傾きは -119.7、バイアスの傾きは -34.3 です。この傾きの逆方向へ、傾きに小さな量0.01を掛けた分だけ動かします。

  • 新しい重み = 0 - 0.01 × (-119.7) = 1.2
  • 新しいバイアス = 0 - 0.01 × (-34.3) = 0.34

繰り返すと損失が下がる

新しい値で損失を計算し直し、同じ更新を繰り返します。6回の反復での推移は次のとおりです。

反復重みバイアス損失
100303.71
21.200.34170.84
32.050.59103.17
42.660.7868.70
53.090.9151.13
63.401.0142.17

重みとバイアスを更新するたびに、損失が下がっています。

収束と損失曲線

実際の学習では、モデルが収束するまで続けます。収束とは、反復を増やしても損失がそれ以上下がらない状態です。このとき、損失をほぼ最小にする重みとバイアスが見つかっています。収束した後も学習を続けると、損失は小さく揺れ動きます。また、損失を最小にする厳密な値そのものが見つかることはまずなく、それにごく近い値が得られます。

収束したかどうかは、損失曲線で確かめます。損失は最初の数回の反復で大きく下がり、その後はゆるやかに下がって、やがて平らになります。

線形モデルでは大域最適解に着く

線形モデルの損失関数は、常に凸な面になります。このため、線形回帰モデルが収束したときの重みとバイアスは、損失が最も低い点、つまり大域最適解(global minimum)です。更新中の点をグラフに描くと、坂を転がるボールのように下っていき、下り坂がなくなった地点で止まります。

なお、損失が0になるのは、モデルが全データ点にぴったり合っている状態です。これは通常、過学習の兆候です。

G検定では、シラバス2024のキーワードに含まれます。

試験で問われること

G検定

  • 勾配降下法は、現在の重みとバイアスで損失を計算し、損失が減る方向へ少しずつ動かす。この手順を損失がそれ以上下がらなくなるまで繰り返す、反復的な最適化手法である。
  • 更新は、新しい値 = 古い値 - 小さな量 × 傾き の形で行い、傾き(勾配)の逆方向へ動かす。燃費データの例では、重み0から0.01×(-119.7)を引いて新しい重みが1.2になる。
  • 反復を重ねると損失は下がり、燃費データの例では303.71、170.84、103.17、68.70、51.13、42.17と推移する。損失曲線は初めの数回で急に下がり、その後ゆるやかになって平らになる。
  • 収束とは、反復を増やしても損失が下がらない状態を指す。収束後も学習を続けると損失は小さく揺れる。得られるのは損失を最小にする厳密な値ではなく、それにごく近い値であるのがふつうである。
  • 線形モデルの損失関数は凸な面になるため、線形回帰モデルが収束すれば大域最適解に到達している。一方で、損失が0になるのは全データ点に完全に合った状態で、通常は過学習の兆候である。

最終更新日: 2026/09/23