二次形式は固有値が決める器だ
直線は一次でした。今度は一段上がって、平面の上へ反り上がる高さを見ます。q(x) = xᵀAx で、対称行列 A = [a, b; b, c] を書き下すと q = a·x² + 2b·xy + c·y² です。この曲面を一定の高さで切ると(レベルセット)、楕円か双曲線が出てきます。驚くのは、その形を決めるのがすべて A の固有値と固有ベクトルだということです。固有ベクトルは器の主軸を指し、固有値は各軸がどれだけ急に反るかを決めます。二つの固有値がともに正なら底が一つの器、符号が食い違えば鞍です。そしてどんな滑らかな関数も、その二階導関数(ヘッセ行列)がまさに二次形式なので、この一つが二階導関数判定・PCA・凸最適化を一本に貫きます。
スライダーで対称行列 A の三つの値 a, b, c を決めてください。画面は高さ q = a·x² + 2b·xy + c·y² を等高線で描きます。二つの固有値がともに正なら等高線は閉じた楕円になり、中心へ向かって沈む器が見えます(青み)。ともに負なら同じ楕円ですが中心が最も高い、ドームです(赤み)。一方が正で一方が負なら等高線は双曲線に開き、一方向へは上り、別方向へは下りの鞍になります。b を大きくすると等高線が斜めに傾きます。同じ q が一つの式のままでも、a, b, c の三つを変えるだけで器・ドーム・鞍の間を行き来します。
今度は等高線を一つだけ見ます。高さ q = 1 で切ったレベルセット、すなわち xᵀAx = 1 です。A を正定値の近くに置くと、この曲線はきれいな楕円です。しかもその楕円はでたらめに横たわっているのではなく、二つの軸がちょうど A の固有ベクトルに沿って並びます。そして各半軸の長さは 1/√λ です。固有値が大きいとその方向に急に反るので楕円はそこで短く、固有値が小さいとゆるやかなので楕円は長くなります。スライダーで A を変えると、固有ベクトル(主軸)と固有値が一緒に更新されます。この楕円こそ PCA の共分散楕円であり、SVD で見たあの楕円と血を分けた仲です。あちらは半軸が √λ、こちらは 1/√λ という違いだけです。
今度は二つの固有値を自分でゼロをまたいで動かしてみてください。スライダー λ1 と λ2 を動かすと、ウィジェットがすぐに判定を下します。ともに正なら正定値、どこから見ても上に反る器なので中心が唯一の最小です。ともに負なら負定値、ひっくり返ったドームなので中心が最大です。符号が食い違えば不定値、すなわち鞍です。一方がちょうどゼロなら半定値、一方向へは反り別方向へは平らな谷(飼い葉桶)です。正は緑、負は赤で塗られ、小さな形のグリフが器・ドーム・鞍・谷のどれかを示します。二つの符号がすべてを決めるというのが要点です。
なぜ b·xy の交差項が厄介か、そしてどう消えるかを見ます。二つの固有値 λ1, λ2 はそのままにして角度 θ だけ回すと A = R Λ Rᵀ ができます。θ がゼロでないと交差項 b が生きていて、楕円が斜めに横たわります。スライダーで楕円を回してみてください。主軸が x, y 軸とちょうど一致した瞬間、b が 0 に落ち、その座標で q = λ1·y1² + λ2·y2² にきれいに解けます。交差項のない形式です。これがまさに対角化です。A = Q Λ Qᵀ で Q によって座標を回すと混ざりが消え、二つの軸が別々に働く純粋な和が残ります。下に今の座標の q 式が出ます。
最後に、これら全部がなぜ最適化の心臓なのかを見ます。どんな滑らかな関数も、一点の近くでは、その二階導関数を集めたヘッセ行列という対称行列にしたがって反ります。ヘッセ行列は二次形式です。だから勾配がゼロになる臨界点で、ヘッセ行列が正定値ならその点は局所最小(器の底)、負定値なら局所最大(ドームの頂)、不定値なら鞍点です。これがまさに二階導関数判定です。スライダーでヘッセ行列を変えると、等高線の地形と判定が一緒に変わります。勾配降下が正定値の器へは気持ちよく転がり込み、鞍点ではさまよう理由がまさにこれです。一点での曲率が正・負・食い違いのどれかが、答えを決めます。