院試hub

特異値分解求め方・低ランク近似・擬似逆行列

任意の m×nm \times n 実行列 AA は、直交行列 UU(mm 次)、VV(nn 次)と、対角に σ1≥σ2≥⋯≥0\sigma_1 \ge \sigma_2 \ge \cdots \ge 0 を並べた m×nm \times n 行列 Σ\Sigma によって A=UΣVTA = U\Sigma V^{\mathsf T} と分解できる。特異値 σi\sigma_i は ATAA^{\mathsf T}A の固有値の正の平方根で、VV の列は ATAA^{\mathsf T}A の正規直交固有ベクトル、UU の列は ui=Avi/σi\boldsymbol{u}_i = A\boldsymbol{v}_i/\sigma_i で求める。00 でない特異値の個数が rank⁡A\operatorname{rank} A で、大きい方から kk 個だけ残すと、階数 kk の行列の中で AA に最も近いものが得られる。

線形代数 の第9単元(全9単元)。先に読む単元:内積と直交対角化、二次形式と正定値行列

院試数学 基礎完成シリーズ 線形代数編

基礎ノートと類題を答案の形で解いた問題集(2,480円)。収録章と見本ページを商品ページで確認できる。過去問の本文は収録していない。

線形代数編の内容を見る

特異値と特異値分解の定義

定義

特異値

AA を m×nm \times n 実行列とする。ATAA^{\mathsf T}A は nn 次の半正定値対称行列なので、固有値はすべて 00 以上である。それを μ1≥⋯≥μn≥0\mu_1 \ge \cdots \ge \mu_n \ge 0 と並べ、σi=μi\sigma_i = \sqrt{\mu_i} を AA の特異値という。v\boldsymbol{v} が ATAA^{\mathsf T}A の固有ベクトルなら ∥Av∥2=vTATAv=μ∥v∥2\|A\boldsymbol{v}\|^2 = \boldsymbol{v}^{\mathsf T}A^{\mathsf T}A\boldsymbol{v} = \mu\|\boldsymbol{v}\|^2 で、σ\sigma は単位ベクトル v\boldsymbol{v} が AA で何倍に伸びるかを表す。

定理・法則

特異値分解の存在

条件

AA は任意の m×nm \times n 実行列で、r=rank⁡Ar = \operatorname{rank} A。正方行列である必要も、対角化可能である必要もない。

主張

mm 次直交行列 UU、nn 次直交行列 VV があって

A=UΣVT,Σ=(diag⁡(σ1,…,σr)OOO) (m×n)A = U\Sigma V^{\mathsf T}, \qquad \Sigma = \begin{pmatrix} \operatorname{diag}(\sigma_1, \dots, \sigma_r) & O \\ O & O \end{pmatrix} \ (m \times n)

と書ける。σ1≥⋯≥σr>0\sigma_1 \ge \cdots \ge \sigma_r > 0 は 00 でない特異値で、Σ\Sigma は AA から一通りに決まる。和の形では A=∑i=1rσiuiviTA = \sum_{i=1}^{r} \sigma_i \boldsymbol{u}_i\boldsymbol{v}_i^{\mathsf T}。

要点

U,VU, V は一通りではない。特異値が相異なれば、ui,vi\boldsymbol{u}_i, \boldsymbol{v}_i の組を同時に −1-1 倍する自由度を除いて決まる。複素行列では直交行列をユニタリ行列に、転置を共役転置に替えて同じことが成り立つ。

特異値分解の求め方

  1. ATAA^{\mathsf T}A(nn 次)の固有値 μ1≥⋯≥μn\mu_1 \ge \cdots \ge \mu_n を求め、σi=μi\sigma_i = \sqrt{\mu_i} とする。
  2. ATAA^{\mathsf T}A の正規直交固有ベクトル v1,…,vn\boldsymbol{v}_1, \dots, \boldsymbol{v}_n を、固有値の大きい順に並べて VV とする。
  3. σi>0\sigma_i > 0 の ii について ui=Avi/σi\boldsymbol{u}_i = A\boldsymbol{v}_i/\sigma_i とする。これらは自動的に正規直交になる。
  4. m>rm > r なら、u1,…,ur\boldsymbol{u}_1, \dots, \boldsymbol{u}_r に直交する単位ベクトルを補って UU を mm 次直交行列にする(ATA^{\mathsf T} の核、つまり ATu=0A^{\mathsf T}\boldsymbol{u} = \boldsymbol{0} の解から選ぶ)。

