特異値分解(SVD)の定義と意味

特異値分解(SVD)は、任意の行列を3つの行列の積に分解する手法である。正方行列に限らず適用でき、データ解析や数値計算で広く用いられる。

特異値分解の定義

行列 は次のように分解できる。

ここで 直交行列、 直交行列、 行列で、対角成分のみが非零である。 の対角成分 の特異値と呼ぶ。

の列を左特異ベクトル、 の列を右特異ベクトルという。

特異値の性質

特異値は の固有値の平方根に等しい。 は半正定値対称行列なので、固有値は非負であり、その平方根が特異値となる。

右特異ベクトルは の固有ベクトル、左特異ベクトルは の固有ベクトルである。

非零の特異値の個数は のランクに等しい。

具体例

次の行列を特異値分解する。

の固有値は 4 と 1 なので、特異値は , である。

の固有ベクトルを並べた行列で (列の順序は特異値に対応)。

の固有ベクトルから構成され、 となる。

応用

特異値分解は多くの分野で応用される。

低ランク近似

特異値の大きいものだけを残すと、もとの行列の低ランク近似が得られる。エッカート・ヤングの定理により、この近似はフロベニウスノルムの意味で最良である。

擬似逆行列

非正方行列や特異行列の擬似逆行列(ムーア・ペンローズ逆行列)は SVD を用いて計算できる。

主成分分析

データ行列の SVD は、共分散行列の固有値分解と本質的に同等であり、主成分分析の実装に用いられる。

画像圧縮

画像を行列として、SVD で低ランク近似することで圧縮できる。特異値を上位 個だけ保持すれば、大幅にデータ量を削減できる。

SVD は数値的に安定な分解であり、条件数の計算や最小二乗問題の解法にも用いられる。