§D3.18特異値分解と低ランク近似

最終更新

「直交行列と実対称行列の対角化」で示したのは、実対称行列が直交行列によって対角化されることでした。対称でない行列、さらに正方行列ですらない行列については、対角化は意味をもちません。しかし、入口と出口で別々の正規直交基底を選ぶことを許せば、任意の実行列を対角の形にすることができます。これが特異値分解です。

この記事では、特異値分解を実対称行列の対角化から構成し、成分の差の二乗和を最小にするという意味での最良近似が、特異値を大きい順に残したものとして得られることを示します。

1 特異値分解の存在

出発点はA⊤AA^\top Aです。この行列は対称ですので、必修で示した対角化がそのまま使えます。まず、A⊤AA^\top Aの固有値と核について、必要な性質を確かめます。

補題 1.1 (転置との積の性質).AAをm×nm \times nの実行列とする。

  1. A⊤AA^\top Aはnn次の実対称行列であり、その固有値はすべて00以上である。
  2. Ker⁡(A⊤A)=Ker⁡A\operatorname{Ker}(A^\top A) = \operatorname{Ker} Aであり、rank⁡(A⊤A)=rank⁡A\operatorname{rank}(A^\top A) = \operatorname{rank} Aである。

証明. 1について。(A⊤A)⊤=A⊤A(A^\top A)^\top = A^\top Aより対称である。A⊤Ax⃗=λx⃗A^\top A\vec x = \lambda \vec x、x⃗≠0⃗\vec x \ne \vec 0とするとλ∥x⃗∥2=x⃗⊤A⊤Ax⃗=(Ax⃗)⊤(Ax⃗)=∥Ax⃗∥2≥0\lambda \|\vec x\|^2 = \vec x^\top A^\top A \vec x = (A\vec x)^\top (A\vec x) = \|A\vec x\|^2 \ge 0であるからλ≥0\lambda \ge 0である。

2について。Ax⃗=0⃗A\vec x = \vec 0ならばA⊤Ax⃗=0⃗A^\top A\vec x = \vec 0である。逆にA⊤Ax⃗=0⃗A^\top A \vec x = \vec 0ならば∥Ax⃗∥2=x⃗⊤A⊤Ax⃗=0\|A\vec x\|^2 = \vec x^\top A^\top A\vec x = 0であるから、内積の正定値性よりAx⃗=0⃗A\vec x = \vec 0である。よって核が一致し、§D3.10 系 4.1を両者に適用して階数も一致する。▨

これで、特異値分解を構成することができます。A⊤AA^\top Aを直交行列で対角化し、その固有ベクトルの像を正規化したものを、出口側の正規直交系として取ります。

定理 1.2 (特異値分解).AAをm×nm \times nの実行列、r=rank⁡Ar = \operatorname{rank} A、p=min⁡(m,n)p = \min(m, n)とする。このとき、Rn\mathbb{R}^nの正規直交基底v⃗1,…,v⃗n\vec v_1, \dots, \vec v_n、Rm\mathbb{R}^mの正規直交基底u⃗1,…,u⃗m\vec u_1, \dots, \vec u_m、および実数σ1≥σ2≥⋯≥σp≥0\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_p \ge 0が存在して

A=∑i=1rσiu⃗iv⃗i⊤,σ1≥⋯≥σr>0,σi=0 (r<i≤p)A = \sum_{i=1}^{r} \sigma_i \vec u_i \vec v_i^{\top}, \qquad \sigma_1 \ge \dots \ge \sigma_r > 0, \qquad \sigma_i = 0 \ (r < i \le p)

が成り立つ。U=(u⃗1 ⋯ u⃗m)U = (\vec u_1 \ \cdots \ \vec u_m)、V=(v⃗1 ⋯ v⃗n)V = (\vec v_1 \ \cdots \ \vec v_n)とおき、(i,i)(i,i)成分がσi\sigma_i(1≤i≤p1 \le i \le p)で他の成分が00であるm×nm \times n行列をΣ\Sigmaとすると、UUとVVは直交行列であり

A=UΣV⊤A = U \Sigma V^{\top}

と書ける。σ1,…,σp\sigma_1, \dots, \sigma_pをAAの特異値、u⃗i\vec u_iとv⃗i\vec v_iを特異ベクトルという。