m<nm < n のときは AATAA^{\mathsf T}(mm 次)から始め、UU を先に決めて vi=ATui/σi\boldsymbol{v}_i = A^{\mathsf T}\boldsymbol{u}_i/\sigma_i としてもよい。AATAA^{\mathsf T} と ATAA^{\mathsf T}A の 00 でない固有値は一致する。

特異値と行列の量の関係

2ノルム(作用素ノルム)
∥A∥2=max⁡∥x∥=1∥Ax∥=σ1\|A\|_2 = \max_{\|\boldsymbol{x}\| = 1}\|A\boldsymbol{x}\| = \sigma_1
フロベニウスノルム
∥A∥F2=∑i,jaij2=tr⁡(ATA)=σ12+⋯+σr2\|A\|_F^2 = \sum_{i,j} a_{ij}^2 = \operatorname{tr}(A^{\mathsf T}A) = \sigma_1^2 + \cdots + \sigma_r^2
正方行列の行列式
∣det⁡A∣=σ1σ2⋯σn|\det A| = \sigma_1\sigma_2\cdots\sigma_n
条件数
κ(A)=σ1σn\kappa(A) = \frac{\sigma_1}{\sigma_n}

nn 次正則行列のとき。大きいほど連立方程式の解が誤差に敏感になる。

擬似逆行列(ムーア・ペンローズ逆)
A+=VΣ+UTA^{+} = V\Sigma^{+}U^{\mathsf T}

Σ+\Sigma^{+} は Σ\Sigma を転置し、00 でない対角成分を逆数にした n×mn \times m 行列。AA の列が一次独立なら A+=(ATA)−1ATA^{+} = (A^{\mathsf T}A)^{-1}A^{\mathsf T}。

実対称行列では特異値は固有値の絶対値 ∣λi∣|\lambda_i| になる。半正定値対称行列では、直交対角化 A=QΛQTA = Q\Lambda Q^{\mathsf T} がそのまま特異値分解である。一般の正方行列では、特異値と固有値の絶対値は一致しない。

低ランク近似と最小二乗法

定理・法則

エッカート・ヤングの定理

条件

AA は m×nm \times n 実行列で、特異値分解 A=∑i=1rσiuiviTA = \sum_{i=1}^{r}\sigma_i\boldsymbol{u}_i\boldsymbol{v}_i^{\mathsf T} をもつ。k<rk < r とし、Ak=∑i=1kσiuiviTA_k = \sum_{i=1}^{k}\sigma_i\boldsymbol{u}_i\boldsymbol{v}_i^{\mathsf T} と置く。

主張

階数が kk 以下の行列 BB の中で、∥A−B∥2\|A - B\|_2 と ∥A−B∥F\|A - B\|_F を最小にするのは B=AkB = A_k で、

∥A−Ak∥2=σk+1,∥A−Ak∥F=σk+12+⋯+σr2\|A - A_k\|_2 = \sigma_{k+1}, \qquad \|A - A_k\|_F = \sqrt{\sigma_{k+1}^2 + \cdots + \sigma_r^2}

要点

主成分分析は、データ行列(各列から平均を引いたもの)の特異値分解で、大きい特異値に対応する vi\boldsymbol{v}_i が主成分の方向になる。

定理・法則

最小二乗解と擬似逆行列

条件

AA は m×nm \times n 実行列、b∈Rm\boldsymbol{b} \in \mathbb{R}^m。

主張

∥Ax−b∥\|A\boldsymbol{x} - \boldsymbol{b}\| を最小にする x\boldsymbol{x} のうちノルムが最小のものは x=A+b\boldsymbol{x} = A^{+}\boldsymbol{b} である。AA の列が一次独立なら、最小二乗解はただ一つで、正規方程式 ATAx=ATbA^{\mathsf T}A\boldsymbol{x} = A^{\mathsf T}\boldsymbol{b} の解 (ATA)−1ATb(A^{\mathsf T}A)^{-1}A^{\mathsf T}\boldsymbol{b} に一致する。

要点

AxA\boldsymbol{x} は AA の列空間を動くので、b\boldsymbol{b} の列空間への正射影に一致する x\boldsymbol{x} が最小二乗解になる。

特異値分解の計算例

計算例

2次正方行列の特異値分解

A=(3045)A = \begin{pmatrix} 3 & 0 \\ 4 & 5 \end{pmatrix} の特異値分解を求めよ。

