1 特異値分解(SVD)の基本
1.1 分解の定義と形式
1.1.1 行列の分解(一般形)
特異値分解(SVD)は、任意の実行列 \(A\)(または複素行列)を、左側の直交(またはユニタリ)行列、特異値を並べた対角行列、右側の直交(またはユニタリ)行列の積として表す分解である。実数の場合、サイズ \(m\times n\) の行列 \(A\) に対し \[ A = U \Sigma V^{\mathsf T} \] と書ける。ここで \(U\) は \(m\times m\) の直交行列、\(V\) は \(n\times n\) の直交行列、\(\Sigma\) は \(m\times n\) の形を持ち、対角成分に非負の特異値 \(\sigma_1,\sigma_2,\dots\) を並べる行列である。特異値は通常 \(\sigma_1\ge \sigma_2\ge \cdots \ge 0\) の順に並べる。 複素行列の場合は転置の代わりに随伴(コンジュゲート転置)を用い \[ A = U \Sigma V^{*} \] の形で表す。
1.1.2 特異値・特異ベクトルの意味
特異値 \(\sigma_i\) は、行列 \(A\) がベクトル空間に作用するときの「伸縮の大きさ」を表す量として解釈される。具体的には、右特異ベクトル \(v_i\)(列ベクトル)を \(A\) に入力すると \[ A v_i = \sigma_i u_i \] が成り立つように選べる。ここで \(u_i\) は左特異ベクトルであり、\(\{u_i\}\) は \(U\) の列で、\(\{v_i\}\) は \(V\) の列である。さらに、右特異ベクトルは入力側で、左特異ベクトルは出力側で対応しているため、分解全体として「ある回転(直交変換)を施し、次に軸方向の伸縮(特異値)、最後に別の回転」を行う見取り図になる。 特異値が大きい成分ほど、対応する入力方向の信号は出力で強く現れ、逆に小さい特異値は効果が弱い。零に近い特異値は、ほとんど作用しない方向(近似的なヌル空間の成分)に対応する。
1.2 条件と存在性
1.2.1 実行列・複素行列での違い
存在性は実行列でも複素行列でも保証されるが、定義に用いる転置の扱いが異なる。実行列では随伴が転置に一致するため \(V^{\mathsf T}\) を用いるのに対し、複素行列では随伴 \(V^{*}\) を用いる。直交性・ユニタリ性もそれぞれ実数の直交(内積で基底が互いに直交)と、複素空間でのユニタリ性(随伴を用いた内積で基底が互いに直交)に対応する。 また、特異ベクトルの位相や符号の選び方には自由度があり、分解の一意性は特異値の並びを規格化した上で部分的に決まる。たとえば同じ特異値が重複する場合、対応する特異ベクトルは任意の直交混合(あるいはユニタリ混合)で取り替え可能である。
1.2.2 ランクと特異値の関係
行列 \(A\) のランクは、零でない特異値の個数に一致する。つまり \[ \operatorname{rank}(A) = \#\{i:\sigma_i>0\} \] が成り立つ。したがって、特異値はランクを直接反映し、零付近の特異値は数値的なランク欠損(実際には小さすぎて有効でない成分)を示唆する。 さらに、ランクが小さい(低ランク)行列は、特異値が上位成分に集中し、残りはほとんど寄与しない傾向を持つ。これが低ランク近似や圧縮で中心的な役割を果たす。
1.3 幾何学的解釈
1.3.1 楕円体の変形としての見方
幾何学的には、単位球面(あるいは高次元球)の集合を \(A\) が写す像として、楕円体のような形が現れると捉えられる。直交変換 \(V\) は球の向きを変えるだけなので形状(長さの分布)は変わらないが、\(\Sigma\) は軸方向に伸縮を加えるため、像は軸長が \(\sigma_i\) に対応する楕円体になる。最後に \(U\) がその楕円体を出力空間側で回転させ、最終的な配置が決まる。 この見方により、特異値は楕円体の主軸長に相当し、大きな特異値ほど伸びが強い方向を意味する。零に近い軸は、写像がその方向にほとんど縮退することを示す。
1.3.2 直交変換による構造抽出
SVDは「回転→伸縮→回転」の構成として理解できるため、行列の複雑さを段階的に切り分けられる。具体的には、入力側の直交基底では成分が独立な伸縮方向に分解され、出力側でも対応する独立成分として現れる。これにより、相関構造や主要方向(支配的な成分)を抽出しやすくなる。 また、直交変換を挟むことで、ユークリッド距離やエネルギー(ノルム)に関する性質を扱いやすくなる。特に最小二乗や近似の議論では、直交性が計算・証明の両面で有利に働く。
2 計算方法と数値的側面
2.1 SVDの計算アルゴリズム概観
2.1.1 固有値問題への帰着(概念)
SVDは固有値分解と密接に結び付く。実際、行列 \(A\) に対して \[ A^{\mathsf T}A \] は対称(実数)で半正定値になり、その固有値は特異値の二乗に対応する。具体的に、\(A^{\mathsf T}A\) の固有ベクトル \(v_i\) は右特異ベクトルに対応し、固有値 \(\lambda_i\) は \(\sigma_i^2\) に等しい。同様に \[ AA^{\mathsf T} \] の固有ベクトルは左特異ベクトルに対応する。したがって、概念としては「SVDは(関連する)固有値問題を解くこと」に還元できる。 ただし実装では、数値安定性や計算効率のため、直接 \(A^{\mathsf T}A\) を作って固有値計算を行うとは限らない。二乗化により誤差が増幅する可能性があるため、より良い手順が選択される。
2.1.1.1 対称行列化の考え方
一般に、SVD計算では \(A^{\mathsf T}A\) や \(AA^{\mathsf T}\) のような対称行列に結び付ける発想が役立つ。対称行列は固有値問題が数値的に扱いやすく、直交基底を得やすい。そこでまず \(A\) を内部的に対称に近い形へ変換し、その後の反復や分解に繋げる設計が取られる。 この枠組みでは、元の非対称行列の情報が、対称側のスペクトル(固有値・固有ベクトル)として保持される点が重要である。
2.1.2 bidiagonal化と反復法(概念)
実際の計算では、まず \(A\) を「双方向二重対角形(bidiagonal)」へ変換することが多い。bidiagonal化は左右から直交変換を施して、行列の非零帯を狭める手続きである。以後は、二重対角形に対する特異値計算を行うことで、処理の負担を減らす。 bidiagonal化の後は、反復法(たとえば暗黙のシフトを含む型の手法)が用いられることが多い。反復は、特異値や特異ベクトルを徐々に改善し、収束判定により停止する。概念的には、対称行列に対するQR法と同様に、構造を保ちながらスペクトルを取り出す方向の発想がある。
2.2 数値安定性と計算コスト
2.2.1 丸め誤差と特異値
数値計算では丸め誤差の蓄積が避けられない。SVDは一般に安定性が高い部類に入るが、特に極小の特異値はノイズや丸めの影響を受けやすい。これは、情報量が小さい成分ほど相対誤差が大きく見えやすいためである。 また、特異値の値そのものだけでなく、対応する特異ベクトルの安定性も考慮が必要になる。同じ特異値が近接している場合、対応する部分空間は比較的安定でも、個々のベクトルの向きは揺れうる。したがって用途に応じて「どの程度の精度・安定性が必要か」を見極めることが重要になる。
2.2.2 計算量の目安
計算コストは行列の寸法に依存する。一般的に \(m\times n\)(\(m\ge n\))のSVDは、フル分解では概ね \(O(mn^2)\) のオーダーで見積もられることが多い。実装によって定数係数や最適化の度合いが異なるが、巨大な行列ではフルSVDが重くなるため、用途に応じて上位成分だけを求める手法(部分分解や反復法)が選択されることが多い。 低ランク近似や特徴抽出では、必要なランク \(k\) が小さい状況が多く、この場合は \(k\) に依存したより軽い計算が導入される。
2.3 取り扱い上の注意
2.3.1 次元の大きい行列への工夫
大規模データでは、フルの特異ベクトルをすべて保持すること自体がメモリ・時間の制約になる。実務では、上位の特異値・特異ベクトルのみを計算する部分SVD、あるいは反復的に近似する方法が採られる。さらに、行列を明示的に保持せず、線形作用(ベクトルを掛ける操作)だけで進む方式も利用される。 また、データが疎(スパース)である場合は、疎行列としての演算に最適化された計算手順が有利になることがある。
2.3.2 ランク欠損への対応
測定誤差や近似の結果、理論上は低ランクでも数値的には小さい特異値が残ることがある。このとき、擬似逆行列を作る工程ではゼロ除算を避けるためにしきい値(カットオフ)を設けるのが典型である。しきい値の選び方は、観測ノイズの大きさや求める安定性に依存する。 ランク欠損に対しては「小さい特異値を無視して近似的に解く」方針が安定性を改善する一方、厳密性は失われうる。したがって、予測性能や残差の評価などを通じて実用上の最適点を探すことになる。
3 応用分野
3.1 最小二乗問題と擬似逆行列
3.1.1 擬似逆行列の導出
擬似逆行列(Moore–Penrose inverse) \(A^{+}\) は、SVDを用いて明示的に構成できる。SVD \[ A = U\Sigma V^{\mathsf T} \] が与えられたとき、\(\Sigma\) の非零特異値 \(\sigma_i\) を用いて \[ A^{+} = V \Sigma^{+} U^{\mathsf T} \] と定める。ここで \(\Sigma^{+}\) は対角成分として \(1/\sigma_i\) を対応位置に置き、零の特異値に対応する位置は零のままにする行列である。 この構成により、擬似逆行列は一般の線形方程式で満たすべき性質(代表的には4つのペンローズ条件)を満たす。
3.1.2 最小二乗解の意味
| 線形方程式 \(Ax=b\) が過剰決定(方程式が多い)または未決定(未知数が多い)の場合、厳密解が存在しないことが多い。そのとき最小二乗法は、残差 \(\|Ax-b\|\) を最小にする解を求める。 |
|---|
SVDに基づくと、最小二乗解は \[ x = A^{+}b \] として与えられ、さらに条件を満たす中で最小ノルムの解(解集合が無限にある場合の代表)になっていることが知られている。特異値が小さい方向では解が大きく振れやすいが、擬似逆行列の定義により弱い成分は抑制され、過学習や数値不安定の程度を緩和できる場合がある。
3.2 低ランク近似と圧縮
3.2.1 ベスト近似(切り捨て近似)
SVDは「あるランク以下での最良近似」を与える点で重要である。特異値を大きい順に \(\sigma_1,\dots,\sigma_r\) とし、上位 \(k\) 個だけを残す形で \[ A_k = \sum_{i=1}^{k} \sigma_i u_i v_i^{\mathsf T} \] のように切り捨て近似を作ると、この \(A_k\) はノルムの意味で最良のランク \(k\) 近似になる(少なくとも標準的な評価規格で成立する)。 直感的には、データに含まれる支配的な変動のみを保ち、それ以外をノイズや冗長性として捨てる操作に相当する。
3.2.2 ノイズ抑制としての効果
観測データにノイズが含まれる場合、ノイズ由来の成分はしばしば小さな特異値の領域に現れる。上位成分だけを残す低ランク近似は、信号対雑音の観点で有利になりやすい。実際、欠損や劣化のモデルにもよるが、小さな特異値を切ることで不確かな成分を削除できる。 このため、復元、平滑化、特徴の抽出などの工程でSVDベースの手法が選ばれることがある。切り捨てのランク選択は性能を左右し、残差の評価やクロスバリデーションなどで決めることが多い。
3.3 次元削減と特徴抽出
3.3.1 主な寄与成分の捉え方
高次元データを扱う際には、すべての座標が同じ重要度を持つとは限らない。SVDを利用すると、データ(あるいはデータ行列)を特異値の大きさに応じた方向へ分解できるため、支配的な成分を選び出して表現を縮約できる。 その結果、元の変動の大部分を保持したまま、次元を下げた埋め込みが得られる。理論的には、エネルギー(分散や二乗ノルム)をどの程度保持するかが特異値の分布と結び付くため、どれだけの次元が必要かを見通しやすい。
3.3.2 データ可視化への利用(概念)
次元削減の代表的な使い方の一つは、2次元や3次元への射影による可視化である。SVD由来の低次元表現を用いると、元のデータのクラスター構造や連続的変化が見えやすくなることがある。 ただし、可視化はあくまで「低次元での見え方」であり、分類境界や距離の厳密な関係は失われる場合がある。このため、可視化は探索的な手段として位置づけるのが一般的である。
3.4 画像・信号処理での典型例
3.4.1 近似復元の考え方
画像を行列として扱う場合、各画素あるいは局所特徴を要素に並べた行列 \(A\) を考え、SVDで分解する。上位成分だけで近似した行列 \(A_k\) を作ると、欠落やノイズを含む画像が滑らかに復元されることがある。これは、局所的なランダム変動が小さな特異値領域に集まり、上位成分が大局的な構造(輪郭や大域のパターン)を表しやすいためである。 また、欠測データの埋め戻しにも応用できる。観測されている部分を制約条件として、低ランク性を利用して未知部分を推定する発想が広い意味で関連する。
3.4.2 圧縮率と品質のトレードオフ
画像や信号の圧縮では、SVDの係数(特異値と対応する基底の成分)を保持する量を減らすことでデータサイズを削減する。圧縮率は保存する特異値の数(ランク \(k\))に依存し、品質は切り捨てにより失われる情報量に依存する。 一般に、\(k\) を小さくすると保存量は減るが復元誤差が増え、\(k\) を大きくすると品質が上がる一方で圧縮効果は弱まる。このため、用途に応じて品質目標(視覚的許容誤差やエネルギー誤差)に合わせて \(k\) を選ぶ必要がある。
4 理論的性質と関連概念
4.1 固有値分解との関係
4.1.1 A^T A・A A^T の関係
SVDと固有値分解の関係は、\(A^{\mathsf T}A\) と \(AA^{\mathsf T}\) のスペクトルに現れる。先に述べたように、右特異ベクトルは \(A^{\mathsf T}A\) の固有ベクトルとなり、対応する固有値は \(\sigma_i^2\) である。同様に左特異ベクトルは \(AA^{\mathsf T}\) の固有ベクトルである。 この関係は、特異値が「非負の量」として自然に定義される理由も説明する。二乗した固有値は符号を持たず、伸縮の強度として解釈できるからである。
4.1.2 エネルギー分解の見方
行列ノルムや二乗誤差の議論では、特異値の二乗が「エネルギー」や「寄与」の量として現れることが多い。例えばフロベニウスノルムは \[
| \|A\|_F^2 = \sum_i \sigma_i^2 |
|---|
\] として表され、各特異値が全体の二乗量へどれだけ貢献しているかを示す。低ランク近似においても、捨てる成分に対応する \(\sigma_i^2\) の総和が誤差の大きさに関わる。 この視点により、SVDは「重要な成分への二乗量の配分」を読み取る道具として働く。
4.2 ランク・可逆性・条件数
4.2.1 特異値と安定性
可逆性はランクの情報に直結し、特異値が全て零でない場合に限り行列は可逆となる。数値計算の観点では、最小の特異値が小さいほど逆問題は不安定になりやすい。なぜなら、わずかな誤差が解の大きな相対誤差に変換される可能性が増えるからである。 このため、特異値の分布(特に最大と最小の隔たり)が、計算の頑健性を評価する材料になる。
4.2.2 条件数の解釈
条件数は、入力の相対変化が出力の相対変化にどれほど増幅されるかを示す代表的な指標である。SVDに基づくと、2ノルム条件数は \[ \kappa_2(A) = \frac{\sigma_{\max}}{\sigma_{\min}} \] で表される。ここで \(\sigma_{\max}\) は最大特異値、\(\sigma_{\min}\) は最小特異値である(零の場合は発散し、可逆でないことを意味する)。 条件数が大きい行列は、わずかな測定誤差や丸め誤差が解に大きく影響しやすい。この指標は、正則化や打ち切り(特異値のカットオフ)といった対策の必要性を示すためにも用いられる。
4.3 主要な関連分解
4.3.1 QR分解・固有値分解との比較
QR分解は直交基底を用いて行列を上三角形に写す手法であり、特に連立一次方程式や固有値計算の前処理に頻繁に用いられる。固有値分解は対角化可能な場合にスペクトル情報を直接扱えるが、一般の行列には適用できないことが多い。 対してSVDは、任意の行列に対して(実数なら直交、複素ならユニタリを使って)常に存在し、特異値が非負として拡縮の強度を表す点が特徴である。目的が「最小二乗」「近似」「安定性評価」ならSVDが適していることが多い。
4.3.2 固有値分解との使い分け
固有値分解は、対象が対称行列やエルミート行列などスペクトルが扱いやすい場合に特に強力である。一方で一般の非対称行列では、固有値だけでは幾何学的な伸縮の対応関係(方向ごとの寄与)を捉えにくい。 SVDは左右の変換が分離され、入力と出力の対応が明確になるため、行列の作用(写像としての性質)を理解したいときに有利である。したがって、対象の構造(対称性の有無)や目的(近似か、逆問題か、スペクトルか)に応じて使い分けるのが一般的である。
4.4 拡張と近似SVD
4.4.1 部分SVD・ランダム化手法(概念)
部分SVDでは、全特異成分ではなく上位 \(k\) 成分だけを近似的に求める。これは、低ランク近似や特徴抽出で十分な場合が多いため計算負荷を下げられる。 近年はランダム化手法も広く用いられる。ランダムに生成した下空間によりデータの主要部分を捕捉し、そこに対する小型問題を解いて特異構造を推定する方法である。概念としては「全体を直接分解せず、支配的な方向に関する情報だけを効果的に取り出す」ことが狙いになる。
4.4.2 スパース性への配慮(概念)
データが疎である場合、密な行列としてSVDを行うと無駄が大きくなる。そこで、疎な構造を維持しつつ反復的に特異情報を推定する工夫が必要になることがある。例えば線形作用を疎演算で実装し、係数計算の手間を抑える方針が採られる。 ただし、スパース性は常に有利に働くとは限らず、近似精度や計算機構の都合とトレードオフになる。最適な方法はデータの性質と要求精度により変わるため、実装選択が重要になる。