証明.A⊤AA^\top Aは実対称であるから、§D3.15 定理 3.1により、直交行列で対角化される。すなわちRn\mathbb{R}^nの正規直交基底v⃗1,…,v⃗n\vec v_1, \dots, \vec v_nと実数λ1≥⋯≥λn\lambda_1 \ge \dots \ge \lambda_nが存在してA⊤Av⃗j=λjv⃗jA^\top A \vec v_j = \lambda_j \vec v_jが成り立つ。補題 1.1よりλj≥0\lambda_j \ge 0である。

00でないλj\lambda_jの個数がrrであることを示す。Λ=diag⁡(λ1,…,λn)\Lambda = \operatorname{diag}(\lambda_1, \dots, \lambda_n)とおくとA⊤A=VΛV⊤A^\top A = V\Lambda V^{\top}である。正則行列を掛けても像の次元は変わらない(正則行列PPによる写像は全単射であるからdim⁡P(Im⁡M)=dim⁡Im⁡M\dim P(\operatorname{Im} M) = \dim \operatorname{Im} Mであり、またIm⁡(MP)=Im⁡M\operatorname{Im}(MP) = \operatorname{Im} Mである)からrank⁡(A⊤A)=rank⁡Λ\operatorname{rank}(A^\top A) = \operatorname{rank}\Lambdaであり、対角行列の階数は00でない対角成分の個数である。補題 1.1の2より、この個数はrrに等しい。λj\lambda_jは大きい順に並んでいるのでλ1≥⋯≥λr>0\lambda_1 \ge \dots \ge \lambda_r > 0、λj=0\lambda_j = 0(j>rj > r)である。

i≤ri \le rに対しσi=λi>0\sigma_i = \sqrt{\lambda_i} > 0、u⃗i=1σiAv⃗i\vec u_i = \dfrac{1}{\sigma_i}A\vec v_iと定める。r<i≤pr < i \le pに対してはσi=λi=0\sigma_i = \sqrt{\lambda_i} = 0と定める(p≤np \le nであることに注意する)。i,j≤ri, j \le rについて

⟨u⃗i,u⃗j⟩=v⃗i⊤A⊤Av⃗jσiσj=λj⟨v⃗i,v⃗j⟩σiσj\langle \vec u_i, \vec u_j\rangle = \frac{\vec v_i^{\top} A^\top A \vec v_j}{\sigma_i \sigma_j} = \frac{\lambda_j \langle \vec v_i, \vec v_j\rangle}{\sigma_i\sigma_j}

であり、右辺はi=ji = jのとき11、i≠ji \ne jのとき00である。よってu⃗1,…,u⃗r\vec u_1, \dots, \vec u_rはRm\mathbb{R}^mの正規直交系である。§D3.11 補題 1.2によりこれをRm\mathbb{R}^mの基底へ延長し、付け加えたベクトルに§D3.14 定理 2.1を適用すると、はじめのrr本はすでに正規直交であるから変わらず、Rm\mathbb{R}^mの正規直交基底u⃗1,…,u⃗m\vec u_1, \dots, \vec u_mが得られる。

j>rj > rについては∥Av⃗j∥2=v⃗j⊤A⊤Av⃗j=λj=0\|A\vec v_j\|^2 = \vec v_j^{\top}A^\top A\vec v_j = \lambda_j = 0よりAv⃗j=0⃗A\vec v_j = \vec 0である。そこでB=∑i=1rσiu⃗iv⃗i⊤B = \sum_{i=1}^{r}\sigma_i \vec u_i\vec v_i^{\top}とおくと、j≤rj \le rのときBv⃗j=σju⃗j=Av⃗jB\vec v_j = \sigma_j \vec u_j = A\vec v_j、j>rj > rのときBv⃗j=0⃗=Av⃗jB\vec v_j = \vec 0 = A\vec v_jである。v⃗1,…,v⃗n\vec v_1, \dots, \vec v_nは基底であるからA=BA = Bである。

行列の形については、Σ=∑i=1pσiε⃗iδ⃗i⊤\Sigma = \sum_{i=1}^{p}\sigma_i \vec\varepsilon_i \vec\delta_i^{\top}(ε⃗i\vec\varepsilon_iはRm\mathbb{R}^mの、δ⃗i\vec\delta_iはRn\mathbb{R}^nの標準基底)と書けるので

