1 特異値分解の存在
出発点はA⊤Aです。この行列は対称ですので、必修で示した対角化がそのまま使えます。まず、A⊤Aの固有値と核について、必要な性質を確かめます。
補題 1.1 (転置との積の性質).Aをm×nの実行列とする。
- A⊤Aはn次の実対称行列であり、その固有値はすべて0以上である。
- Ker(A⊤A)=KerAであり、rank(A⊤A)=rankAである。
証明. 1について。(A⊤A)⊤=A⊤Aより対称である。A⊤Ax=λx、x=0とするとλ∥x∥2=x⊤A⊤Ax=(Ax)⊤(Ax)=∥Ax∥2≥0であるからλ≥0である。
2について。Ax=0ならばA⊤Ax=0である。逆にA⊤Ax=0ならば∥Ax∥2=x⊤A⊤Ax=0であるから、内積の正定値性よりAx=0である。よって核が一致し、§D3.10 系 4.1を両者に適用して階数も一致する。▨
これで、特異値分解を構成することができます。A⊤Aを直交行列で対角化し、その固有ベクトルの像を正規化したものを、出口側の正規直交系として取ります。
定理 1.2 (特異値分解).Aをm×nの実行列、r=rankA、p=min(m,n)とする。このとき、Rnの正規直交基底v1,…,vn、Rmの正規直交基底u1,…,um、および実数σ1≥σ2≥⋯≥σp≥0が存在して
A=i=1∑rσiuivi⊤,σ1≥⋯≥σr>0,σi=0 (r<i≤p)が成り立つ。U=(u1 ⋯ um)、V=(v1 ⋯ vn)とおき、(i,i)成分がσi(1≤i≤p)で他の成分が0であるm×n行列をΣとすると、UとVは直交行列であり
A=UΣV⊤と書ける。σ1,…,σpをAの特異値、uiとviを特異ベクトルという。
証明.A⊤Aは実対称であるから、§D3.15 定理 3.1により、直交行列で対角化される。すなわちRnの正規直交基底v1,…,vnと実数λ1≥⋯≥λnが存在してA⊤Avj=λjvjが成り立つ。補題 1.1よりλj≥0である。
0でないλjの個数がrであることを示す。Λ=diag(λ1,…,λn)とおくとA⊤A=VΛV⊤である。正則行列を掛けても像の次元は変わらない(正則行列Pによる写像は全単射であるからdimP(ImM)=dimImMであり、またIm(MP)=ImMである)からrank(A⊤A)=rankΛであり、対角行列の階数は0でない対角成分の個数である。補題 1.1の2より、この個数はrに等しい。λjは大きい順に並んでいるのでλ1≥⋯≥λr>0、λj=0(j>r)である。
i≤rに対しσi=λi>0、ui=σi1Aviと定める。r<i≤pに対してはσi=λi=0と定める(p≤nであることに注意する)。i,j≤rについて
⟨ui,uj⟩=σiσjvi⊤A⊤Avj=σiσjλj⟨vi,vj⟩であり、右辺はi=jのとき1、i=jのとき0である。よってu1,…,urはRmの正規直交系である。§D3.11 補題 1.2によりこれをRmの基底へ延長し、付け加えたベクトルに§D3.14 定理 2.1を適用すると、はじめのr本はすでに正規直交であるから変わらず、Rmの正規直交基底u1,…,umが得られる。
j>rについては∥Avj∥2=vj⊤A⊤Avj=λj=0よりAvj=0である。そこでB=∑i=1rσiuivi⊤とおくと、j≤rのときBvj=σjuj=Avj、j>rのときBvj=0=Avjである。v1,…,vnは基底であるからA=Bである。
行列の形については、Σ=∑i=1pσiεiδi⊤(εiはRmの、δiはRnの標準基底)と書けるので
UΣV⊤=i=1∑pσi(Uεi)(Vδi)⊤=i=1∑pσiuivi⊤=i=1∑rσiuivi⊤=Aとなる。UとVは列が正規直交基底であるから、§D3.15 命題 1.2より直交行列である。▨
2 特異値は一意、特異ベクトルは一意とは限らない
命題 2.1 (特異値の一意性).A=UΣV⊤を定理 1.2の意味の特異値分解とすると、σ1≥⋯≥σpはAから一意に定まる。実際、σi2はA⊤Aの固有値を大きい順に並べたもののうち、はじめのp個である。
証明.A=UΣV⊤よりA⊤A=VΣ⊤ΣV⊤である。Σ⊤Σは対角成分がσ12,…,σp2,0,…,0であるn次対角行列であるから、A⊤Aの固有値はこれらである。固有値はA⊤Aが定める線形写像から定まり、A⊤AはAから定まるので、σ1≥⋯≥σp≥0はAから一意に定まる。▨
例 2.3 (単位行列の特異値分解).A=I2とします。A⊤A=I2の固有値は1と1ですので、特異値はσ1=σ2=1です。一方、任意の2次直交行列PについてI2=PI2P⊤ですので、U=V=Pが特異値分解を与えます。Pは2次直交行列であればどれでもよく、特異ベクトルはまったく定まりません。
3 成分の差の二乗和と、階数を制限した最良近似
近さを測る量として、フロベニウスノルムを定めます。
定義 3.1 (フロベニウスノルム).m×nの実行列M=(mij)に対し
∥M∥F=i=1∑mj=1∑nmij2をMのフロベニウスノルムという。∥A−B∥F2は、AとBの対応する成分の差の二乗和である。
フロベニウスノルムは、列ごとの長さの二乗和として書き直すことができ、その和は入口側の正規直交基底の取り方によりません。
補題 3.2 (像の長さの二乗和は基底によらない).Aをm×nの実行列とし、w1,…,wnをRnの正規直交基底とすると
j=1∑n∥Awj∥2=∥A∥F2が成り立つ。
証明.Rmの標準基底をε1,…,εmとする。§D3.14 命題 3.1より、任意のx∈Rmについてx=∑i⟨x,εi⟩εiであり、両辺とxの内積を取ると∥x∥2=∑i⟨x,εi⟩2である。また⟨Aw,y⟩=(Aw)⊤y=w⊤(A⊤y)=⟨w,A⊤y⟩である。よって
j∑∥Awj∥2=j∑i∑⟨Awj,εi⟩2=i∑j∑⟨wj,A⊤εi⟩2=i∑∥A⊤εi∥2となる。最後の等号では、w1,…,wnがRnの正規直交基底であることから上と同じ等式をA⊤εiに適用した。右辺はwjの取り方を含まない。wjとして標準基底を取れば左辺は∑i,jaij2=∥A∥F2である。▨
次の補題が、最良近似の証明の中心です。正規直交系をk本だけ選んだとき、対称行列から拾うことのできる量が、大きいほうからk個の固有値の和を超えないことを述べます。
補題 3.3 (k 本の正規直交系で拾える量).Mをm次の実対称行列、その固有値をμ1≥⋯≥μm、対応する正規直交な固有ベクトルをg1,…,gmとする。1≤k≤mとし、w1,…,wkをRmの正規直交系とすると
i=1∑kwi⊤Mwi≤j=1∑kμjが成り立ち、wi=giとすれば等号が成り立つ。
証明.cj=∑i=1k⟨gj,wi⟩2とおく。§D3.14 命題 3.1よりwi=∑j⟨wi,gj⟩gjであるからwi⊤Mwi=∑jμj⟨wi,gj⟩2であり、iについて加えると
i=1∑kwi⊤Mwi=j=1∑mμjcjとなる。§D3.14 命題 3.2のベッセルの不等式よりcj≤∥gj∥2=1であり、明らかにcj≥0である。また∑jcj=∑i∑j⟨wi,gj⟩2=∑i∥wi∥2=kである。
k=mならばcj=1がすべてのjについて成り立ち、等号である。k<mとする。s=∑j≤k(1−cj)とおくと∑jcj=kよりs=∑j>kcjである。j≤kについてμj≥μk+1かつ1−cj≥0であるから∑j≤kμj(1−cj)≥μk+1sであり、j>kについてμj≤μk+1かつcj≥0であるから∑j>kμjcj≤μk+1sである。よって
j∑μjcj−j≤k∑μj=−j≤k∑μj(1−cj)+j>k∑μjcj≤−μk+1s+μk+1s=0となる。wi=giのときはcjがj≤kで1、j>kで0となり、等号が成り立つ。▨
これで、階数を制限した最良近似を決めることができます。近さはフロベニウスノルムで測ります。
定理 3.4 (エッカート・ヤングの定理).Aをm×nの実行列とし、定理 1.2の記号を用いる。1≤kとし
Ak=i=1∑min(k,r)σiuivi⊤とおく。rankB≤kを満たす任意のm×n実行列Bについて
∥A−Ak∥F≤∥A−B∥F,∥A−Ak∥F2=i>k, i≤p∑σi2が成り立つ。すなわちAkは、階数がk以下の行列のなかで、成分の差の二乗和を最小にする。
証明.k≥pの場合、min(k,r)=rよりAk=Aであり、右辺の和は空であるから主張は明らかである。以下k<p≤mとする。
まず∥A−Ak∥F2を求める。j≤kのとき(A−Ak)vj=σjuj−σjuj=0、k<j≤rのとき(A−Ak)vj=σjuj、j>rのとき(A−Ak)vj=0である。補題 3.2を正規直交基底v1,…,vnについて用いると∥A−Ak∥F2=∑k<i≤rσi2であり、r<i≤pではσi=0であるから、これは∑k<i≤pσi2に等しい。同じ補題をAについて用いると∥A∥F2=∑i≤pσi2である。またAkの像はspan{u1,…,uk}に含まれるのでrankAk≤kである。
次に、rankB≤kを満たすBを取る。W=ImBの次元はk以下であるから、Wの正規直交基底を取り、必要ならば§D3.11 補題 1.2と§D3.14 定理 2.1によってRmの中で正規直交系w1,…,wkへ延長する。W⊆span{w1,…,wk}=:W′である。P=∑i=1kwiwi⊤とおくと、Px=∑i⟨x,wi⟩wiであるから、§D3.14 命題 3.2よりPxはW′の中でxに最も近い点である。AとBの第j列をaj、bjと書くとbj∈W⊆W′であるから
∥A−B∥F2=j∑∥aj−bj∥2≥j∑∥aj−Paj∥2=∥A−PA∥F2である。さらにaj−PajはW′に直交しPaj∈W′であるから、ピタゴラスの定理により∥aj−Paj∥2=∥aj∥2−∥Paj∥2であり
∥A−PA∥F2=∥A∥F2−j∑∥Paj∥2となる。ここで
j∑∥Paj∥2=j∑i∑⟨aj,wi⟩2=i∑j∑⟨aj,wi⟩2=i∑∥A⊤wi∥2=i∑wi⊤AA⊤wiである。AA⊤=UΣΣ⊤U⊤であり、ΣΣ⊤は対角成分がσ12,…,σp2,0,…,0であるm次対角行列であるから、AA⊤の固有値を大きい順に並べたものはσ12≥⋯≥σp2≥0≥…であり、対応する正規直交な固有ベクトルとしてu1,…,umを取ることができる。補題 3.3より∑iwi⊤AA⊤wi≤∑i≤kσi2である。したがって
∥A−B∥F2≥∥A∥F2−i≤k∑σi2=k<i≤p∑σi2=∥A−Ak∥F2となる。▨
具体的な行列で、分解と近似の双方を確かめます。
例 3.6 (3行2列の行列の特異値分解).
A=11111−1とします。A⊤A=(3113)の固有値は4と2で、固有ベクトルはv1=21(1,1)⊤、v2=21(1,−1)⊤です。よってσ1=2、σ2=2です。
Av1=21(2,2,0)⊤=(2,2,0)⊤ですのでu1=21Av1=21(1,1,0)⊤です。Av2=21(0,0,2)⊤=(0,0,2)⊤ですのでu2=21Av2=(0,0,1)⊤です。したがって
A=2u1v1⊤+2u2v2⊤=110110+00100−1となり、和はもとのAに一致します。
階数1の最良近似はA1=2u1v1⊤、すなわち上の第1項です。∥A−A1∥F2=12+(−1)2=2=σ22であり、定理 3.4の値と一致します。また∥A∥F2=6=4+2=σ12+σ22です。
4 最小二乗解との関係
「QR 分解と最小二乗解」では、列が一次独立な場合に最小二乗解がただ一つ定まることを示しました。特異値分解を使うと、列が一次従属である場合も含めて、最小二乗解の全体を書き下すことができます。
命題 4.1 (最小二乗解の特異値による表示).Aをm×nの実行列、b∈Rmとし、定理 1.2の記号を用いる。
x+=i=1∑rσi⟨b,ui⟩viとおくと、Ax=bの最小二乗解の全体は{x++z:z∈span{vr+1,…,vn}}である。とくに、r=nのとき、すなわちAの列が一次独立であるとき、最小二乗解はx+ただ一つである。またx+は、最小二乗解のなかでノルムが最小のものである。
証明.§D3.17 定理 2.2より、xが最小二乗解であることとA⊤Ax=A⊤bが成り立つことは同値である。x=∑jcjvjと書くと、A⊤Avj=λjvj=σj2vj(j≤p)、A⊤Avj=0(j>p)であるからA⊤Ax=∑j≤rσj2cjvjである。一方A⊤=∑i≤rσiviui⊤であるからA⊤b=∑i≤rσi⟨b,ui⟩viである。v1,…,vnは基底であるから、両者が等しいことは、j≤rについてσj2cj=σj⟨b,uj⟩が成り立つことと同値であり、σj>0よりcj=⟨b,uj⟩/σjと同値である。j>rの成分には条件が付かない。これが主張の表示である。
r=nのときは自由な成分がないので解はただ一つである。ノルムについては、∥x∥2=∑jcj2であり、j>rの成分を0に取ったものが最小であるから、x+がノルム最小の最小二乗解である。▨
6 自分で確かめる
次の三つを、資料を見ずに行ってください。
- A=200010の特異値分解を求め、階数1の最良近似とその誤差の二乗を計算してください。値が定理 3.4のσ22と一致することを確かめてください。
- 例 3.6のAとb=(1,1,1)⊤について、命題 4.1を用いて最小二乗解を求め、正規方程式A⊤Ax=A⊤bに代入して確かめてください。
- 特異値が重複する行列を1つ作り、特異ベクトルの組を2通り書いてください。どちらも定理 1.2の条件を満たすことを確かめてください。
2の答えはx=(1,0)⊤です。⟨b,u1⟩=2/2=2、⟨b,u2⟩=1ですのでx+=22v1+21v2となり、A⊤Ax=(3,1)⊤=A⊤bが確かめられます。