特異値分解

特異値分解の最新ニュースをまとめて検索!

特異値分解(とくいちぶんかい、singular value decomposition)とは、線形代数学における、複素数あるいは実数を成分とする行列に対する行列分解の一手法である。信号処理統計学の分野で用いられる。特異値分解は、行列に対するスペクトル分解定理の一般化とも考えられ、正方行列に限らず任意の形の行列を分解できる。

目次

[編集] 特異値分解定理

M を、mn 列の 行列 とする。行列の要素は、 K から取られているものとする。体は 実数体であっても複素数体であってもよい。このとき、

M = U\Sigma V^*, \,\!

という M の分解が存在する。 Umm 列のユニタリ行列、行列 Σmn 列で対角成分以外は零で、対角成分は非負。V*nnユニタリ行列 V随伴行列複素共役かつ転置行列)。この分解を特異値分解と呼ぶ。

  • 行列 V は、M入力の基底となる正規直交ベクトルを表す。
  • 行列 U は、M出力の基底となる正規直交ベクトルを表す。
  • 行列 Σ は特異値を対角成分に持つ。特異値は増幅率を表し、入力成分がそれぞれ何倍されて出力されるかを表す。

便宜的に Σ の対角成分 Σi,i は、大きいものから小さいものに並べる。こうすると、UV は一意には決まらないが、Σ は一意に定まる。

[編集] 特異値、特異ベクトルと特異値分解との関係

非負の数 σ は、

Mv = σu

かつ

M * u = σv

という条件を満たす単位長さの Km 上のベクトル uKn 上のベクトル v が存在するときに限って、行列 M の特異値であるといえる。 ベクトル uv は、それぞれ σ左特異ベクトル右特異ベクトルと呼ばれる。

任意の特異値分解

M = U\Sigma V^{*} \,\!

において、Σ の対角成分は、M の特異値に等しい。UV の列ベクトルは、それぞれ左特異値ベクトル、右特異値ベクトルを並べたものである。すなわち、

  • mn 列行列 M は、少なくともひとつ、多くとも p = min(m,n) 個の異なる特異値を持つ。
  • 常にKm 上のユニタリ基底が存在して、それは M の左特異値ベクトルから成る。
  • 常にKn 上のユニタリ基底が存在して、それは M の右特異値ベクトルから成る。

[編集] 幾何的な意味

行列 UV はユニタリ行列だから、U の列ベクトル u1,...,um は、体 Km 上の正規直交基底を成し、V の列ベクトル v1,...,vn は、体 Kn 上の正規直交基底を成す。

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

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


[編集] 特異値分解の応用

[編集] 疑似逆行列

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

 M^+ = V \Sigma^+ U^*, \,

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

[編集] 値域、零空間、行列の階数

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

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

[編集] 行列の近似

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


\tilde{M} = U \tilde{\Sigma} V^*

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


[編集] 関連項目

最終更新 2009年11月23日 (月) 21:42 (日時は個人設定で未設定ならばUTC)。
【特異値分解】変更履歴

ご利用上の注意

もっと調べる!