【対称行列】なぜ「斜めに折り返す」と計算が楽になる?固有値の性質と「直交」の魔法
こんにちは。ゆうせいです。
線形代数の勉強をしていると、いろいろな種類の行列が出てきて頭が痛くなりますよね。「逆行列」「転置行列」「対角行列」……。
でも、その中でも「もっとも性格が良くて、扱いやすい優等生」がいるのをご存知でしょうか。
それが今回紹介する 対称行列 です。
データ分析や機械学習(特に主成分分析など)の世界では、この対称行列が主役級の活躍をします。なぜなら、対称行列には計算を劇的にシンプルにする「魔法のような性質」が隠されているからです。
今日は、その計算方法と、なぜそれが嬉しいのか(意義)について、数式アレルギーの方でもわかるようにじっくり解説していきます。
対称行列ってどんな形?
まずは見た目の確認です。
対称行列とは、その名の通り「対角線を軸にして、数字が対称(鏡写し)になっている行列」のことです。
具体的には、右上の数字と左下の数字が同じになっている状態です。
数式で書くと (転置しても変わらない)という性質を持っています。
例を見てみましょう。
左上が「2」、右下が「2」。そして右上の「1」と左下の「1」が同じですね。
これが対称行列です。このシンプルな形が、驚くべき奇跡を起こします。
実際に固有値を計算してみよう
では、この行列 の「固有値」と「固有ベクトル」を計算してみます。
ここでの計算結果が、後の解説の伏線になるので、少しだけお付き合いください。
手順1:固有値方程式を解く
固有値を求めるお決まりの式、 を解きます。
斜めに掛けて引きます。
展開して整理すると…
よって、固有値は と
です。
綺麗な整数が出ましたね。
手順2:固有ベクトルを求める
それぞれの固有値に対応するベクトル(矢印の向き)を求めます。
① 固有値 のとき
元の行列の式に代入して連立方程式を解くと、 という関係が出てきます。
もっともシンプルな形として、ベクトル が求まります。
② 固有値 のとき
同様に計算すると、 という関係が出てきます。
ベクトル が求まります。
ここがすごい!対称行列の2つの意義
さて、計算が終わりました。
ここで注目してほしいポイントが2つあります。これが対称行列の「意義」そのものです。
意義1:固有値が必ず「実数」になる
普通の行列だと、固有値を計算したときに「虚数( )」が出てきて、計算が複雑怪奇になることがあります。現実のデータ分析で虚数が出てくると、解釈に困りますよね。
しかし、対称行列なら絶対に実数になる ことが数学的に証明されています。
「計算結果が必ず現実世界に存在する数字になる」という安心感。これがエンジニアにとってどれだけありがたいことか!
意義2:固有ベクトル同士が「直交」する
ここが一番のハイライトです。
先ほど求めた2つのベクトルを見てみましょう。
(右上に向かう矢印)
(右下に向かう矢印)
この2つの矢印のなす角を考えてみてください。
傾きが「1」と「-1」ですから、ちょうど 90度(直角) になっていますよね。
ベクトルの内積を計算しても となり、直交していることがわかります。
これが対称行列の最大の魔法です。
「対称行列の異なる固有値に対応する固有ベクトルは、必ず直交する」
直交すると何が嬉しいの?
「90度だから何なの?」と思うかもしれません。
直交するということは、「お互いが完全に独立していて、干渉しない」 ということを意味します。
例えば、データを分析するときに「軸」を取り直す(座標変換する)操作をよく行います。
このとき、新しい軸同士が斜めに歪んでいると扱いづらいですが、綺麗な十字(直交)の形をしていれば、非常にすっきりとした基準を作ることができます。
この性質を利用している代表例が 主成分分析(PCA) です。
データの「分散共分散行列」というものを作るのですが、これは必ず「対称行列」になります。
だからこそ、PCAではデータを「互いに無関係な(直交する)特徴」に綺麗に分解できるのです。
つまり、対称行列の固有値を計算することは、「ごちゃごちゃしたデータを、整理整頓された直角の座標軸で見直すための鍵を探すこと」 と言えるのです。
今日の練習問題
以下の行列 は、右上の「2」と左下の「2」が同じなので、対称行列です。
この行列について、以下の3つのステップで計算を行ってください。
問題1
固有値方程式 を解いて、2つの 固有値 を求めてください。
(計算結果がちゃんと「実数」になるか確認しましょう)
問題2
それぞれの固有値に対応する 固有ベクトル を求めてください。
問題3
求めた2つの固有ベクトルの 内積 を計算し、それらが 直交 しているか(内積が0になるか)を確かめてください。
解答と解説
計算お疲れさまでした。
「ルート( )」や「虚数(
)」が出てこず、スッキリ解けたのではないでしょうか。
それでは答え合わせをしていきます。
解答1:固有値を求める
まずは、お決まりの式に当てはめて計算します。
行列式(ななめ掛け算の引き算)を計算します。
展開して整理します。
因数分解します。足して 、掛けて
になる組み合わせですね。
よって、固有値は と
です。
どうでしょう、ちゃんと「実数」になりましたね!
対称行列なので、計算途中で虚数が出てきて焦る心配はありません。
解答2:固有ベクトルを求める
次に、それぞれの固有値に対応する「矢印の向き」を求めます。
① 固有値 のとき
元の行列の式 を考えます。
対角成分から3を引くと:
上の行を見ると ですから、整理すると
となります。
と
が同じ値なら何でも良いので、一番シンプルな形として
とします。
② 固有値 のとき
対角成分から-1を引く(つまり1を足す)と:
上の行を見ると ですから、整理すると
となります。
符号が逆なら何でも良いので、
とします。
解答3:直交しているか確かめる(内積の計算)
いよいよクライマックスです。
求めた2つのベクトルが、本当に90度(直交)になっているか、内積を使って判定します。
ベクトル1:
ベクトル2:
内積の計算式は「成分ごとの掛け算の合計」でしたね。
内積
内積が ゼロ になりました!
つまり、この2つのベクトルは間違いなく 直交しています。
まとめ
実際に手を動かしてみて、いかがでしたか。
どんな数字が入った対称行列でも(今回は と
でしたが)、必ず以下のルールが守られることを体感できたはずです。
- 固有値は、扱いやすい実数になる。
- 固有ベクトルは、綺麗に直交する(十字に交わる)。
この「絶対に直交する」という安心感があるからこそ、私たちは複雑なデータを分析するときに、とりあえず「分散共分散行列(対称行列)」を作って、固有値を計算しにいくのです。そうすれば、必ず綺麗な座標軸が得られることが約束されているからです。
この感覚を覚えておけば、機械学習の数式が出てきても「あ、これはデータを整理整頓しているんだな」と余裕を持って見ることができますよ。
まとめ
対称行列は、単に「形が綺麗」なだけではありません。
- 固有値が実数 なので、安心して計算できる。
- 固有ベクトルが直交 するので、綺麗な座標軸を作れる。
この2つの「性格の良さ」のおかげで、複雑なデータ解析や画像の圧縮などが可能になっています。
もし今後、数式の中で のような対称行列の形を見かけたら、「お、ここは綺麗な直交軸が作れるチャンスだな!」と思ってあげてください。