UΣV⊤=∑i=1pσi(Uε⃗i)(Vδ⃗i)⊤=∑i=1pσiu⃗iv⃗i⊤=∑i=1rσiu⃗iv⃗i⊤=AU\Sigma V^{\top} = \sum_{i=1}^{p}\sigma_i (U\vec\varepsilon_i)(V\vec\delta_i)^{\top} = \sum_{i=1}^{p}\sigma_i \vec u_i \vec v_i^{\top} = \sum_{i=1}^{r}\sigma_i\vec u_i\vec v_i^{\top} = A

となる。UUとVVは列が正規直交基底であるから、§D3.15 命題 1.2より直交行列である。▨

2 特異値は一意、特異ベクトルは一意とは限らない

命題 2.1 (特異値の一意性).A=UΣV⊤A = U\Sigma V^{\top}を定理 1.2の意味の特異値分解とすると、σ1≥⋯≥σp\sigma_1 \ge \dots \ge \sigma_pはAAから一意に定まる。実際、σi2\sigma_i^2はA⊤AA^\top Aの固有値を大きい順に並べたもののうち、はじめのpp個である。

証明.A=UΣV⊤A = U\Sigma V^{\top}よりA⊤A=VΣ⊤ΣV⊤A^\top A = V\Sigma^\top\Sigma V^{\top}である。Σ⊤Σ\Sigma^\top \Sigmaは対角成分がσ12,…,σp2,0,…,0\sigma_1^2, \dots, \sigma_p^2, 0, \dots, 0であるnn次対角行列であるから、A⊤AA^\top Aの固有値はこれらである。固有値はA⊤AA^\top Aが定める線形写像から定まり、A⊤AA^\top AはAAから定まるので、σ1≥⋯≥σp≥0\sigma_1 \ge \dots \ge \sigma_p \ge 0はAAから一意に定まる。▨

注意 2.2 (特異ベクトルの取り方には自由度がある). 特異ベクトルは、次の三つの理由で一意とは限らない。

  1. 特異値が重複する場合。σi=σi+1\sigma_i = \sigma_{i+1}ならば、A⊤AA^\top Aの固有空間が2次元以上になり、その中で正規直交基底を取り替える自由度がある。
  2. 特異値が重複しない場合でも、符号の自由度がある。u⃗i\vec u_iとv⃗i\vec v_iを同時に−1-1倍してもσiu⃗iv⃗i⊤\sigma_i \vec u_i \vec v_i^{\top}は変わらない。
  3. i>ri > rに対するu⃗i\vec u_iは、u⃗1,…,u⃗r\vec u_1, \dots, \vec u_rに直交する正規直交系であればどれでもよい。

したがって「特異値分解によって定まる」と書いてよいのは、特異値そのものと、特異値を指定したときの部分空間についての量に限られる。

例 2.3 (単位行列の特異値分解).A=I2A = I_2とします。A⊤A=I2A^\top A = I_2の固有値は11と11ですので、特異値はσ1=σ2=1\sigma_1 = \sigma_2 = 1です。一方、任意の2次直交行列PPについてI2=PI2P⊤I_2 = P I_2 P^{\top}ですので、U=V=PU = V = Pが特異値分解を与えます。PPは22次直交行列であればどれでもよく、特異ベクトルはまったく定まりません。

3 成分の差の二乗和と、階数を制限した最良近似

近さを測る量として、フロベニウスノルムを定めます。

定義 3.1 (フロベニウスノルム).m×nm \times nの実行列M=(mij)M = (m_{ij})に対し

∥M∥F=∑i=1m∑j=1nmij2\|M\|_F = \sqrt{\sum_{i=1}^{m}\sum_{j=1}^{n} m_{ij}^{2}}

をMMのフロベニウスノルムという。∥A−B∥F2\|A - B\|_F^2は、AAとBBの対応する成分の差の二乗和である。

フロベニウスノルムは、列ごとの長さの二乗和として書き直すことができ、その和は入口側の正規直交基底の取り方によりません。

補題 3.2 (像の長さの二乗和は基底によらない).AAをm×nm\times nの実行列とし、w⃗1,…,w⃗n\vec w_1, \dots, \vec w_nをRn\mathbb{R}^nの正規直交基底とすると

