勾配流の可視化

Gradient Flow Visualization

2変数関数 $f(x,y)$ の勾配場を可視化するインタラクティブデモ。 画面をクリックして粒子を配置すると、勾配の逆方向(最も急な下り方向)に沿って流れる。 勾配降下法の軌跡を直感的に観察できる。

マウスを重ねると
座標と勾配を表示

勾配流とは

勾配 vs 勾配流

勾配 $\nabla f$ は関数値が最も急に増加する方向(登り方向)を指すベクトルである。 一方、勾配流 (gradient flow) はそので、$-\nabla f$ の方向(下り方向)に沿って流れる。 マイナス符号が付く点に注意。物理的にはポテンシャルエネルギーが減少する方向に物体が転がるイメージであり、 最適化の分野では勾配降下法 (gradient descent) の連続版にあたる。

勾配流の ODE

勾配流は次の常微分方程式に従う:

$$\frac{d\mathbf{x}}{dt} = -\nabla f(\mathbf{x})$$

粒子は常に関数値が最も急に減少する方向に進む。 極小値 $\nabla f = \mathbf{0}$ に到達すると停止する。

数値微分による勾配計算

このデモでは中心差分で勾配を近似している:

$$\begin{aligned} \frac{\partial f}{\partial x} &\approx \frac{f(x+h, y) - f(x-h, y)}{2h} \\[6pt] \frac{\partial f}{\partial y} &\approx \frac{f(x, y+h) - f(x, y-h)}{2h} \end{aligned}$$

観察のポイント

  • 吸引域 (Basin of Attraction) — 複数の極小値がある関数では、初期位置によって異なる極小値に収束する。 格子点から伸びる軌跡がどの谷に吸い込まれるか、その境界の構造に注目。
  • 鞍点 (Saddle Point) — 鞍点の関数では、勾配がゼロでも極小ではない不安定な平衡点が現れる。 粒子は鞍点近傍で一時停滞した後、急速に発散する。
  • 細長い谷 (Narrow Valley) — Rosenbrock 関数では、谷の外側から急勾配で谷底へ落ちた後、 谷底では勾配が極めて小さいため軌跡が密集して停滞する。