解答

ATA=(25202025)A^{\mathsf T}A = \begin{pmatrix} 25 & 20 \\ 20 & 25 \end{pmatrix} の固有値は 45,545, 5、固有ベクトルは v1=12(1,1)T\boldsymbol{v}_1 = \frac{1}{\sqrt{2}}(1, 1)^{\mathsf T}、v2=12(1,−1)T\boldsymbol{v}_2 = \frac{1}{\sqrt{2}}(1, -1)^{\mathsf T}。特異値は σ1=35\sigma_1 = 3\sqrt{5}、σ2=5\sigma_2 = \sqrt{5}。

u1=Av1σ1=135⋅12(39)=110(13),u2=Av2σ2=110(3−1)\boldsymbol{u}_1 = \frac{A\boldsymbol{v}_1}{\sigma_1} = \frac{1}{3\sqrt{5}}\cdot\frac{1}{\sqrt{2}}\begin{pmatrix} 3 \\ 9 \end{pmatrix} = \frac{1}{\sqrt{10}}\begin{pmatrix} 1 \\ 3 \end{pmatrix}, \qquad \boldsymbol{u}_2 = \frac{A\boldsymbol{v}_2}{\sigma_2} = \frac{1}{\sqrt{10}}\begin{pmatrix} 3 \\ -1 \end{pmatrix}
A=110(133−1)(35005)12(111−1)TA = \frac{1}{\sqrt{10}}\begin{pmatrix} 1 & 3 \\ 3 & -1 \end{pmatrix}\begin{pmatrix} 3\sqrt{5} & 0 \\ 0 & \sqrt{5} \end{pmatrix}\frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}^{\mathsf T}

検算

(u1,u2)∝3−3=0(\boldsymbol{u}_1, \boldsymbol{u}_2) \propto 3 - 3 = 0。σ1σ2=15=∣det⁡A∣\sigma_1\sigma_2 = 15 = |\det A|、σ12+σ22=50=9+16+25=∥A∥F2\sigma_1^2 + \sigma_2^2 = 50 = 9 + 16 + 25 = \|A\|_F^2。AA の固有値は 3,53, 5 で、特異値とは異なる。

計算例

縦長の行列の特異値分解と擬似逆行列

A=(111001)A = \begin{pmatrix} 1 & 1 \\ 1 & 0 \\ 0 & 1 \end{pmatrix} の特異値分解と擬似逆行列を求め、Ax=(1,2,3)TA\boldsymbol{x} = (1, 2, 3)^{\mathsf T} の最小二乗解を求めよ。

解答

ATA=(2112)A^{\mathsf T}A = \begin{pmatrix} 2 & 1 \\ 1 & 2 \end{pmatrix} の固有値は 3,13, 1 で、σ1=3\sigma_1 = \sqrt{3}、σ2=1\sigma_2 = 1。v1=12(1,1)T\boldsymbol{v}_1 = \frac{1}{\sqrt{2}}(1, 1)^{\mathsf T}、v2=12(1,−1)T\boldsymbol{v}_2 = \frac{1}{\sqrt{2}}(1, -1)^{\mathsf T}。

u1=Av1/3=16(2,1,1)T\boldsymbol{u}_1 = A\boldsymbol{v}_1/\sqrt{3} = \frac{1}{\sqrt{6}}(2, 1, 1)^{\mathsf T}、u2=Av2=12(0,1,−1)T\boldsymbol{u}_2 = A\boldsymbol{v}_2 = \frac{1}{\sqrt{2}}(0, 1, -1)^{\mathsf T}。両方に直交する単位ベクトルとして u3=13(1,−1,−1)T\boldsymbol{u}_3 = \frac{1}{\sqrt{3}}(1, -1, -1)^{\mathsf T} を補う。Σ=(300100)\Sigma = \begin{pmatrix} \sqrt{3} & 0 \\ 0 & 1 \\ 0 & 0 \end{pmatrix}。

列が一次独立なので

A+=(ATA)−1AT=13(2−1−12)(110101)=13(12−11−12)A^{+} = (A^{\mathsf T}A)^{-1}A^{\mathsf T} = \frac{1}{3}\begin{pmatrix} 2 & -1 \\ -1 & 2 \end{pmatrix}\begin{pmatrix} 1 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix} = \frac{1}{3}\begin{pmatrix} 1 & 2 & -1 \\ 1 & -1 & 2 \end{pmatrix}