∑j=1n∥Aw⃗j∥2=∥A∥F2\sum_{j=1}^{n}\|A\vec w_j\|^2 = \|A\|_F^2

が成り立つ。

証明.Rm\mathbb{R}^mの標準基底をε⃗1,…,ε⃗m\vec\varepsilon_1, \dots, \vec\varepsilon_mとする。§D3.14 命題 3.1より、任意のx⃗∈Rm\vec x \in \mathbb{R}^mについてx⃗=∑i⟨x⃗,ε⃗i⟩ε⃗i\vec x = \sum_i \langle \vec x, \vec\varepsilon_i\rangle \vec\varepsilon_iであり、両辺とx⃗\vec xの内積を取ると∥x⃗∥2=∑i⟨x⃗,ε⃗i⟩2\|\vec x\|^2 = \sum_i \langle \vec x, \vec\varepsilon_i\rangle^2である。また⟨Aw⃗,y⃗⟩=(Aw⃗)⊤y⃗=w⃗⊤(A⊤y⃗)=⟨w⃗,A⊤y⃗⟩\langle A\vec w, \vec y\rangle = (A\vec w)^\top \vec y = \vec w^\top (A^\top \vec y) = \langle \vec w, A^\top \vec y\rangleである。よって

∑j∥Aw⃗j∥2=∑j∑i⟨Aw⃗j,ε⃗i⟩2=∑i∑j⟨w⃗j,A⊤ε⃗i⟩2=∑i∥A⊤ε⃗i∥2\sum_{j}\|A\vec w_j\|^2 = \sum_{j}\sum_{i}\langle A\vec w_j, \vec\varepsilon_i\rangle^2 = \sum_{i}\sum_{j}\langle \vec w_j, A^\top \vec\varepsilon_i\rangle^2 = \sum_{i}\|A^\top \vec\varepsilon_i\|^2

となる。最後の等号では、w⃗1,…,w⃗n\vec w_1, \dots, \vec w_nがRn\mathbb{R}^nの正規直交基底であることから上と同じ等式をA⊤ε⃗iA^\top\vec\varepsilon_iに適用した。右辺はw⃗j\vec w_jの取り方を含まない。w⃗j\vec w_jとして標準基底を取れば左辺は∑i,jaij2=∥A∥F2\sum_{i,j}a_{ij}^2 = \|A\|_F^2である。▨

次の補題が、最良近似の証明の中心です。正規直交系をkk本だけ選んだとき、対称行列から拾うことのできる量が、大きいほうからkk個の固有値の和を超えないことを述べます。

補題 3.3 (k 本の正規直交系で拾える量).MMをmm次の実対称行列、その固有値をμ1≥⋯≥μm\mu_1 \ge \dots \ge \mu_m、対応する正規直交な固有ベクトルをg⃗1,…,g⃗m\vec g_1, \dots, \vec g_mとする。1≤k≤m1 \le k \le mとし、w⃗1,…,w⃗k\vec w_1, \dots, \vec w_kをRm\mathbb{R}^mの正規直交系とすると

∑i=1kw⃗i⊤Mw⃗i≤∑j=1kμj\sum_{i=1}^{k} \vec w_i^{\top} M \vec w_i \le \sum_{j=1}^{k}\mu_j

が成り立ち、w⃗i=g⃗i\vec w_i = \vec g_iとすれば等号が成り立つ。

証明.cj=∑i=1k⟨g⃗j,w⃗i⟩2c_j = \sum_{i=1}^{k}\langle \vec g_j, \vec w_i\rangle^2とおく。§D3.14 命題 3.1よりw⃗i=∑j⟨w⃗i,g⃗j⟩g⃗j\vec w_i = \sum_j \langle \vec w_i, \vec g_j\rangle \vec g_jであるからw⃗i⊤Mw⃗i=∑jμj⟨w⃗i,g⃗j⟩2\vec w_i^{\top}M\vec w_i = \sum_j \mu_j \langle \vec w_i, \vec g_j\rangle^2であり、iiについて加えると

∑i=1kw⃗i⊤Mw⃗i=∑j=1mμjcj\sum_{i=1}^{k}\vec w_i^{\top}M\vec w_i = \sum_{j=1}^{m}\mu_j c_j

