特異値分解

特異値分解(とくいちぶんかい、テンプレート:Lang-en-short)とは線形代数学における複素数あるいは実数を成分とする行列に対する行列分解の一手法であり、Autonneによって導入された[1][2][3]。悪条件方程式の数値解法で重宝するほか、信号処理や統計学の分野で用いられる[2]。特異値分解は、行列に対するスペクトル定理の一般化とも考えられ、正方行列に限らず任意の形の行列を分解できる[2][3]。
特異値分解定理
テンプレート:Mvar を階数 テンプレート:Mvar の テンプレート:Mvar 行 テンプレート:Mvar 列の行列とする。ただし、行列の要素は体 テンプレート:Mvar の元であり、テンプレート:Mvar は実数体 テンプレート:Math または複素数体 テンプレート:Math のいずれかであるとする。このとき、
という テンプレート:Mvar の分解が存在するテンプレート:Sfnテンプレート:Sfn。 ここで テンプレート:Mvar は テンプレート:Mvar 行 テンプレート:Mvar 列のユニタリ行列、テンプレート:Math は テンプレート:Mvar 行 テンプレート:Mvar 列のユニタリ行列 テンプレート:Mvar の随伴行列(複素共役かつ転置行列)。さらに半正定値行列 テンプレート:Math(あるいは テンプレート:Math)の正の固有値の平方根 テンプレート:Math2 が存在して、テンプレート:Math2 とおけば、テンプレート:Mvar 行 テンプレート:Mvar 列の行列 テンプレート:Math は以下の形になる。
ここで テンプレート:Math は テンプレート:Math2 を対角成分とする テンプレート:Mvar次対角行列、部分行列 テンプレート:Mvar は零行列である。この分解を特異値分解、テンプレート:Math2 を行列 テンプレート:Mvar の特異値と呼ぶ[2][3]。
入力情報を テンプレート:Mvar次列ベクトル テンプレート:Mvar として表し、出力として テンプレート:Mvar が得られるモデルを考えると、行列 テンプレート:Mvar の特異値分解によって得られるユニタリ行列と特異値について以下のような解釈を与えることができる。
- 行列 テンプレート:Mvar の各列は、テンプレート:Mvar の入力空間の正規直交基底を表す。
- 行列 テンプレート:Mvar の各列は、テンプレート:Mvar の出力空間の正規直交基底を表す。
- 特異値は増幅率を表し、入力成分がそれぞれ何倍されて出力されるかを表す。
テンプレート:Math の対角成分の並びは自由だが、応用上は取り扱いを簡単にするため降順に並べることが多い。こうすると、テンプレート:Mvar と テンプレート:Mvar は一意には定まらないが、テンプレート:Math は一意に定まる。
特異値、特異ベクトルと特異値分解との関係
テンプレート:Mvar を テンプレート:Math 上の行列とする。ある非負の実数 テンプレート:Mvar に対し、
という条件を満たす テンプレート:Mvar 上の単位ベクトル テンプレート:Mvar と テンプレート:Mvar 上の単位ベクトル テンプレート:Mvar の組が存在するとき、実数 テンプレート:Mvar を(ベクトル テンプレート:Math2 に対応する)行列 テンプレート:Mvar の特異値 テンプレート:En と呼ぶ。またベクトル テンプレート:Math2 を、それぞれ テンプレート:Mvar の左特異ベクトル テンプレート:En と右特異ベクトル テンプレート:En と呼ぶ。
任意の特異値分解
において、行列 テンプレート:Math の対角要素は テンプレート:Mvar の特異値に等しく、ユニタリ行列 テンプレート:Math2 の列ベクトルは、それぞれ左特異ベクトル、右特異ベクトルを並べたものである。すなわち、
- テンプレート:Math2 行列 テンプレート:Mvar は、少なくとも1つ、高々 テンプレート:Math2 個の異なる特異値を持つ。
- 常に テンプレート:Mvar 上のユニタリ基底が存在して、それは テンプレート:Mvar の左特異ベクトルから成る。
- 常に テンプレート:Mvar 上のユニタリ基底が存在して、それは テンプレート:Mvar の右特異ベクトルから成る。
(注:ここでの特異値分解の形式はUやVをユニタリ行列にとるいわゆる Full SVDと呼ばれるものである.そのほかにいわゆる Thin SVD と呼ばれる分解形式もある.文献等に単に特異値分解とだけ書かれている場合には読者はどちらのSVDを意図しているかを正しく判断せねばならない。)
1つの特異値に対し、2つ以上の線形独立な右(あるいは左)特異ベクトルが存在する場合、その特異値は縮退 テンプレート:En しているという。縮退のない特異値に対しては常に、左右の特異ベクトルがそれぞれ(位相 テンプレート:Mvar の違いを除いて)唯一つ存在する。結果として、もし行列 テンプレート:Mvar のすべての特異値が正であり縮退のない場合、特異値分解は(ユニタリ行列 テンプレート:Math2 の各列にかかる位相 テンプレート:Mvar の違いを除いて)唯一つに定まる。
縮退のある特異値 テンプレート:Math に対して、左特異ベクトル テンプレート:Math2 の正規化された線型結合 テンプレート:Math2 を考えると、左特異ベクトルの線型結合 テンプレート:Math もまた特異値 テンプレート:Math の左特異ベクトルとなっている。同様のことが右特異ベクトルについても成り立つ。特異値分解のユニタリ行列 テンプレート:Math2 の特異値 テンプレート:Math に対応する列ベクトルは、特異ベクトルの線型結合の中から自由に選ぶことができるため、結果として行列 テンプレート:Mvar の分解は一意ではなくなる。
固有値分解が正方行列に対してのみ適用できるのに対し、特異値分解は任意の矩形行列に対して適用が可能である[2][3]。また、行列 テンプレート:Mvar が正定値のエルミート行列(したがって正方行列)である場合、テンプレート:Mvar の固有値は実数かつ非負であり、このとき テンプレート:Mvar の特異値と特異ベクトルはそれぞれ テンプレート:Mvar の固有値と固有ベクトルに一致する。
幾何的な意味
行列 U と V はユニタリ行列だから、U の列ベクトル uテンプレート:Sub, …, uテンプレート:Sub は、体 Kテンプレート:Sup 上の正規直交基底を成し、V の列ベクトル vテンプレート:Sub, …,vテンプレート:Sub は、体 Kテンプレート:Sup 上の正規直交基底を成す。
ベクトル x を Mx に写す線形変換(線型写像) は、これらの正規直交基底を用いて簡単な形に表される。すなわち、, ここで i = 1, …, min(m, n) に対しては σテンプレート:Sub は Σ の i 番目の対角成分、i > min(m, n) に対し T(vテンプレート:Sub) = 0。
このことから、特異値分解定理の幾何的な意味は以下のように説明できる。線型写像 に対し、次のような性質を持つ正規直交基底 Kテンプレート:Sup と Kテンプレート:Sup が存在する。ここに、T は Kテンプレート:Sup の i 番目の基底ベクトルを Kテンプレート:Sup の i 番目の基底ベクトルについて σテンプレート:Sub 倍したものに写す。σテンプレート:Sub は負でない数。つまり、これらの基底を用いて、写像 T は、負でない数を成分に持つ対角行列で表される。
特異値分解の応用
擬似逆行列
特異値分解を用いて、擬似逆行列を計算することができる。行列 M の擬似逆行列は、その特異値分解 を用いて
と表せる。ここに Σテンプレート:Sup は、Σ の零でない要素についてはその逆数を要素とするが、零である要素については零をそのまま要素とする行列を作りその転置をとった行列である。この擬似逆行列を用いて、線形最小二乗法を行うことができる。
値域、零空間、行列の階数
特異値分解を用いて、行列 の値域、零空間を表現することができる。 の特異値の中で零になるものに対応する右特異ベクトルが零空間の基底となる。 の特異値の中で零でないものに対応する左特異ベクトルが値域の基底となる。すなわち の行列の階数は、零でない特異値の数と一致する。さらに、 と と の階数は一致し、 と の固有値は一致する。
数値計算上では、特異値を用いて行列の実質的な階数を求めることができるテンプレート:Sfn。数値計算上では丸め誤差の影響で、階数が退化した行列に対し、非常に小さいが零ではない特異値が得られてしまう場合に有効である。
行列の近似
行列 を、ある特定の階数 を持つ別の行列 で近似すると便利な場合がある。この場合の近似を という条件の下で と の差(フロベニウスノルム)が最小なものという意味であるとすると、行列 の特異値分解によって、 を求めることができる。すなわち、
ここに、 は、 から大きい方から数えて 個の特異値を残して、それ以外の特異値を零とおいたもの。
脚注
参考文献
- テンプレート:Cite journal
- テンプレート:Cite journal
- テンプレート:Cite book
- テンプレート:Cite book
- テンプレート:Cite book
- テンプレート:Cite book
- テンプレート:PDFlink
- 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.
関連項目
外部リンク
- ↑ Autonne, L. (1915). Sur les matrices hypohermitiennes et sur les matrices unitaires (Vol. 38). Rey.
- ↑ 2.0 2.1 2.2 2.3 2.4 テンプレート:Cite book
- ↑ 3.0 3.1 3.2 3.3 Weisstein, Eric W. "Singular Value Decomposition." From MathWorld--A Wolfram Web Resource. http://mathworld.wolfram.com/SingularValueDecomposition.html