このツールについて

4次関数 f(x) = a·x⁴ + b·x³ + c·x² + d·x + e の最小値を、勾配降下法(傾き=微分係数の情報を使って少しずつ移動する方法)で探すインタラクティブな教材です。 グラフ上の点を動かしながら、「なぜその方向に動くのか」「どれくらいの幅で動くのか」を数式と連動して確認できます。

ツールを開く →

使い方

  1. 関数の形を選ぶ:「タイプ1(極小1か所)」「タイプ2(極小2か所)」ボタンで、あらかじめ用意された2種類の4次関数に切り替えられます。さらに下のスライダー(a〜e)で係数を自由に変更し、独自の関数を作ることもできます。
  2. スタート地点を選ぶ:上のグラフ(f(x))上の赤い点はドラッグして動かせます。動かすと、その場所を新しい出発点として勾配降下法を開始できます。
  3. 1ステップずつ確認する:「1ステップ実行」ボタンを押すと、更新式に従って赤い点が1回だけ移動します。右側の「現在の状態」パネルで x、f(x)、f'(x)、Δx の値がどう変わったかを確認できます。
  4. 自動で収束させる:「自動実行」を押すと、点が最小値に向かって連続的に動き続けます(「停止」でいつでも止められます)。「リセット」を押すと x=2.5 の初期位置に戻ります。
  5. 下のグラフ(f'(x))も見る:青い点が現在の x における微分係数 f'(x) の値を示します。f'(x) が 0 に近づくほど、f(x) 側の点は坂の底(最小値)に近づいていることがわかります。

各コントロールの役割

タイプ1 / タイプ2係数 a〜e をあらかじめ設定されたパターンに一括で切り替えます。タイプ1は極小値が1か所、タイプ2は2か所ある関数です。
スライダー a〜ef(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) = a·x⁴ + b·x³ + c·x² + d·x + e
f'(x) = 4a·x³ + 3b·x² + 2c·x + d

傾きが正(f'(x)>0)なら、グラフは右上がり=xを減らすと値が下がります。傾きが負(f'(x)<0)なら逆に、xを増やすと値が下がります。 このツールでは f(x) と f'(x) を上下に並べて表示しているので、「グラフの傾き」と「微分の値」が常に対応していることを見比べながら確認できます。

③ 更新式の意味

符号 = f'(x) > 0 のとき +1、そうでなければ −1
補正値 = min( |f'(x)| ÷ 50 , 2 )
Δx = 符号 × 補正値
次の x = 現在の x − Δx

Δx(xの移動量)は常に傾きと逆方向を向くように符号が決まります(傾きが正なら左へ、負なら右へ動く=坂を下る方向)。 移動量の大きさは |f'(x)|÷50 を基本としつつ、最大でも 2 までに制限(キャッピング)されています。

なぜ移動量を制限するのか: 傾きが急な場所(グラフの端など)では f'(x) の絶対値がとても大きくなります。もし移動量に制限がないと、1回のステップで大きく動きすぎて最小値を通り過ぎ、かえって発散してしまうことがあります。上限を設けることで、急な場所でも安定して坂を下れるようにしています。

④ 極小値と初期位置の関係(タイプ2で確認)

タイプ2の関数は極小値(谷)が2か所あります。勾配降下法は今いる場所から見える一番近い谷にしか下りていけないため、出発点(赤い点の初期位置)によって、どちらの谷にたどり着くかが変わります。 赤い点を谷と谷の間のいろいろな位置にドラッグしてから「自動実行」を試すと、出発点ひとつで最終的に落ち着く場所(局所最適解)が変わることを体験できます。

⑤ 収束の様子

「自動実行」を押してf'(x)のグラフ(青い点)を見ていると、点が0に近づくにつれて動きが小さくなっていく様子が分かります。これは、傾きが緩やかになるほど補正値(|f'(x)|÷50)も小さくなり、Δxが自然に小さくなっていくためです。最小値付近では動きがほとんど止まって見えるようになります。