3
大学数学基礎解説
文献あり

対角化とスペクトル分解

2773
0

はじめに

この記事は Wathematica Advent Calender 2021 の12/14の記事です.

この記事のメインテーマは「行列の対角化」です.

対角化

正方行列Aに対し,行列Λ=P1APが対角行列になる正則行列Pを見つけることを対角化という.

固有方程式det(λIA)=0を解いて,固有空間Eλ(A)={xRn|Ax=λx}の基底を見つけて,基底を並べて行列P=[p1pn]を作って……っていう流れを叩き込まれるのが,B1の線型代数だと思います(個人の感想です).このへんの数学的なしくみについては, 同期の記事 に詳しく載っています.

この記事では,その図形的な意味と,それを踏まえた応用の話をしてみようと思います.

対角化

まず,2×2行列を例にとって,対角化について考察しましょう.2×2実行列Aに対し,Λ=P1APが対角行列になるような実行列Pが存在するとします.このとき,P=[p1p2]とおくとB={p1,p2}R2の基底なので,任意のベクトルx=[xy]TR2
x=sp1+tp2=P[st](s,tR)
と一意に表せます.stは上の式から[st]T=P1xと求められます.

これは,P1を左から掛けると,xy座標からst座標へと座標系を取り換えられることを意味します.たとえばP=[3113]x=[75]Tのときはx=2p1+p2なので,次図のようになります.

xy座標とst座標の関係 xy座標とst座標の関係

正確には「標準基底(xy座標)から基底Bst座標)へと基底(座標系)を取り換えられる」という表現がより適切です.

逆に,Pを左から掛ければ,st座標からxy座標へと座標系を取り替えられます.よって,xに行列A=PΛP1を左から掛けると,xは次のように変形されます.

  1. まずP1が掛けられることで,xst座標で表わされる
  2. 次にΛが掛けられることで,s軸方向にΛ(1,1)成分λ1倍,t軸方向にΛ(2,2)成分λ2倍だけ拡大される
  3. 最後にPが掛けられることで,xxy座標に戻される

以上をまとめると,対角化できる行列においては,行列をベクトルに掛ける操作が「ある座標系において各軸向きに拡縮する」という操作と同等になります.

スペクトル分解

前節では「対角化できる行列においては,行列をベクトルに掛ける操作が『ある座標系において各軸向きに拡縮する』という操作と同等になる」ということを見ました.ここではそれを踏まえて,対角化を別の形で表記してみましょう.

まず,[st]T=P1xだったので,(P1)T=[q1q2]とおくと
[st]=[q1Tq2T]x=[q1Txq2Tx],s=q1Tx,t=q2Tx
となります.よって,次式が成立します.
x=sp1+tp2=(q1Tx)p1+(q2Tx)p2

ここで,Aを掛けると,xs軸方向にλ1倍,t軸方向にλ2倍だけ拡大されるので
Ax=λ1sp1+λ2tp2=λ1(q1Tx)p1+λ2(q2Tx)p2
です.上の式を変形すると
Ax=λ1(q1Tx)p1+λ2(q2Tx)p2=(λ1p1q1T+λ2p2q2T)x
となり,これが任意のxR2に対して成立するので,A=λ1p1q1T+λ2p2q2Tが成り立ちます.

この式は,Pが直交行列ならもっと簡単になります.実際,(P1)T=Pならq1=p1q2=p2なので,A=λ1p1p1T+λ2p2p2Tです.

なぜPが直交行列のときはq1q2が消えるのでしょうか.その理由は,Pが直交行列のときは,p1p2が正規直交基底をなし,st座標が直交座標系になるからです.次の図を見てください.

st座標が直交座標系でないときの様子 st座標が直交座標系でないときの様子

以下ではp1p2の長さはともに1であるとします.このときp2Tx=p2xは,xp2方向へと正射影したベクトルの長さです.よって,図中に縦線で示された三角形は直角三角形です.そして図から,p1p2が直交していないときは,xt座標とp2xは一致しないことが分かります.逆に,p1p2が直交していれば,両者は一致します.

st座標が直交座標系であるときの様子 st座標が直交座標系であるときの様子

p1p2の長さがともに1で,かつ直交するとき,Pは直交行列になり,その逆も成り立ちます.そのため,Pが直交行列であれば,stを計算するのにq1q2を定義しなくともよいわけです.

以上の議論はn次元で成立します.つまり,n×n実行列Aが直交行列P=[p1pn]で対角化されるとき,Λ=P1AP(i,i)成分をλiとおくと
A=λ1p1p1T++λnpnpnT
が成立します.λ1,,λnの値がすべて異なるとき,これをAスペクトル分解といいます(一般の場合については参考文献を参照してください).

データの要約

ここではスペクトル分解の応用例として,データを要約する手法について説明します.

n人の生徒が4科目の試験を受け,次のような結果が得られたとします(この表をそのまま行列とみなしたものをDとします).

国語算数理科社会
生徒190928794
生徒270687471
生徒359807062
生徒n82766974

よく勉強している生徒はどの科目もそれなりに良い得点をとると考えられるので,各科目の得点には相関があると考えられます.そこで,各科目の得点を重みづけして足すことで,「総合得点」のような数値を算出できないか考えてみます.より正確には
(総合得点)=w1((国語の得点)(国語の平均点))++w4((社会の得点)(社会の平均点))
となるようなw=[w1w4]TR4を計算してみます.

まず,定数倍の差を除くため,wの長さは1であるという制約を課します.総合得点という変量は要するに,4つの変量を要約した変量ですから,各生徒間での差異が大きければ大きいほど,要約によって情報が失われていないと考えられます.そこで,総合得点の標本分散が最大になるようにwを決定しましょう.

Dから各科目ごとに平均点を引いた行列をAとおくと,各生徒の総合得点を並べた表はAwです.また,標本分散Vは表の2乗和
V=|Aw|2n=wTATAwn
です.

ATA4×4対称行列なので,直交行列で対角化できます.よって,相異なる固有値が4個あると仮定すると,ATAは次のようにスペクトル分解できます.
ATA=λ1p1p1T++λ4p4p4T

また,B={p1,,p4}R4の正規直交基底なので,ww=t1p1++t4p4とおけます.すると,Bの正規直交性から
ATAw=(λ1p1p1T++λ4p4p4T)(t1p1++t4p4)=λ1t1p1++λ4t4p4,wTATAw=(t1p1T++t4p4T)(λ1t1p1++λ4t4p4)=λ1t12++λ4t42
となります.よって,次式が成立します.
V=wTATAwn=λ1t12++λ4t42n

λ1,,λ4はすべて異なると仮定しているので,λi=max{λ1,,λ4}となるi{1,,4}は一意に定まります.また,Bは正規直交基底なので|w|=1t12++t42=1です.よって,上の式からVの値が最大になるのは
tk={1(k=i),0(ki)
のときであることが分かります.このときw=piなので,Vの値が最大になるような重みww=piです.

以上から,総合得点はATAをスペクトル分解することで求められることが分かりました.実は,この手法をより発展させると「主成分分析」という手法に繋がります(詳しくは参考文献を参照してください).

参考文献

[1]
齋藤 正彦, 線型代数入門, 基礎数学, 東京大学出版会, 2020
[2]
竹村彰通,谷口正信, 統計学の基礎Ⅰ, 統計科学のフロンティア, 岩波書店, 2003
投稿日:20211214
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

数学、特に応用数学が好きです。Mathlogでは主に、数学とプログラミングを絡めたようなことを書けたらいいなと思っています。

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 対角化
  3. スペクトル分解
  4. データの要約
  5. 参考文献