特異値分解

提供: testwiki
ナビゲーションに移動 検索に移動
特異値分解の図示。2次元の実ベクトル空間上のせん断写像 M=[1101] による単位円の変形。テンプレート:Mvarテンプレート:Math による等長変換(この図では回転)、テンプレート:Math による伸縮(この図では単位円が楕円に変形されていて、その長径と短径が特異値に相当する)、テンプレート:Mvar による等長変換(この図では回転)の合成に分解される。

特異値分解(とくいちぶんかい、テンプレート:Lang-en-short)とは線形代数学における複素数あるいは実数を成分とする行列に対する行列分解の一手法であり、Autonneによって導入された[1][2][3]。悪条件方程式の数値解法で重宝するほか、信号処理統計学の分野で用いられる[2]。特異値分解は、行列に対するスペクトル定理の一般化とも考えられ、正方行列に限らず任意の形の行列を分解できる[2][3]

特異値分解定理

テンプレート:Mvar階数 テンプレート:Mvarテンプレート:Mvarテンプレート:Mvar 列の行列とする。ただし、行列の要素は テンプレート:Mvarであり、テンプレート:Mvar実数体 テンプレート:Math または複素数体 テンプレート:Math のいずれかであるとする。このとき、

M=UΣV*

という テンプレート:Mvar の分解が存在するテンプレート:Sfnテンプレート:Sfn。 ここで テンプレート:Mvarテンプレート:Mvarテンプレート:Mvar 列のユニタリ行列テンプレート:Mathテンプレート:Mvarテンプレート:Mvar 列のユニタリ行列 テンプレート:Mvar随伴行列複素共役かつ転置行列)。さらに半正定値行列 テンプレート:Math(あるいは テンプレート:Math)の正の固有値平方根 テンプレート:Math2 が存在して、テンプレート:Math2 とおけば、テンプレート:Mvarテンプレート:Mvar 列の行列 テンプレート:Math は以下の形になる。

Σ={[ΔO](m<n)Δ(m=n)[ΔO](m>n)where Δ=diag(σ1,σ2,,σq)

ここで テンプレート:Mathテンプレート:Math2 を対角成分とする テンプレート:Mvar対角行列、部分行列 テンプレート:Mvar零行列である。この分解を特異値分解テンプレート:Math2 を行列 テンプレート:Mvar特異値と呼ぶ[2][3]

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

テンプレート:Math の対角成分の並びは自由だが、応用上は取り扱いを簡単にするため降順に並べることが多い。こうすると、テンプレート:Mvarテンプレート:Mvar は一意には定まらないが、テンプレート:Math は一意に定まる。

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

テンプレート:Mvarテンプレート:Math 上の行列とする。ある非負の実数 テンプレート:Mvar に対し、

Mv=σuM*u=σv

という条件を満たす テンプレート:Mvar 上の単位ベクトル テンプレート:Mvarテンプレート:Mvar 上の単位ベクトル テンプレート:Mvar の組が存在するとき、実数 テンプレート:Mvar を(ベクトル テンプレート:Math2 に対応する)行列 テンプレート:Mvar特異値 テンプレート:En と呼ぶ。またベクトル テンプレート:Math2 を、それぞれ テンプレート:Mvar左特異ベクトル テンプレート:En右特異ベクトル テンプレート:En と呼ぶ。

任意の特異値分解

M=UΣV*

において、m×n行列 テンプレート:Math の対角要素は テンプレート:Mvar の特異値に等しく、ユニタリ行列 テンプレート:Math2 の列ベクトルは、それぞれ左特異ベクトル、右特異ベクトルを並べたものである。すなわち、

(注:ここでの特異値分解の形式は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 の固有値と固有ベクトルに一致する。

幾何的な意味

行列 UV はユニタリ行列だから、U の列ベクトル uテンプレート:Sub, …, uテンプレート:Sub は、体 Kテンプレート:Sup 上の正規直交基底を成し、V の列ベクトル vテンプレート:Sub, …,vテンプレート:Sub は、体 Kテンプレート:Sup 上の正規直交基底を成す。

ベクトル xMx に写す線形変換(線型写像)T:KnKm は、これらの正規直交基底を用いて簡単な形に表される。すなわち、T(vi)=σiui, ここで i = 1, …, min(m, n) に対しては σテンプレート:Sub は Σ の i 番目の対角成分、i > min(m, n) に対し T(vテンプレート:Sub) = 0。

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

特異値分解の応用

擬似逆行列

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

M+=VΣ+U*,

と表せる。ここに Σテンプレート:Sup は、Σ の零でない要素についてはその逆数を要素とするが、零である要素については零をそのまま要素とする行列を作りその転置をとった行列である。この擬似逆行列を用いて、線形最小二乗法を行うことができる。

値域、零空間、行列の階数

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

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

行列の近似

行列 M を、ある特定の階数 r を持つ別の行列 M~ で近似すると便利な場合がある。この場合の近似をrank(M~)=r という条件の下で MM~ の差(フロベニウスノルム)が最小なものという意味であるとすると、行列 M の特異値分解によって、M~ を求めることができる。すなわち、

M~=UΣ~V*

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

脚注

テンプレート:Reflist

参考文献

関連項目

外部リンク

テンプレート:線形代数

  1. Autonne, L. (1915). Sur les matrices hypohermitiennes et sur les matrices unitaires (Vol. 38). Rey.
  2. 2.0 2.1 2.2 2.3 2.4 テンプレート:Cite book
  3. 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