となる。§D3.14 命題 3.2のベッセルの不等式よりcj≤∥g⃗j∥2=1c_j \le \|\vec g_j\|^2 = 1であり、明らかにcj≥0c_j \ge 0である。また∑jcj=∑i∑j⟨w⃗i,g⃗j⟩2=∑i∥w⃗i∥2=k\sum_j c_j = \sum_i \sum_j \langle \vec w_i, \vec g_j\rangle^2 = \sum_i \|\vec w_i\|^2 = kである。

k=mk = mならばcj=1c_j = 1がすべてのjjについて成り立ち、等号である。k<mk < mとする。s=∑j≤k(1−cj)s = \sum_{j \le k}(1 - c_j)とおくと∑jcj=k\sum_j c_j = kよりs=∑j>kcjs = \sum_{j>k}c_jである。j≤kj \le kについてμj≥μk+1\mu_j \ge \mu_{k+1}かつ1−cj≥01 - c_j \ge 0であるから∑j≤kμj(1−cj)≥μk+1s\sum_{j\le k}\mu_j(1-c_j) \ge \mu_{k+1}sであり、j>kj > kについてμj≤μk+1\mu_j \le \mu_{k+1}かつcj≥0c_j \ge 0であるから∑j>kμjcj≤μk+1s\sum_{j>k}\mu_j c_j \le \mu_{k+1}sである。よって

∑jμjcj−∑j≤kμj=−∑j≤kμj(1−cj)+∑j>kμjcj≤−μk+1s+μk+1s=0\sum_{j}\mu_j c_j - \sum_{j\le k}\mu_j = -\sum_{j\le k}\mu_j(1-c_j) + \sum_{j>k}\mu_j c_j \le -\mu_{k+1}s + \mu_{k+1}s = 0

となる。w⃗i=g⃗i\vec w_i = \vec g_iのときはcjc_jがj≤kj \le kで11、j>kj > kで00となり、等号が成り立つ。▨

これで、階数を制限した最良近似を決めることができます。近さはフロベニウスノルムで測ります。

定理 3.4 (エッカート・ヤングの定理).AAをm×nm\times nの実行列とし、定理 1.2の記号を用いる。1≤k1 \le kとし

Ak=∑i=1min⁡(k,r)σiu⃗iv⃗i⊤A_k = \sum_{i=1}^{\min(k, r)} \sigma_i \vec u_i\vec v_i^{\top}

とおく。rank⁡B≤k\operatorname{rank} B \le kを満たす任意のm×nm\times n実行列BBについて

∥A−Ak∥F≤∥A−B∥F,∥A−Ak∥F2=∑i>k, i≤pσi2\|A - A_k\|_F \le \|A - B\|_F, \qquad \|A - A_k\|_F^2 = \sum_{i > k, \ i \le p}\sigma_i^2

が成り立つ。すなわちAkA_kは、階数がkk以下の行列のなかで、成分の差の二乗和を最小にする。

証明.k≥pk \ge pの場合、min⁡(k,r)=r\min(k,r) = rよりAk=AA_k = Aであり、右辺の和は空であるから主張は明らかである。以下k<p≤mk < p \le mとする。

まず∥A−Ak∥F2\|A - A_k\|_F^2を求める。j≤kj \le kのとき(A−Ak)v⃗j=σju⃗j−σju⃗j=0⃗(A - A_k)\vec v_j = \sigma_j\vec u_j - \sigma_j\vec u_j = \vec 0、k<j≤rk < j \le rのとき(A−Ak)v⃗j=σju⃗j(A-A_k)\vec v_j = \sigma_j \vec u_j、j>rj > rのとき(A−Ak)v⃗j=0⃗(A-A_k)\vec v_j = \vec 0である。補題 3.2を正規直交基底v⃗1,…,v⃗n\vec v_1, \dots, \vec v_nについて用いると∥A−Ak∥F2=∑k<i≤rσi2\|A - A_k\|_F^2 = \sum_{k < i \le r}\sigma_i^2であり、r<i≤pr < i \le pではσi=0\sigma_i = 0であるから、これは∑k<i≤pσi2\sum_{k<i\le p}\sigma_i^2に等しい。同じ補題をAAについて用いると∥A∥F2=∑i≤pσi2\|A\|_F^2 = \sum_{i \le p}\sigma_i^2である。またAkA_kの像はspan⁡{u⃗1,…,u⃗k}\operatorname{span}\{\vec u_1, \dots, \vec u_k\}に含まれるのでrank⁡Ak≤k\operatorname{rank}A_k \le kである。

