4次関数 f(x) = a·x⁴ + b·x³ + c·x² + d·x + e の最小値を、勾配降下法(傾き=微分係数の情報を使って少しずつ移動する方法)で探すインタラクティブな教材です。 グラフ上の点を動かしながら、「なぜその方向に動くのか」「どれくらいの幅で動くのか」を数式と連動して確認できます。
ツールを開く →| タイプ1 / タイプ2 | 係数 a〜e をあらかじめ設定されたパターンに一括で切り替えます。タイプ1は極小値が1か所、タイプ2は2か所ある関数です。 |
|---|---|
| スライダー a〜e | f(x) = a·x⁴+b·x³+c·x²+d·x+e の各係数を自由に変更し、関数の形そのものを変えられます。 |
| 1ステップ実行 | 勾配降下法の更新式を1回だけ適用し、点を1回分だけ移動させます。 |
| 自動実行 / 停止 | 更新を連続的に繰り返します。Δx が十分小さくなるか、途中で「停止」を押すまで動き続けます。 |
| リセット | ステップ数と点の位置を初期状態(x=2.5)に戻します。 |
| 現在の状態パネル | ステップ数、現在の x・f(x)・f'(x)、直前の移動量 Δx を数値で表示します。 |
勾配降下法は、関数の最小値を「一気に計算」するのではなく、今いる場所の傾き(勾配)を手がかりに、坂を下る方向へ少しずつ進むことで探索する方法です。 ボールを斜面に置くと自然に低い方へ転がっていくイメージに近く、ディープラーニングを含む多くの機械学習モデルの学習に使われている基本的な考え方です。
ある点における f'(x)(f(x)の導関数の値)は、その点でグラフに引いた接線の傾きと一致します。
傾きが正(f'(x)>0)なら、グラフは右上がり=xを減らすと値が下がります。傾きが負(f'(x)<0)なら逆に、xを増やすと値が下がります。 このツールでは f(x) と f'(x) を上下に並べて表示しているので、「グラフの傾き」と「微分の値」が常に対応していることを見比べながら確認できます。
Δx(xの移動量)は常に傾きと逆方向を向くように符号が決まります(傾きが正なら左へ、負なら右へ動く=坂を下る方向)。 移動量の大きさは |f'(x)|÷50 を基本としつつ、最大でも 2 までに制限(キャッピング)されています。
タイプ2の関数は極小値(谷)が2か所あります。勾配降下法は今いる場所から見える一番近い谷にしか下りていけないため、出発点(赤い点の初期位置)によって、どちらの谷にたどり着くかが変わります。 赤い点を谷と谷の間のいろいろな位置にドラッグしてから「自動実行」を試すと、出発点ひとつで最終的に落ち着く場所(局所最適解)が変わることを体験できます。
「自動実行」を押してf'(x)のグラフ(青い点)を見ていると、点が0に近づくにつれて動きが小さくなっていく様子が分かります。これは、傾きが緩やかになるほど補正値(|f'(x)|÷50)も小さくなり、Δxが自然に小さくなっていくためです。最小値付近では動きがほとんど止まって見えるようになります。