特異値分解

[350px|thumb|特異値分解の図示。2次元の実ベクトル空間上の[せん断写像 M = \begin{bmatrix}1&1\\0&1\end{bmatrix} による単位円の変形。 は  による等長変換（この図では回転）、 による伸縮（この図では単位円が楕円に変形されていて、その長径と短径が特異値に相当する）、 による等長変換（この図では回転）の合成に分解される。]]
**特異値分解**（とくいちぶんかい、）とは線形代数学における複素数あるいは実数を成分とする行列に対する行列分解の一手法であり、Autonneによって導入された。悪条件方程式の数値解法で重宝するほか、信号処理や統計学の分野で用いられる。特異値分解は、行列に対するスペクトル定理の一般化とも考えられ、正方行列に限らず任意の形の行列を分解できる。

## 特異値分解定理
 を階数  の  行  列の行列とする。ただし、行列の要素は体  の元であり、 は実数体  または複素数体  のいずれかであるとする。このとき、
:M = U\Sigma V^*
という  の分解が存在する。
ここで  は  行  列のユニタリ行列、 は  行  列のユニタリ行列  の随伴行列（複素共役かつ転置行列）。さらに半正定値行列 （あるいは ）の正の固有値の平方根  が存在して、 とおけば、 行  列の行列  は以下の形になる。
:\Sigma = \begin{cases}
  \begin{bmatrix}
    \Delta &O
  \end{bmatrix}
  &(mn)
\end{cases} \quad \text{where } \Delta = \operatorname{diag}(\sigma_1, \sigma_2, \dotsc, \sigma_q)
ここで  は  を対角成分とする 次対角行列、部分行列  は零行列である。この分解を**特異値分解**、 を行列  の**[[特異値]]**と呼ぶ。

入力情報を 次列ベクトル  として表し、出力として  が得られるモデルを考えると、行列  の特異値分解によって得られるユニタリ行列と特異値について以下のような解釈を与えることができる。
* 行列  の各列は、 の*入力*空間の正規直交基底を表す。
* 行列  の各列は、 の*出力*空間の正規直交基底を表す。
* 特異値は*増幅率*を表し、入力成分がそれぞれ何倍されて出力されるかを表す。
 の対角成分の並びは自由だが、応用上は取り扱いを簡単にするため降順に並べることが多い。こうすると、 と  は一意には定まらないが、 は一意に定まる。

## 特異値、特異ベクトルと特異値分解との関係
 を  上の行列とする。ある非負の実数  に対し、
:\begin{align}
Mv   &= \sigma u \\
M^*u &= \sigma v
\end{align}
という条件を満たす  上の単位ベクトル  と  上の単位ベクトル  の組が存在するとき、実数  を（ベクトル  に対応する）行列  の**特異値**  と呼ぶ。またベクトル  を、それぞれ  の**左特異ベクトル**  と**右特異ベクトル**  と呼ぶ。

任意の特異値分解
:M = U\Sigma V^*
において、m \times n行列  の対角要素は  の特異値に等しく、ユニタリ行列  の列ベクトルは、それぞれ左特異ベクトル、右特異ベクトルを並べたものである。すなわち、
*  行列  は、少なくとも1つ、高々  個の異なる特異値を持つ。
* 常に  上のユニタリ基底が存在して、それは  の左特異ベクトルから成る。
* 常に  上のユニタリ基底が存在して、それは  の右特異ベクトルから成る。

（注：ここでの特異値分解の形式はUやVをユニタリ行列にとるいわゆる Full SVDと呼ばれるものである．そのほかにいわゆる Thin SVD と呼ばれる分解形式もある．文献等に単に特異値分解とだけ書かれている場合には読者はどちらのSVDを意図しているかを正しく判断せねばならない。）

1つの特異値に対し、2つ以上の線形独立な右（あるいは左）特異ベクトルが存在する場合、その特異値は**縮退**  しているという。縮退のない特異値に対しては常に、左右の特異ベクトルがそれぞれ（位相  の違いを除いて）唯一つ存在する。結果として、もし行列  のすべての特異値が正であり縮退のない場合、特異値分解は（ユニタリ行列  の各列にかかる位相  の違いを除いて）唯一つに定まる。

縮退のある特異値  に対して、左特異ベクトル  の正規化された線型結合  を考えると、左特異ベクトルの線型結合  もまた特異値  の左特異ベクトルとなっている。同様のことが右特異ベクトルについても成り立つ。特異値分解のユニタリ行列  の特異値  に対応する列ベクトルは、特異ベクトルの線型結合の中から自由に選ぶことができるため、結果として行列  の分解は一意ではなくなる。