次に、rank⁡B≤k\operatorname{rank}B \le kを満たすBBを取る。W=Im⁡BW = \operatorname{Im}Bの次元はkk以下であるから、WWの正規直交基底を取り、必要ならば§D3.11 補題 1.2と§D3.14 定理 2.1によってRm\mathbb{R}^mの中で正規直交系w⃗1,…,w⃗k\vec w_1, \dots, \vec w_kへ延長する。W⊆span⁡{w⃗1,…,w⃗k}=:W′W \subseteq \operatorname{span}\{\vec w_1,\dots,\vec w_k\} =: W'である。P=∑i=1kw⃗iw⃗i⊤P = \sum_{i=1}^{k}\vec w_i\vec w_i^{\top}とおくと、Px⃗=∑i⟨x⃗,w⃗i⟩w⃗iP\vec x = \sum_i \langle \vec x, \vec w_i\rangle \vec w_iであるから、§D3.14 命題 3.2よりPx⃗P\vec xはW′W'の中でx⃗\vec xに最も近い点である。AAとBBの第jj列をa⃗j\vec a_j、b⃗j\vec b_jと書くとb⃗j∈W⊆W′\vec b_j \in W \subseteq W'であるから

∥A−B∥F2=∑j∥a⃗j−b⃗j∥2≥∑j∥a⃗j−Pa⃗j∥2=∥A−PA∥F2\|A - B\|_F^2 = \sum_j \|\vec a_j - \vec b_j\|^2 \ge \sum_j \|\vec a_j - P\vec a_j\|^2 = \|A - PA\|_F^2

である。さらにa⃗j−Pa⃗j\vec a_j - P\vec a_jはW′W'に直交しPa⃗j∈W′P\vec a_j \in W'であるから、ピタゴラスの定理により∥a⃗j−Pa⃗j∥2=∥a⃗j∥2−∥Pa⃗j∥2\|\vec a_j - P\vec a_j\|^2 = \|\vec a_j\|^2 - \|P\vec a_j\|^2であり

∥A−PA∥F2=∥A∥F2−∑j∥Pa⃗j∥2\|A - PA\|_F^2 = \|A\|_F^2 - \sum_j\|P\vec a_j\|^2

となる。ここで

∑j∥Pa⃗j∥2=∑j∑i⟨a⃗j,w⃗i⟩2=∑i∑j⟨a⃗j,w⃗i⟩2=∑i∥A⊤w⃗i∥2=∑iw⃗i⊤AA⊤w⃗i\sum_j \|P\vec a_j\|^2 = \sum_j\sum_i \langle \vec a_j, \vec w_i\rangle^2 = \sum_i \sum_j \langle \vec a_j, \vec w_i\rangle^2 = \sum_i \|A^\top \vec w_i\|^2 = \sum_i \vec w_i^{\top}AA^{\top}\vec w_i

である。AA⊤=UΣΣ⊤U⊤AA^{\top} = U\Sigma\Sigma^{\top}U^{\top}であり、ΣΣ⊤\Sigma\Sigma^{\top}は対角成分がσ12,…,σp2,0,…,0\sigma_1^2, \dots, \sigma_p^2, 0, \dots, 0であるmm次対角行列であるから、AA⊤AA^{\top}の固有値を大きい順に並べたものはσ12≥⋯≥σp2≥0≥…\sigma_1^2 \ge \dots \ge \sigma_p^2 \ge 0 \ge \dotsであり、対応する正規直交な固有ベクトルとしてu⃗1,…,u⃗m\vec u_1, \dots, \vec u_mを取ることができる。補題 3.3より∑iw⃗i⊤AA⊤w⃗i≤∑i≤kσi2\sum_i \vec w_i^{\top}AA^{\top}\vec w_i \le \sum_{i \le k}\sigma_i^2である。したがって

∥A−B∥F2≥∥A∥F2−∑i≤kσi2=∑k<i≤pσi2=∥A−Ak∥F2\|A - B\|_F^2 \ge \|A\|_F^2 - \sum_{i\le k}\sigma_i^2 = \sum_{k < i \le p}\sigma_i^2 = \|A - A_k\|_F^2

