固有値を直観的に理解する(行列が手をつけない方向)

テーブルの上にゴムのシートを敷き、あらゆる向きに短い矢を100本描き込みます。そしてシートを、上下に伸びる量の2倍だけ横方向へ伸びるように引っ張ってください。矢を見ていましょう。シートが変形するにつれて、ほとんどすべての矢が水平方向へと振れていきます。しかし2本だけは、まったく動きません。もともと水平だった矢は水平のまま、長さが2倍になります。垂直だった矢は垂直のまま、長さも変わりません。
この2本の矢がこの引き伸ばしの固有ベクトルであり、2と1という数がその固有値です。この話題に出てくるものはすべて、行列式を使った数式も、固有多項式も、対角化も、行列が回転するときに顔を出す複素数も、見ただけでは分からない機械について、その特別な矢を見つけ出すための方法なのです。
行列を直観的に理解するをまだ読んでいなければ、この記事はその続編にあたります。あちらの記事では、行列を「移動を受け取って移動を返す機械」として描きました。こちらでは、その機械にたった1つの問いを投げかけます。あなたが手をつけない移動はどれですか、と。
行列は機械であり、ほとんどの矢は向きを変えられる
行列 はベクトル を受け取り、新しいベクトル を生み出します。ほとんどの入力に対して、出力は別の方向を指します。せん断は矢を傾け、回転はすべての矢を同じ角度だけ振り、ある方向に強い引き伸ばしは矢を強く引かれる側へと引きずっていきます。
行列を風洞だと思ってください。矢が入っていき、風が当たり、曲げられて出てきます。面白い問いは、ありふれた矢に何が起きるかではありません。風に曲げられない矢はあるのか、入ったときとまったく同じ向きのまま、ただ長く、あるいは短くなって出てくる矢はあるのか、ということです。
向きを変えることを拒む矢
の固有ベクトルとは、機械が自分の直線上に留めておくゼロでないベクトル のことです:
ギリシャ文字のラムダ が固有値、すなわち矢が拡大された倍率です。この式は、この特別な矢に作用する機械が、ただの数の掛け算と見分けがつかないと言っています。固有ベクトルに沿っているあいだ、行列は行列であることをやめ、スカラーになるのです。
固有値は、たった1つの数に多くの情報を担っています:
- なら、機械はその方向を伸ばします。
- なら、その方向を縮めます。
- なら、その方向にはまったく手をつけません。
- なら、矢を反対向きにひっくり返してから拡大します。
- なら、その方向を潰してなくしてしまいます。機械はその直線に沿って空間を平らにするのです。
固有ベクトルが何でないかにも注意してください。それは1本の矢ではなく、1つの方向です。 が固有ベクトルなら もまた、同じ固有値を持つ固有ベクトルです。そしてゼロベクトルは定義から除かれています。どんな行列もゼロをゼロに送るので、それを認めればあらゆる数が固有値になってしまい、この考え全体が使い物にならなくなるからです。
数式はどこから来るのか
教科書は を、まるで空から降ってきたかのように差し出します。しかしこれは、いま述べた一文から出てきます。
から出発しましょう。右辺は数とベクトルの積です。これを等号の向こう側へ移すには行列の形にする必要があり、 は と同じものです。ここで は何もしない単位行列です。では引き算します:
これを、新しい機械 についての主張として読んでください。この機械はゼロでない矢 を受け取り、ゼロベクトルを返します。本物の矢を1点へ送ってしまう機械は、空間の少なくとも1つの方向を平らに潰しています。行列の記事で見たように、行列式は機械を通り抜けて生き残る面積を測るものなので、潰す機械の行列式はゼロです:
導出はこれで全部です。固有値とは機械 を壊してしまう の値であり、固有ベクトルとは、それが壊れる方向です。行列式を展開すると の多項式が得られ、これを固有多項式と呼びます。その根が固有値です。 行列なら2次式、 行列なら 次式であり、だからこそ 行列は多くとも 個の固有値しか持たないのです。
ゆっくり解く実例
次の行列を取り上げましょう
対角成分に沿って を引き、行列式を取ります:
ゼロと置いて因数分解すると となるので、固有値は と です。
次に、それぞれの方向を求めます。 については を解きます:
どちらの行も と言っているので、固有ベクトルは の定数倍です。元の機械で確かめてみましょう。 です。対角方向の矢は、同じ向きを指したまま3倍の長さになって出てきます。
については、行が と言うので固有ベクトルは の定数倍であり、実際 となります。反対角方向の矢は手つかずです。
これでこの行列を一文で説明できます。4つの成分を眺めていたのでは、決してできなかったことです。この機械は対角方向に空間を3倍に伸ばし、反対角方向にはまったく手をつけません。平面上のそれ以外の矢はどれも対角方向へ引きずられていきます。対角方向の成分が、もう一方より3倍速く成長するからです。
固有値は機械について何を教えてくれるか
固有多項式から2つの事実が転がり出てきます。どちらも覚えておく価値があります。
固有値の積は行列式です。先ほどの例では であり、 の行列式は です。これは筋が通っています。行列式は機械全体の面積の拡大率であり、機械がある方向に3倍、別の方向に1倍伸ばすなら、面積は3倍になるからです。
固有値の和はトレース、すなわち対角成分の和です。ここでは となります。どちらの事実も、計算が無事だったかを素早く確かめる手段になります。
より広く見れば、固有値は機械のスペクトルです。大きな固有値は、機械を何度も適用したあとに支配的になる方向を指し示します。固有値 と を持つ機械を10回適用すると、第1の固有ベクトルは 倍に伸び、第2の固有ベクトルは 倍のままです。第1の方向をほんのわずかでも含む出発点の矢は、最後にはほぼ完全にその方向と揃ってしまいます。繰り返される過程が固有ベクトルに落ち着くのは、これが理由です。それは勝つ方向なのです。
複素固有値は回転を意味する
平面を90度回転させてみましょう。すべての矢が向きを変えます。手をつけられずに残る方向は1つもないので、固有ベクトルは存在しないはずであり、数式もそれに同意します。回転行列は
であり、その固有多項式は で、実数解を持ちません。固有値は と です。
これは手法の失敗ではありません。手法が真実を伝えているのです。この機械は回転しており、回転には実平面上に不動の方向がない、と。複素固有値はひねりの印です。角 による一般の回転は、固有値 と を持ちます。オイラーの等式に出てきた、あの回転する数と同じものです。そして のような固有値を持つ行列は、回転と縮小を同時に行いながら内側へ螺旋を描きます。複素数がまだ手品のように感じられるなら、虚数を直観的に理解するが を4分の1回転として描いています。ここで果たしている役割も、まさにそれです。
対角化:座席を変えれば、機械は掛け算になる
行列が、本当に異なる方向を指す 個の固有ベクトルを持つとしましょう。すると、その固有ベクトルたちを新しい座標軸として使えます。あらゆるベクトルを「各固有ベクトルをどれだけ含んでいるか」で記述すれば、機械は取るに足らないものになります。各座標に、対応する固有値を掛けるだけになるのです。
書き下してみましょう。 を固有ベクトルを列に並べた行列、 を固有値の対角行列とすれば
となります。右から左へ読んでください。 がベクトルを固有ベクトル座標へ翻訳し、 が各座標を拡大し、 が元へ翻訳し戻します。機械そのものは変わっていません。あなたは、機械が単なる数の並びに見える座席を見つけたのです。
見返りはべき乗にあります。機械を100回適用するとは
ということであり、 は各固有値を100乗しただけのものです。100回の行列の掛け算を要するはずだった計算が、ひと握りのスカラーの掛け算になります。行列についての長期的な問いは、50世代後に個体群がどうなるか、ランダムウォークが何に収束するか、振動がどう減衰するか、そのどれもが についての問いなのです。
なぜ何もかもが固有ベクトルを探すのか
固有ベクトルを「繰り返しのもとで勝つ方向」として見られるようになると、応用は寄せ集めの一覧ではなく、1つの考えに見え始めます。
- PageRank。 Google の当初のランキングは、どのページがどのページへリンクしているかを記述する巨大な行列の、固有値1の固有ベクトルです。リンクをもう1回たどっても動かない、注目の分布なのです。
- 微分方程式。 系 は、各固有ベクトルに沿って から組み立てられた解を持ちます。正の固有値は成長し、負の固有値は減衰し、複素固有値は振動します。固有値は系の速度なのです。ラプラス変換も同じ指数関数的な振る舞い探しを、行列式ではなく積分で行っているにすぎません。
- 振動。 橋も、ギターの弦も、分子も固有振動数を持ち、それは剛性行列の固有値です。固有ベクトルは、それが振動するときの形です。
- データ。 主成分分析は共分散行列の固有ベクトルを見つけます。最大の固有値を持つ固有ベクトルは、データが最も大きくばらつく方向であり、要約するときに最初に選ぶ軸です。
- 量子力学。 観測可能な量は演算子の固有値です。測定は固有値のうちの1つを返し、固有ベクトルは系が落ち着く状態です。
どの場合も手法は同じです。機械が手をつけない方向を見つければ、複雑な振る舞いはその方向に沿った掛け算に変わります。
つまずきはどこから来るのか
この話題での誤りは決まっており、そのほとんどは描像を見失うことから生まれます。
ゼロベクトルを受け入れてしまう。 を解くと、いつでも が許されます。これは固有ベクトルではありません。解がゼロしかないなら、選んだ が間違っています。
1つの行だけで答えが出ると思ってしまう。 先ほどの実例では、 の2つの行がどちらも同じこと、 を言っていました。この重複は誤りではありません。それこそが平らに潰れているということです。もし2つの行が独立な方程式を与え、ゼロ解しか出てこないなら、間違っているのは固有値のほうです。
固有ベクトルはいつでも足りると思い込む。 行が と のせん断行列は、重複した固有値 をただ1つ持ちますが、固有ベクトルの方向は1つしかありません。この行列は対角化できないのです。固有値が重複しているところは、思い込まずに確かめる場所です。
2つの言葉を取り違える。 固有値は数です。固有ベクトルは方向です。一方を問う問題は、たいてい途中でもう一方を必要とします。そして種類の違うものを答えて返すことが、点を落とす最もありふれた道です。
固有多項式での符号の取りこぼし。 行列なら、多項式はいつでも です。この形で書き、根の積が行列式になることを確かめれば、取りこぼしのほとんどは捕まえられます。
頼まれてもいないのに正規化する。 固有ベクトルは、その直線上のゼロでないベクトルなら何でも構いません。長さ1に揃えることは、求められる場合もあれば、しなくてよい場合も多くあります。問題がそう指示したときだけ行い、その途中で方向を失わないようにしてください。
Math Zen が果たす役割
ある方向を伸ばし、別の方向を回すという機械の描像は、1時間じっと眺める価値があります。一方、対角成分に沿って を引き、行列式を展開し、因数分解し、代入し直して方向を求めるという手作業は、30問解く価値があります。上に挙げた間違いはどれも、繰り返しによってしか壊せない癖だからです。
Math Zen の行列トピックは、新しい固有値の問題を次々に生成し、あなたの解答と照らし合わせて答えを確認します。 の固有多項式から固有ベクトル、トレースと行列式による検算まで、そしてそれらが土台にしている行列式や逆行列も一緒に扱います。各問題の横に添えられた解説は、代数だけでなく平らに潰れる描像を示すので、数式はそれが成り立つ理由と結びついたままになります。
核心のまとめ
行列はほとんどの矢の向きを変えます。固有ベクトルとは、行列が向きを変えない矢であり、固有値とは、向きを変える代わりにその矢をどれだけ伸ばすかという数です。数式 は、 が固有ベクトルに沿って空間を平らに潰さなければならず、潰す機械の行列式はゼロである、という観察にすぎません。複素固有値は機械が回転していることを意味し、対角化とは機械が単なる掛け算に見える座席から機械を記述することであり、繰り返される過程は最大の固有値を持つ固有ベクトルに沿って落ち着きます。検索エンジンも、橋も、個体群も、すべてが同じ計算に行き着くのは、そのためです。
機械が手をつけない方向を見つければ、機械は不思議なものであることをやめます。
よくある質問
- 固有ベクトルとは、簡単に言うと何ですか?
- 行列の固有ベクトルとは、その行列が向きを変えない方向のことです。その向きを指す矢を行列に与えると、同じ向きを指したまま、長くなったり短くなったり、あるいは反転したりした矢が返ってきます。そのとき掛かった倍率が固有値です。それ以外のほとんどすべての矢は、まったく別の向きを指して出てきます。
- なぜ固有値を求めるのに det(A - λI) = 0 を解くのですか?
- Av = λv であれば、ゼロでない v に対して (A - λI)v がゼロベクトルになります。ゼロでない矢をゼロに送る行列は空間を平らに潰しており、潰す機械の行列式はゼロです。したがって固有値とは、det(A - λI) を消してしまう λ の値そのものなのです。
- 実固有値を持たない行列はありますか?
- あります。90度の回転はすべての矢の向きを変えるので、手をつけられない実方向は1つもなく、固有方程式は実数解を持ちません。その固有値は複素数の i と -i です。複素固有値は、伸縮だけでなく回転もする行列の印です。
- 固有値と固有ベクトルの違いは何ですか?
- 固有ベクトルは方向であり、行列が自分の直線上に留めておく矢です。固有値は数であり、行列がその方向に沿って矢を伸ばしたり縮めたり反転させたりする倍率です。それぞれの固有ベクトルには1つの固有値が付きますが、1つの固有値を複数の固有ベクトルが共有することもあります。
- 固有値は実際に何の役に立つのですか?
- 繰り返される過程が最終的にどこへ落ち着くかを教えてくれます。Google の PageRank はリンク行列の固有値1の固有ベクトルであり、橋の固有振動数は剛性行列の固有値であり、微分方程式系の成長率や減衰率も固有値であり、主成分分析はデータの共分散行列の固有ベクトルを選び出します。


