二次形式 わかりやすく
直線は一次でした。今度は一段階上がって、平面の上へ曲がって立ち上がる高さを見ます。q(x) = xᵀAx で、対称行列 A = [a, b; b, c] をほどくと q = a·x² + 2b·xy + c·y² です。この表面を一定の高さで切る等高線を見ると、楕円か双曲線が出ます。その形を決めるのは、すべてその行列の固有値と固有ベクトルです。固有ベクトルは器の主軸を指し、固有値は各軸がどれほど急に曲がるかを決めます。二つの固有値がどちらも正なら底が一つの器で、符号が食い違うと鞍です。どんな滑らかな関数でも、その二階導関数であるヘッセ行列がまさに二次形式なので、この一つが二階導関数判定と主成分を一行で貫く PCA。 器の符号が最小と最大と鞍を分けます。
スライダーで対称行列の三つの値 a, b, c を決めます。画面は高さ q = a·x² + 2b·xy + c·y² を等高線で描きます。二つの固有値がどちらも正なら等高線は閉じた楕円になり、真ん中へ下りる青い器が見えます。どちらも負なら同じ楕円ですが、真ん中が最も高い赤いドームです。一方が正、一方が負なら等高線は開いた双曲線になり、一方向は上りもう一方向は下りの金色の鞍です。一つの固有値がほとんど無いと緑の樋になります。b を大きくすると等高線が斜めに傾きます。同じ q² 式が a, b, c の三つの数だけ変えても、器とドームと鞍のあいだを行き来します。 色は符号をそのまま追います。
今度は等高線をちょうど一本だけ見ます。高さ q = 1 で切ったレベルセット、つまり xᵀAx = 1 です。行列を正定値の近くに置くと、この曲線はきれいな楕円です。ところがその楕円は適当に寝ているのではなく、二つの軸がちょうど固有ベクトルに沿って置かれます。そして各半軸の長さは 1/√λ です。固有値が大きいとその方向へ急に曲がって楕円は短く、固有値が小さいと緩やかで楕円は長いです。スライダーで行列を変えると、主軸である固有ベクトルと固有値がいっしょに更新されます。半軸が 1/√λ のこの楕円は、主成分の共分散楕円と一つの系統です。 長さと方向が一つの行列からいっしょに出てきます。
ここで二つの固有値を直接 0 をまたいで押します。スライダー λ1 と λ2 を動かすと、ウィジェットがすぐ判定を出します。第一の数は緑、第二の数は橙です。どちらも正なら正定値、緑に塗った器で真ん中が唯一の最小です。どちらも負なら負定値、赤いドームで真ん中が最大です。符号が食い違うと不定値、金色の鞍です。一方がちょうど 0 なら半定値、一方向には曲がりもう一方向は平らな樋です。二つの符号がすべてを決めるのが核心です。 判定の文字もその符号の色を追います。
なぜ b·xy の交差項が厄介か、そしてどう消えるかを見ます。二つの固有値 λ1, λ2 はそのままに角度だけ回すと A = R Λ Rᵀ が作られます。角が 0 でなければ交差項が生きていて楕円が斜めに寝ます。スライダーで角を回して楕円を回転させると、主軸が x, y 軸とぴったり合う瞬間に交差項が 0 へ落ちます。その座標では q = λ1·y1² + λ2·y2² ときれいにほどける、交差項のない形が出ます。これが対角化です。A = Q Λ Qᵀ で直交行列によって座標を回すと混ざりが消え、二つの軸が別々に働く純粋な和になります。下にいまの座標の q の式が出ます。 角を合わせることが、交差項を消す全部です。
最後に、これがなぜ最適化の心臓かを見ます。どんな滑らかな関数も一点の近くでは、その二階導関数を集めたヘッセ行列という対称行列で曲がります。ヘッセ行列がまさに二次形式です。だから傾きが 0 になった臨界点で、ヘッセ行列が正定値ならその点は器の底である局所最小、負定値ならドームの頂上である局所最大、不定値なら鞍点です。これが二階導関数判定です。スライダーでヘッセ行列を変えると等高線の地形と判定がいっしょに変わります。勾配降下が正定値の器へはうまく転がり込み、鞍点では迷う理由がこれです。一点での曲率が正か負か食い違うかが答えを決めます。 曲率の符号が、そのままその点の名前です。