articles:svd

文書の過去の版を表示しています。


特異値分解

特異値分解(Singular Value Decomposition, SVD)はとても役に立つ行列の分解法である.

しかし線形代数の講義などでは扱われることが少なく,とても残念なことである.

行列$A$:$(m \times n)$は,$A = UWV^T$の形に分解できる.これを特異値分解という.

ここで, $U$:$(m \times r)$,$V$:$(n \times r)$,$U$,$V$は列直交行列, $r$は行列$A$のランク.

また, $ W = \mathrm{diag}(\sigma_1,\sigma_2,\cdots,\sigma_r) \; (\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r \gt 0) $ であり,この$\sigma_i$を特異値と呼ぶ.

$U$が列直交行列とは,$U=(\boldsymbol{e}_1,\boldsymbol{e}_2,\cdots,\boldsymbol{e}_r)$としたとき, $$ \boldsymbol{e}_i \cdot \boldsymbol{e}_j = \left\{ \begin{array}{c} 1 \; (i=j) \\ 0 \; (i \ne j) \end{array} \right. $$ つまり,$U^TU = I$,$I$は$r\times r$の単位行列.また同様に$V^TV=I$である.

$A$が正則な場合,つまり$m=n=r$の場合,$A$の逆行列は特異値分解を使って以下のように表せる. $$ A^{-1} = VW^{-1}U^T,\;\; W^{-1}=\mathrm{diag}(1/\sigma_1,1/\sigma_2,\cdots,1/\sigma_r) $$ $A^{-1}A$を計算してみると $$ A^{-1}A=VW^{-1}U^TUWV^T = VW^{-1}WV^T = VV^T=I $$ となることが確認できる 1).

$m = n = r$でない場合,$A$の擬似逆行列は逆行列と形式的に同じで以下のように表せる. $$ A^{+} = VW^{-1}U^T,\;\; W^{-1}=\mathrm{diag}(1/\sigma_1,1/\sigma_2,\cdots,1/\sigma_r) $$ $AA^{+}A$を計算してみると $$ AA^{+}A=UWV^TVW^{-1}U^TUWV^T = UWW^{-1}WV^T = UWV^T=A $$ となり擬似逆行列の条件を満たしていることが確認できる.

$m>n$の場合の擬似逆行列の求め方として以下がよく見受けられる. $$ A^+ = (A^TA)^{-1}A^T $$ これもまた以下を満たし擬似逆行列であることが分かる. $$ AA^+A = A(A^TA)^{-1}A^TA = A $$ しかしこの求め方の問題点は,

  • $A^TA$が正則とは限らない.つまり$(A^TA)^{-1}$が求められないことがある
  • また正則であったとしても”きわどい”場合がある

ということである.

特異値分解を使うと,特異値を吟味することで問題 を明らかにし,それを回避することができる.

ということで,擬似逆行列の計算には特異値分解を利用する方が良い


1)
$U$,$V$ともに$r\times r$の直交行列なので,$U^TU=UU^T=V^TV=VV^T=I$
  • articles/svd.1626386663.txt.gz
  • 最終更新: 2021/07/16 07:04
  • by Takashi Suehiro