1. 動機 — 正方でない行列の構造
前章までに,対称行列のスペクトル定理を学んだ。対称行列A∈Mn(R)は直交行列Pを用いてA=PDPTと対角化でき,固有値がその行列の本質的な構造を記述することを見た。
しかし,この理論は正方行列に限定される。実際の応用では,m×n行列(m=n)が自然に現れる。例えば,m個のデータ点をn個の特徴量で記述するデータ行列はm×n行列であり,線形写像T:Rn→Rmの表現行列も一般には正方でない。このような行列に対しては固有値の概念がそもそも定義されず,スペクトル定理をそのまま適用することはできない。
本章の主役である特異値分解(singular value decomposition, SVD)は,この制約を取り払う。任意のm×n実行列Aに対して,直交行列U, Vと「対角行列」Σを用いた分解A=UΣVTが存在することを証明する。
鍵となる着想は次の観察である:Aが正方でなくとも,積ATAはn×nの対称行列であり,AATはm×mの対称行列である。これらにスペクトル定理を適用することで,A自身の構造を明らかにできる。
2. 特異値の定義
任意の A∈Mm×n(R) に対し,ATA は半正定値対称行列である。
対称性は (ATA)T=AT(AT)T=ATA より明らか。半正定値性を示す。任意の x∈Rn に対し, xT(ATA)x=(Ax)T(Ax)=∥Ax∥2≥0.
よって ATA は半正定値である。 □
A∈Mm×n(R) とする。ATA の固有値を λ1≥λ2≥⋯≥λn≥0 とするとき,
を A の特異値(singular values)という。σ1≥σ2≥⋯≥σn≥0 と降順に並べる。
A∈Mm×n(R) とする。ATA と AAT は同じ非零固有値を(重複度を込めて)持つ。
λ=0 を ATA の固有値とし,ATAv=λv(v=0)とする。u=Av とおくと,λ=0 かつ ∥u∥2=vTATAv=λ∥v∥2=0 より u=0 である。このとき AATu=AAT(Av)=A(ATAv)=A(λv)=λ(Av)=λu.
よって λ は AAT の固有値でもある。逆も同様に,AATu=λu(λ=0)なら v=ATu=0 が ATAv=λv を満たす。重複度の一致は,この対応が固有空間の間の線形同型を与えることから従う。 □
A=101110 とする。 ATA=(110110)101110=(2112).
固有方程式 det(ATA−λI)=(λ−2)2−1=λ2−4λ+3=(λ−3)(λ−1)=0 より λ1=3, λ2=1。したがって特異値は σ1=3, σ2=1 である。
3. 特異値分解の存在定理
任意の A∈Mm×n(R) に対し,m×m 直交行列 U,n×n 直交行列 V,および m×n 行列 Σ が存在して A=UΣVT
が成り立つ。ここで Σ は,対角成分に A の特異値 σ1≥σ2≥⋯≥σr>0(r=rankA)を持ち,他の成分はすべて 0 の行列である: Σ=σ10⋮0σ2⋯⋯⋱00σr0⋮0⋯⋯⋯⋯⋯00⋮00⋮0.
V の列ベクトル v1,…,vn を右特異ベクトル(right singular vectors),U の列ベクトル u1,…,um を左特異ベクトル(left singular vectors)という。
A のランクを r とする。Step 1: 右特異ベクトルの構成。 ATA は n×n 半正定値対称行列であるから,スペクトル定理より,正規直交固有ベクトル v1,…,vn∈Rn と非負固有値 λ1≥⋯≥λn≥0 が存在して ATAvi=λivi(i=1,…,n)
が成り立つ。σi=λi とおく。rank(ATA)=rankA=r であることを示す。ATAx=0 ならば ∥Ax∥2=xTATAx=0 より Ax=0 であるから,ker(ATA)=kerA。よって rank(ATA)=n−dimker(ATA)=n−dimkerA=rankA=r。したがって,λ1≥⋯≥λr>0 かつ λr+1=⋯=λn=0,すなわち σ1≥⋯≥σr>0 かつ σr+1=⋯=σn=0 である。V=(v1∣⋯∣vn) とおくと,V は直交行列である。Step 2: 左特異ベクトルの構成。 i=1,…,r に対し ui=σi1Avi
と定める。u1,…,ur が Rm の正規直交系であることを確かめる: uiTuj=σiσj1viTATAvj=σiσj1viT(λjvj)=σiσjλjδij=σiσjσj2δij=δij.
r<m の場合,u1,…,ur を Rm の正規直交基底に拡張して ur+1,…,um を得る(Gram–Schmidt の直交化法による)。U=(u1∣⋯∣um) とおくと,U は m×m 直交行列である。Step 3:A=UΣVTの検証。 Avi=σiui(i=1,…,r)が定義から成り立つ。i=r+1,…,n のとき,vi∈ker(ATA)=kerA より Avi=0 である。V は直交行列なので {v1,…,vn} は Rn の正規直交基底であり,任意の x∈Rn は x=∑i=1n(viTx)vi と展開される。したがって Ax=i=1∑n(viTx)Avi=i=1∑rσi(viTx)ui.
これは行列の形で AV=UΣ,すなわち A=UΣVT を意味する。各列について確認すると,UΣ の第 i 列は i≤r のとき σiui,i>r のとき 0 であり,(UΣVT)vi=(UΣ)ei がこの値に一致する。 □
4. 幾何学的解釈
特異値分解A=UΣVTの幾何学的意味を考えよう。
線形写像x↦AxをVT, Σ, Uの3段階に分解する:
x↦VTx:Rn における直交変換(回転または鏡映)。
VTx↦Σ(VTx):各座標軸方向への伸縮。第 i 軸は σi 倍される。
ΣVTx↦U(ΣVTx):Rm における直交変換。
Rn の単位球面 Sn−1={x∈Rn:∥x∥=1} を考える。VT は直交変換であるから,Sn−1 を Sn−1 に写す。次に Σ によって各軸方向に σi 倍されるので,像は半軸の長さが σ1,…,σr の楕円体(の Rm への埋め込み)となる。最後に U がこの楕円体を回転する。したがって,Aによる単位球面の像は楕円体であり,その主軸の方向が左特異ベクトルu1,…,ur,主軸の長さが特異値σ1,…,σrに対応する。右特異ベクトル vi は,楕円体の第 i 主軸方向に写される元の単位球面上の方向を示す。
5. 2×3行列のSVD計算例
A=(100110)∈M2×3(R) の特異値分解を求める。Step 1:ATAの計算。 ATA=101010(100110)=101010101.
Step 2: 固有値の計算。 固有方程式を計算する。 det(ATA−λI)=det1−λ0101−λ0101−λ.
第2行で展開すると (1−λ)[(1−λ)2−1]=(1−λ)(λ2−2λ)=λ(1−λ)(λ−2).
よって λ1=2, λ2=1, λ3=0。特異値は σ1=2, σ2=1。ランクは r=2。Step 3: 右特異ベクトルVの計算。λ1=2 に対する固有ベクトル:(ATA−2I)v=0 を解く。 −1010−1010−1v=0⟹v1=21101.
λ2=1 に対する固有ベクトル:(ATA−I)v=0 を解く。 001000100v=0⟹v2=010.
λ3=0 に対する固有ベクトル:ATAv=0,すなわち kerA を求める。
したがって V=1/201/2010−1/201/2.
Step 4: 左特異ベクトルUの計算。 u1=σ11Av1=21(100110)21101=21(20)=(10).
u2=σ21Av2=11(100110)010=(01).
U=(1001)=I2 となる。Step 5: 検証。 UΣVT=(1001)(200100)1/20−1/20101/201/2.
ΣVT を計算する。第1行は (2/2, 0, 2/2)=(1,0,1),第2行は (0,1,0)。したがって UΣVT=(100110)=A。確かに一致する。
6. 低ランク近似
SVD の外積展開A=∑i=1rσiuiviTにおいて,最初のk項だけを取った
Ak=i=1∑kσiuiviT
をAのランクk切断(truncated SVD)という。Akはランクがちょうどk(k≤rのとき)の行列であり,Aの「最良の」ランクk近似を与える。
行列 B=(bij)∈Mm×n(R) のFrobenius ノルム(Frobenius norm)を ∥B∥F=i=1∑mj=1∑nbij2=tr(BTB)
と定義する。
B=(1324) のとき ∥B∥F=1+4+9+16=30 である。
A∈Mm×n(R) の特異値を σ1,…,σr(r=rankA)とすると
A=UΣVT と分解する。U, V は直交行列であるから ∥A∥F2=tr(ATA)=tr(VΣTUTUΣVT)=tr(VΣTΣVT)=tr(ΣTΣVTV)=tr(ΣTΣ).
最後の等号でトレースの巡回性 tr(XY)=tr(YX) を用いた。ΣTΣ は対角行列で対角成分は σ12,…,σr2,0,…,0 であるから,∥A∥F2=∑i=1rσi2 を得る。 □
A∈Mm×n(R) の特異値分解を A=∑i=1rσiuiviT とし,k<r とする。rankB≤k を満たすすべての行列 B∈Mm×n(R) に対して ∥A−Ak∥F≤∥A−B∥F
が成り立つ。すなわち,Ak=∑i=1kσiuiviT は Frobenius ノルムに関する最良ランク k 近似である。さらに,近似誤差は
で与えられる。
この定理の証明は本書の範囲を超えるが,核心的なアイデアを述べる。A−Ak=∑i=k+1rσiuiviTであり,この項たちは互いに直交するから,補題 13 より∥A−Ak∥F2=∑i=k+1rσi2となる。任意のランクk行列Bに対しては,kerBの次元がn−k以上であることと,v1,…,vk+1が張るk+1次元空間との交わりを用いて,∥A−B∥F2≥σk+12+⋯+σr2を示す。
7. 応用 — 擬似逆行列・主成分分析・条件数
特異値分解は,純粋数学から工学・データ科学に至るまで幅広い応用を持つ。ここでは主要なものを概説する。
7.1. 擬似逆行列
A=UΣVTのとき,Σの非零対角成分の逆数を取り0はそのまま残した行列をΣ+と書くと,
A+=VΣ+UT
はAのMoore–Penrose 擬似逆行列(pseudoinverse)を与える。Aが正則な正方行列のときA+=A−1に一致し,一般には連立方程式Ax=bの最小二乗解x∗=A+bを計算するのに用いられる。
7.2. 主成分分析
主成分分析(principal component analysis, PCA)は,高次元データの次元削減手法であり,その本質は SVD に基づく。中心化されたデータ行列X∈Mm×n(R)(m個のデータ,n個の特徴量)に対し,X=UΣVTの右特異ベクトルv1,…,vkへの射影がデータの分散を最大化するk次元部分空間への射影を与える。
7.3. 条件数
行列Aの条件数(condition number)は
κ(A)=σrσ1
で定義される(Aがランクrのとき)。条件数が大きいほど,連立方程式Ax=bは入力の微小な変動に対して解が大きく変化する(数値的に不安定)。κ(A)=1は直交行列のときに限り達成される。
8. 行列のノルムと特異値
A∈Mm×n(R) の作用素ノルム(operator norm)を ∥A∥=x=0max∥x∥∥Ax∥=∥x∥=1max∥Ax∥
と定義する。ここで ∥⋅∥ はユークリッドノルムである。
A=(3002) のとき,∥Ax∥ は x=e1 で最大値 3 をとるから ∥A∥=3 である。
A∈Mm×n(R) に対し ∥A∥=σ1.
すなわち,作用素ノルムは最大特異値に等しい。
A=UΣVT とする。U, V は直交行列であるから,∥Uy∥=∥y∥ がすべての y に対して成り立つ。したがって ∥Ax∥=∥UΣVTx∥=∥ΣVTx∥=∥Σz∥
ここで z=VTx とおいた。V は直交行列なので ∥z∥=∥x∥。よって ∥A∥=∥z∥=1max∥Σz∥.
z=(z1,…,zn)T とすると ∥Σz∥2=i=1∑rσi2zi2≤σ12i=1∑rzi2≤σ12∥z∥2=σ12.
等号は z=e1 のとき成立する。よって ∥A∥=σ1。 □
まとめ
本章では,任意のm×n行列に対して成り立つ特異値分解A=UΣVTを導入した。
特異値は ATA の固有値の平方根として定義され,A の幾何学的性質を反映する。
SVD は「回転・伸縮・回転」の合成として線形写像を分解する。
Eckart–Young の定理により,切断 SVD は最良のランク k 近似を与える。
作用素ノルム・Frobenius ノルムはいずれも特異値で記述される。
擬似逆行列,主成分分析,条件数など,多岐にわたる応用の理論的基盤を提供する。
スペクトル定理が対称行列の構造を固有値で完全に記述したように,SVD は正方とは限らない一般の行列の構造を特異値で記述する。次章では,この道具を用いてさらに進んだ話題を扱う。