特異値分解(SVD)は、任意の行列を3つの行列の積に分解する手法である。正方行列に限らず適用でき、データ解析や数値計算で広く用いられる。
特異値分解の定義
行列 は次のように分解できる。
ここで は 直交行列、 は 直交行列、 は 行列で、対角成分のみが非零である。 の対角成分 を の特異値と呼ぶ。
の列を左特異ベクトル、 の列を右特異ベクトルという。
特異値の性質
特異値は の固有値の平方根に等しい。 は半正定値対称行列なので、固有値は非負であり、その平方根が特異値となる。
右特異ベクトルは の固有ベクトル、左特異ベクトルは の固有ベクトルである。
非零の特異値の個数は のランクに等しい。
具体例
次の行列を特異値分解する。
の固有値は 4 と 1 なので、特異値は , である。
は の固有ベクトルを並べた行列で (列の順序は特異値に対応)。
は の固有ベクトルから構成され、 は となる。
応用
特異値分解は多くの分野で応用される。
低ランク近似
特異値の大きいものだけを残すと、もとの行列の低ランク近似が得られる。エッカート・ヤングの定理により、この近似はフロベニウスノルムの意味で最良である。
擬似逆行列
非正方行列や特異行列の擬似逆行列(ムーア・ペンローズ逆行列)は SVD を用いて計算できる。
主成分分析
データ行列の SVD は、共分散行列の固有値分解と本質的に同等であり、主成分分析の実装に用いられる。
画像圧縮
画像を行列として、SVD で低ランク近似することで圧縮できる。特異値を上位 個だけ保持すれば、大幅にデータ量を削減できる。
SVD は数値的に安定な分解であり、条件数の計算や最小二乗問題の解法にも用いられる。