となる。▨

注意 3.5 (どの量について最良かを落とさない).定理 3.4が述べているのは、フロベニウスノルム、すなわち成分の差の二乗和についての最良性である。行列の近さを測る量はほかにもあり、量を変えれば「最良の近似」の意味も変わる。本記事は、フロベニウスノルム以外の量についての最良性を主張しない。

具体的な行列で、分解と近似の双方を確かめます。

例 3.6 (3行2列の行列の特異値分解).

A=(11111−1)A = \begin{pmatrix} 1 & 1 \\ 1 & 1 \\ 1 & -1 \end{pmatrix}

とします。A⊤A=(3113)A^\top A = \begin{pmatrix} 3 & 1 \\ 1 & 3\end{pmatrix}の固有値は44と22で、固有ベクトルはv⃗1=12(1,1)⊤\vec v_1 = \frac{1}{\sqrt2}(1,1)^\top、v⃗2=12(1,−1)⊤\vec v_2 = \frac{1}{\sqrt2}(1,-1)^\topです。よってσ1=2\sigma_1 = 2、σ2=2\sigma_2 = \sqrt2です。

Av⃗1=12(2,2,0)⊤=(2,2,0)⊤A\vec v_1 = \frac{1}{\sqrt2}(2, 2, 0)^\top = (\sqrt2, \sqrt2, 0)^\topですのでu⃗1=12Av⃗1=12(1,1,0)⊤\vec u_1 = \frac{1}{2}A\vec v_1 = \frac{1}{\sqrt2}(1,1,0)^\topです。Av⃗2=12(0,0,2)⊤=(0,0,2)⊤A\vec v_2 = \frac{1}{\sqrt2}(0,0,2)^\top = (0,0,\sqrt2)^\topですのでu⃗2=12Av⃗2=(0,0,1)⊤\vec u_2 = \frac{1}{\sqrt2}A\vec v_2 = (0,0,1)^\topです。したがって

A=2 u⃗1v⃗1⊤+2 u⃗2v⃗2⊤=(111100)+(00001−1)A = 2\,\vec u_1\vec v_1^{\top} + \sqrt2\,\vec u_2\vec v_2^{\top} = \begin{pmatrix} 1 & 1 \\ 1 & 1 \\ 0 & 0\end{pmatrix} + \begin{pmatrix} 0 & 0 \\ 0 & 0 \\ 1 & -1\end{pmatrix}

となり、和はもとのAAに一致します。

階数11の最良近似はA1=2u⃗1v⃗1⊤A_1 = 2\vec u_1\vec v_1^{\top}、すなわち上の第1項です。∥A−A1∥F2=12+(−1)2=2=σ22\|A - A_1\|_F^2 = 1^2 + (-1)^2 = 2 = \sigma_2^2であり、定理 3.4の値と一致します。また∥A∥F2=6=4+2=σ12+σ22\|A\|_F^2 = 6 = 4 + 2 = \sigma_1^2 + \sigma_2^2です。

4 最小二乗解との関係

「QR 分解と最小二乗解」では、列が一次独立な場合に最小二乗解がただ一つ定まることを示しました。特異値分解を使うと、列が一次従属である場合も含めて、最小二乗解の全体を書き下すことができます。

命題 4.1 (最小二乗解の特異値による表示).AAをm×nm\times nの実行列、b⃗∈Rm\vec b \in \mathbb{R}^mとし、定理 1.2の記号を用いる。

x⃗+=∑i=1r⟨b⃗,u⃗i⟩σiv⃗i\vec x^{+} = \sum_{i=1}^{r} \frac{\langle \vec b, \vec u_i\rangle}{\sigma_i}\vec v_i

とおくと、Ax⃗=b⃗A\vec x = \vec bの最小二乗解の全体は{x⃗++z⃗:z⃗∈span⁡{v⃗r+1,…,v⃗n}}\{\vec x^{+} + \vec z : \vec z \in \operatorname{span}\{\vec v_{r+1}, \dots, \vec v_n\}\}である。とくに、r=nr = nのとき、すなわちAAの列が一次独立であるとき、最小二乗解はx⃗+\vec x^{+}ただ一つである。またx⃗+\vec x^{+}は、最小二乗解のなかでノルムが最小のものである。