固有値分解が正方行列に対してのみ適用できるのに対し、特異値分解は任意の矩形行列に対して適用が可能である。また、行列  が正定値のエルミート行列（したがって正方行列）である場合、 の固有値は実数かつ非負であり、このとき  の特異値と特異ベクトルはそれぞれ  の固有値と固有ベクトルに一致する。

## 幾何的な意味
行列 *U* と *V* はユニタリ行列だから、*U* の列ベクトル *u*, …, *u* は、体 *K* 上の正規直交基底を成し、*V* の列ベクトル *v*, …,*v* は、体 *K* 上の正規直交基底を成す。

ベクトル *x* を *Mx* に写す線形変換（線型写像）T\colon K^n \to K^m は、これらの正規直交基底を用いて簡単な形に表される。すなわち、T(v_i) = \sigma_i u_i, ここで *i* = 1, …, min(*m*, *n*) に対しては *σ* は Σ の *i* 番目の対角成分、*i* > min(*m*, *n*) に対し *T*(*v*) = 0。

このことから、特異値分解定理の幾何的な意味は以下のように説明できる。線型写像 T\colon K^n \to K^m に対し、次のような性質を持つ正規直交基底 *K* と *K* が存在する。ここに、*T* は *K* の *i* 番目の基底ベクトルを *K* の *i* 番目の基底ベクトルについて *σ* 倍したものに写す。*σ* は負でない数。つまり、これらの基底を用いて、写像 *T* は、負でない数を成分に持つ対角行列で表される。

## 特異値分解の応用
### 擬似逆行列
特異値分解を用いて、擬似逆行列を計算することができる。行列 *M* の擬似逆行列は、その特異値分解 M = U\Sigma V^* を用いて
: M^+ = V \Sigma^+ U^*,
と表せる。ここに *Σ* は、*Σ* の零でない要素についてはその逆数を要素とするが、零である要素については零をそのまま要素とする行列を作りその転置をとった行列である。この擬似逆行列を用いて、線形最小二乗法を行うことができる。

### 値域、零空間、行列の階数
特異値分解を用いて、行列 M の値域、零空間を表現することができる。M の特異値の中で零になるものに対応する右特異ベクトルが零空間の基底となる。M の特異値の中で零でないものに対応する左特異ベクトルが値域の基底となる。すなわち M の行列の階数は、零でない特異値の数と一致する。さらに、M と M^*M と M M^* の階数は一致し、M^*M と M M^* の固有値は一致する。

数値計算上では、特異値を用いて行列の実質的な階数を求めることができる。数値計算上では丸め誤差の影響で、階数が退化した行列に対し、非常に小さいが零ではない特異値が得られてしまう場合に有効である。

### 行列の近似
行列 M を、ある特定の階数 r を持つ別の行列 \tilde{M} で近似すると便利な場合がある。この場合の近似を*<math>\operatorname{rank}(\tilde{M}) = r</math> という条件の下で <math>M</math> と <math>\tilde{M}</math> の差（[[フロベニウスノルム]]）が最小なもの*という意味であるとすると、行列 M の特異値分解によって、\tilde{M} を求めることができる。すなわち、
:\tilde{M} = U \tilde{\Sigma} V^*
ここに、\tilde{\Sigma} は、\Sigma から大きい方から数えて r 個の特異値を残して、それ以外の特異値を零とおいたもの。

## 脚注

## 参考文献
*
*
* 
* 
* 
* 
* 
* Gentle, J. E. "Singular Value Factorization." §3.2.7 in Numerical Linear Algebra for Applications in Statistics. Berlin: Springer-Verlag, pp.102-103, 1998.
* Nash, J. C. "The Singular-Value Decomposition and Its Use to Solve Least-Squares Problems." Ch. 3 in Compact Numerical Methods for Computers: Linear Algebra and Function Minimisation, 2nd ed. Bristol, England: Adam Hilger, pp.30-48, 1990.
* Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; and Vetterling, W. T. "Singular Value Decomposition." §2.6 in Numerical Recipes in FORTRAN: The Art of Scientific Computing, 2nd ed. Cambridge, England: Cambridge University Press, pp.51-63, 1992.

## 関連項目
* 対角化
* 潜在意味解析

## 外部リンク
*