最小二乗解は x=A+(1,2,3)T=(23,53)T\boldsymbol{x} = A^{+}(1, 2, 3)^{\mathsf T} = \left(\frac{2}{3}, \frac{5}{3}\right)^{\mathsf T}。

検算

残差 Ax−b=(73,23,53)−(1,2,3)=(43,−43,−43)A\boldsymbol{x} - \boldsymbol{b} = (\frac{7}{3}, \frac{2}{3}, \frac{5}{3}) - (1, 2, 3) = (\frac{4}{3}, -\frac{4}{3}, -\frac{4}{3}) は u3\boldsymbol{u}_3 に平行で、AA の2つの列のどちらとも内積 00 になる(正規方程式が成り立つ)。VΣ+UTV\Sigma^{+}U^{\mathsf T} を計算しても同じ A+A^{+} になる。

計算例

階数1の近似と誤差

A=(3045)A = \begin{pmatrix} 3 & 0 \\ 4 & 5 \end{pmatrix} に2ノルムで最も近い階数1の行列と、その誤差を求めよ。

解答

最初の例の分解から

A1=σ1u1v1T=35⋅110(13)12(11)=32(1133)A_1 = \sigma_1\boldsymbol{u}_1\boldsymbol{v}_1^{\mathsf T} = 3\sqrt{5}\cdot\frac{1}{\sqrt{10}}\begin{pmatrix} 1 \\ 3 \end{pmatrix}\frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \end{pmatrix} = \frac{3}{2}\begin{pmatrix} 1 & 1 \\ 3 & 3 \end{pmatrix}

誤差は ∥A−A1∥2=σ2=5\|A - A_1\|_2 = \sigma_2 = \sqrt{5}。

検算

A−A1=(3/2−3/2−1/21/2)A - A_1 = \begin{pmatrix} 3/2 & -3/2 \\ -1/2 & 1/2 \end{pmatrix} は階数1で、フロベニウスノルムの2乗は 94+94+14+14=5=σ22\frac{9}{4} + \frac{9}{4} + \frac{1}{4} + \frac{1}{4} = 5 = \sigma_2^2 になる。

答案でよくある誤り

  1. 1

    特異値を AA の固有値と同じものとする。特異値は ATAA^{\mathsf T}A の固有値の平方根である。(3045)\begin{pmatrix} 3 & 0 \\ 4 & 5 \end{pmatrix} の固有値は 3,53, 5、特異値は 35,53\sqrt{5}, \sqrt{5} と異なる。一致するのは対称な半正定値行列のときである。

  2. 2

    UU を AATAA^{\mathsf T} の固有ベクトルから、VV を ATAA^{\mathsf T}A の固有ベクトルから別々に求めて並べる。固有ベクトルの符号が独立に決まるため、A=UΣVTA = U\Sigma V^{\mathsf T} が成り立たないことがある。片方を決めたら ui=Avi/σi\boldsymbol{u}_i = A\boldsymbol{v}_i/\sigma_i でもう片方を作る。

  3. 3

    縦長の行列で UU を mm 次直交行列に補わない。完全な特異値分解では UU は mm 次、Σ\Sigma は m×nm \times n である。rr 列だけ使う縮約形を答えるなら、そう明記する。

  4. 4

    特異値の並び順と U,VU, V の列の順をずらす。Σ\Sigma の対角は大きい順に並べ、ui,vi\boldsymbol{u}_i, \boldsymbol{v}_i を同じ番号で対応させる。

  5. 5

    列が一次独立でない行列に (ATA)−1AT(A^{\mathsf T}A)^{-1}A^{\mathsf T} を使う。そのとき ATAA^{\mathsf T}A は正則でない。擬似逆行列は VΣ+UTV\Sigma^{+}U^{\mathsf T} で求める。

特異値分解が出た院試の過去問

院試hubが年度別解説の大問を分類した集計から、この単元の内容を扱う出題を挙げる。問題文は各大学の公式過去問で確かめ、解き方は各年度の解説ページで読める。

線形代数の前後の単元

このページの本文を数式のLaTeXのまま読むには Markdown版。最終更新 2026-11-16。誤りに気づいたら 運営者 へ連絡してほしい。

院試数学 基礎完成シリーズ 線形代数編

基礎ノートと類題を答案の形で解いた問題集(2,480円)。収録章と見本ページを商品ページで確認できる。過去問の本文は収録していない。

線形代数編の内容を見る