証明.§D3.17 定理 2.2より、x⃗\vec xが最小二乗解であることとA⊤Ax⃗=A⊤b⃗A^\top A\vec x = A^\top \vec bが成り立つことは同値である。x⃗=∑jcjv⃗j\vec x = \sum_j c_j \vec v_jと書くと、A⊤Av⃗j=λjv⃗j=σj2v⃗jA^\top A\vec v_j = \lambda_j \vec v_j = \sigma_j^2 \vec v_j(j≤pj \le p)、A⊤Av⃗j=0⃗A^\top A \vec v_j = \vec 0(j>pj > p)であるからA⊤Ax⃗=∑j≤rσj2cjv⃗jA^\top A\vec x = \sum_{j\le r}\sigma_j^2 c_j \vec v_jである。一方A⊤=∑i≤rσiv⃗iu⃗i⊤A^\top = \sum_{i\le r}\sigma_i \vec v_i\vec u_i^{\top}であるからA⊤b⃗=∑i≤rσi⟨b⃗,u⃗i⟩v⃗iA^\top \vec b = \sum_{i\le r}\sigma_i \langle \vec b, \vec u_i\rangle \vec v_iである。v⃗1,…,v⃗n\vec v_1, \dots, \vec v_nは基底であるから、両者が等しいことは、j≤rj \le rについてσj2cj=σj⟨b⃗,u⃗j⟩\sigma_j^2 c_j = \sigma_j\langle \vec b, \vec u_j\rangleが成り立つことと同値であり、σj>0\sigma_j > 0よりcj=⟨b⃗,u⃗j⟩/σjc_j = \langle \vec b, \vec u_j\rangle / \sigma_jと同値である。j>rj > rの成分には条件が付かない。これが主張の表示である。

r=nr = nのときは自由な成分がないので解はただ一つである。ノルムについては、∥x⃗∥2=∑jcj2\|\vec x\|^2 = \sum_j c_j^2であり、j>rj > rの成分を00に取ったものが最小であるから、x⃗+\vec x^{+}がノルム最小の最小二乗解である。▨

6 自分で確かめる

次の三つを、資料を見ずに行ってください。

  1. A=(200100)A = \begin{pmatrix} 2 & 0 \\ 0 & 1 \\ 0 & 0 \end{pmatrix}の特異値分解を求め、階数11の最良近似とその誤差の二乗を計算してください。値が定理 3.4のσ22\sigma_2^2と一致することを確かめてください。
  2. 例 3.6のAAとb⃗=(1,1,1)⊤\vec b = (1, 1, 1)^\topについて、命題 4.1を用いて最小二乗解を求め、正規方程式A⊤Ax⃗=A⊤b⃗A^\top A\vec x = A^\top \vec bに代入して確かめてください。
  3. 特異値が重複する行列を1つ作り、特異ベクトルの組を2通り書いてください。どちらも定理 1.2の条件を満たすことを確かめてください。

2の答えはx⃗=(1,0)⊤\vec x = (1, 0)^\topです。⟨b⃗,u⃗1⟩=2/2=2\langle \vec b, \vec u_1\rangle = 2/\sqrt2 = \sqrt2、⟨b⃗,u⃗2⟩=1\langle \vec b, \vec u_2\rangle = 1ですのでx⃗+=22v⃗1+12v⃗2\vec x^{+} = \frac{\sqrt2}{2}\vec v_1 + \frac{1}{\sqrt2}\vec v_2となり、A⊤Ax⃗=(3,1)⊤=A⊤b⃗A^\top A\vec x = (3, 1)^\top = A^\top\vec bが確かめられます。

参考文献

  1. Carl Eckart and Gale Young, The approximation of one matrix by another of lower rank, Psychometrika 1 (1936), 211–218.階数を制限した最良近似と特異値の関係を参考にしました。
  2. Roger A. Horn and Charles R. Johnson, Matrix Analysis, 2nd ed., Cambridge University Press, Cambridge, 2013.特異値分解と、特異値についての各種の不等式を参考にしました。
  3. Gilbert Strang, Introduction to Linear Algebra, 6th ed., Wellesley-Cambridge Press, 2023.四つの部分空間の関係としての特異値分解を参考にしました。

前提記事