特異値分解

特異値分解とは線形代数学における複素数あるいは実数を成分とする行列に対する行列分解の一手法であり、Autonneによって導入された。悪条件方程式の数値解法で重宝するほか、信号処理や統計学の分野で用いられる。特異値分解は、行列に対するスペクトル定理の一般化とも考えられ、正方行列に限らず任意の形の行列を分解できる。

1. 特異値分解定理
----------

M}} を階数 r}} の m}} 行 n}} 列の行列とする。ただし、行列の要素は体 K}} の元であり、K}} は実数体 R}} または複素数体 C}} のいずれかであるとする。このとき、

という M}} の分解が存在するGolubHorn。 ここで U}} は m}} 行 m}} 列のユニタリ行列、//V//sup は n}} 行 n}} 列のユニタリ行列 V}} の随伴行列。さらに半正定値行列 //MM//supの正の固有値の平方根 //σ//sub が存在して、1=//q// = min, //σ//sub とおけば、m}} 行 n}} 列の行列 Σ}} は以下の形になる。

ここで Δ}} は //σ//sub を対角成分とする q}}次対角行列、部分行列 O}} は零行列である。この分解を特異値分解、//σ//sub を行列 M}} の特異値と呼ぶ。

入力情報を n}}次列ベクトル v}} として表し、出力として Mv}} が得られるモデルを考えると、行列 M}} の特異値分解によって得られるユニタリ行列と特異値について以下のような解釈を与えることができる。

行列 V}} の各列は、M}} の//入力//空間の正規直交基底を表す。
行列 U}} の各列は、M}} の//出力//空間の正規直交基底を表す。
特異値は//増幅率//を表し、入力成分がそれぞれ何倍されて出力されるかを表す。Σ}} の対角成分の並びは自由だが、応用上は取り扱いを簡単にするため降順に並べることが多い。こうすると、U}} と V}} は一意には定まらないが、Σ}} は一意に定まる。

2. 特異値、特異ベクトルと特異値分解との関係
-----------------------

M}} を //K//sup 上の行列とする。ある非負の実数 σ}} に対し、

という条件を満たす Ksup 上の単位ベクトル u}} と Ksup 上の単位ベクトル v}} の組が存在するとき、実数 σ}} を行列 M}} の特異値 }} と呼ぶ。またベクトル //u//, //v//}} を、それぞれ σ}} の左特異ベクトル }} と右特異ベクトル }} と呼ぶ。

任意の特異値分解

において、Σ}} の対角成分は M}} の特異値に等しく、ユニタリ行列 //U//, //V//}} の列ベクトルは、それぞれ左特異ベクトル、右特異ベクトルを並べたものである。すなわち、

//m// × //n//}} 行列 M}} は、少なくとも1つ、多くとも 1=//q// = min}} 個の異なる特異値を持つ。
常に Ksup 上のユニタリ基底が存在して、それは M}} の左特異ベクトルから成る。
常に Ksup 上のユニタリ基底が存在して、それは M}} の右特異ベクトルから成る。1つの特異値に対し、2つ以上の線形独立な右特異ベクトルが存在する場合、その特異値は縮退 }} しているという。縮退のない特異値に対しては常に、左右の特異ベクトルがそれぞれ唯一つ存在する。結果として、もし行列 M}} のすべての特異値が正であり縮退のない場合、特異値分解は唯一つに定まる。

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

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

3. 幾何的な意味
---------

行列 //U// と //V// はユニタリ行列だから、//U// の列ベクトル //u//1}}, …, //um}}// は、体 //Km}}// 上の正規直交基底を成し、//V// の列ベクトル //v//1}}, …,//vn}}// は、体 //Kn}}// 上の正規直交基底を成す。

ベクトル //x// を //Mx// に写す線形変換 は、これらの正規直交基底を用いて簡単な形に表される。すなわち、, ここで //i// = 1, …, min に対しては //σi}}// は Σ の //i// 番目の対角成分、//i// > min に対し //T// = 0。

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

4. 特異値分解の応用
-----------

4.1. 擬似逆行列
----------

特異値分解を用いて、擬似逆行列を計算することができる。行列 //M// の擬似逆行列は、その特異値分解 を用いて

と表せる。ここに //Σ//+}} は、//Σ// の零でない成分の逆数を成分とする行列の転置である。この擬似逆行列を用いて、線形最小二乗法を行うことができる。

4.2. 値域、零空間、行列の階数
-----------------

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

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

4.3. 行列の近似
----------

行列 を、ある特定の階数 を持つ別の行列 で近似すると便利な場合がある。この場合の近似を// という条件の下で と の差が最小なもの//という意味であるとすると、行列 の特異値分解によって、 を求めることができる。すなわち、

ここに、 は、 から大きい方から数えて 個の特異値を残して、それ以外の特異値を零とおいたもの。

5. 脚注
-----

6. 参考文献
-------

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.

7. 関連項目
-------

対角化
潜在意味解析

8. 外部リンク
--------