seegongsik
工業数学 わかりやすく

対角化 わかりやすく

A=PDP⁻¹で固有基底で見れば変換はただの伸ばし、対称行列は直交固有ベクトルで対角化される

行列はふつう格子をねじり矢印を回すので、頭の中で描きにくいです。ところが固有ベクトル、つまり変換を受けても向きが変わらず長さだけ変わるその方向を新しい座標軸にすると、その座標で行列は急に単純になります。回転もねじれも消え、二つの軸をそれぞれ固有値の分だけ伸ばす対角行列 D だけが残ります。これが対角化 A = P D P⁻¹ で、ここで P は固有ベクトルを列に立てた行列です。こう分けておけばべき乗はほとんどただになり、対称行列ではその軸がぴったり直角になります。この一つの事実が PageRank, SVD, PCA を一行で貫きます。

同じ変換を二つの視点で行き来できます。標準の視点では格子がゆがみ、固有ベクトルでないふつうの青い矢印は長さだけでなく向きまで曲がります。頭で追うのが大変です。固有基底の視点に切り替えると、二つの固有ベクトルを新しい座標軸に敷きます。第一の軸は緑、第二の軸は橙です。すると変換は、第一の軸を λ1 倍、第二の軸を λ2 倍伸ばすだけの対角変換 D = diag(λ1, λ2) に見えます。回転は 0 です。正しい基底を選べば、複雑に見えた行列がただ二度の伸縮に片付くことが、対角化の出発点です。

A = P D P⁻¹ が一つのベクトルにどう働くかを段階で踏みます。P は固有ベクトル v1, v2 を列に立てた行列です。0 段階は青い出発ベクトルです。1 段階の P⁻¹ はそのベクトルを固有座標へ移し、v1 方向に何マスか足す v2 方向に何マスかとして読ませ、矢印は金色になります。2 段階の D はその固有座標で第一成分を λ1 倍、第二を λ2 倍伸ばし、矢印は緑です。伸ばすだけなので最も単純な段階です。3 段階の P はその結果を元の座標へ戻し、矢印は赤です。P⁻¹ で入って D で伸ばし P で出るこの三つの動作が、A 一回とちょうど同じです。

対角化の本当の得はべき乗です。Aⁿ = P Dⁿ P⁻¹ で、真ん中の Dⁿ は各固有値を n 乗しただけの対角行列です。行列を n 回掛ける手間が消えます。スライダーでべき k を大きくすると、青いベクトルが毎回各固有方向へ伸び、絶対値の大きい固有値の側がだんだん圧倒します。だから k が大きくなるとベクトルは最大固有値の方向、金色の点線で引いた支配的固有ベクトルへだんだん揃います。これがべき乗法で、PageRank や繰り返す過程が時とともに一つの方向へ落ち着く原理です。

行列が対称なら、つまり b の位置と c の位置が同じなら、特別なことが起きます。スライダーで非対称項を動かすと、対称から遠いとき二つの固有ベクトル軸が斜めの角度に傾いています。第一の軸は緑、第二の軸は橙です。対称に合わせた瞬間、二つの固有ベクトルがちょうど 90 度、つまり直角で交わり、真ん中の点が金色になります。これがスペクトル定理です。対称行列はいつも正規直交の固有ベクトルを持つので A = Q Λ Qᵀ に分かれ、ここで Q は回転である直交行列、Λ は固有値の対角行列です。P⁻¹ の場所にただ転置を使えます。この直交対角化が SVD と PCA の幾何の心臓です。

正直な但し書きが一つあります。すべての行列が対角化されるわけではありません。トグルの一方は互いに違う二つの固有方向を持つまともな行列で、固有ベクトルが平面をよく張り対角化されます。緑の矢印と橙の矢印が別の方向を指します。もう一方はせん断 (shear) 行列 [[1,1],[0,1]] です。固有値が 1 一つに重なるのに、固有ベクトルは横軸の一方向しか出てきません。矢印二つが同じ線に重なるのが見えます。こうして独立な固有ベクトルが足りない行列を結損 (defective) と呼び、新しい座標軸を二本立てるだけの方向がないので対角化は不可能です。対角化の条件は次元の数だけの独立な固有ベクトルです。

実際に使う対角化 A = P D P⁻¹ は固有基底へ座標を変え、変換を対角 D、つまり固有値で伸ばすだけに残す分解です。P は固有ベクトルを列に立てた行列で、P⁻¹ で固有座標へ入り D で伸ばし P で出ます。最大の得はべき乗 Aⁿ = P Dⁿ P⁻¹ で、最大の固有値が支配しべき乗法のエンジンになります。行列が対称なら固有ベクトルが正規直交なので A = Q Λ Qᵀ(Q 直交)で直交対角化され、これが分解と主成分の幾何の核心です。ただし独立な固有ベクトルが次元の数に届かない結損行列は対角化されません。固有基底という正しい視点の一つが、べき乗と圧縮と次元削減を同じ文に束ねます。
← 工業数学 わかりやすく
このページがお役に立ったなら支援する