markdown
特異値分解の入口md 8af0916
lecture/math/linear-algebra/introduction-to-singular-value-decomposition.lecture.n.md
Download PDF

特異値分解とくいちぶんかいsingular value decompositionSVDの入口いりぐち

date2026-07-14document_iddoc_0c18ace358b22600fb65290b07a5b343description特異値分解を、長方行列を直交変換と軸方向の伸縮に分ける方法として導入し、階数・最小二乗法・擬似逆行列との関係を整理する講義である。prerequisites対称行列と直交対角化 / 階数の基本 / 最小二乗法の基本type講義content_typelecturestatusactiverelateddata/lecture/math/linear-algebra/linear-algebra-portal.lecture.n.md / data/lecture/math/linear-algebra/symmetric-matrices-and-orthogonal-diagonalization.lecture.n.md / data/lecture/math/linear-algebra/complex-inner-products-and-unitary-matrices.lecture.n.md / data/lecture/math/linear-algebra/rank-basics.lecture.n.md / data/lecture/math/linear-algebra/least-squares-basics.lecture.n.md / data/lecture/math/linear-algebra/pseudoinverse-basics.lecture.n.md / data/exercise/math/linear-algebra/eigenvalues-diagonalization-and-extensions.exercise.n.md
mathlinear-algebraundergraduatelecture

1導入どうにゅう

この講義こうぎで重要じゅうようなのは、特異値分解とくいちぶんかいsingular value decompositionSVDは、正方行列せいほうぎょうれつsquare matrixに限定げんていされない行列ぎょうれつmatrixを、直交変換ちょっこうへんかんと軸方向じくほうこうの伸縮しんしゅくへ分解ぶんかいする方法ほうほうであるということである。

固有値こゆうちeigenvalueと対角化たいかくかdiagonalizationは正方行列せいほうぎょうれつsquare matrixを主対象しゅたいしょうにする。一方いっぽう、実務じつむや応用おうようでは、縦横たてよこの大おおきさが異ことなる行列ぎょうれつmatrixが頻出ひんしゅつする。特異値分解とくいちぶんかいsingular value decompositionSVDは、そのような長方行列ちょうほうぎょうれつにも適用てきようできる標準的ひょうじゅんてきな分解ぶんかいである。

SVD は、一般いっぱんの行列ぎょうれつmatrixに対たいする「直交基底ちょっこうきていつきの最もっとも安定あんていした分解ぶんかい」と位置付いちづけられる。入力側にゅうりょくがわの正規直交基底せいきちょっこうきていorthonormal basis、出力側しゅつりょくがわの正規直交基底せいきちょっこうきていorthonormal basis、軸方向じくほうこうの非負ひふの伸縮率しんしゅくりつを分離ぶんりするため、階数かいすうrank、最小二乗法さいしょうにじょうほうleast squares method、擬似逆行列ぎじぎゃくぎょうれつpseudoinverse matrix、低階数近似ていかいすうきんじを同一どういつの枠組わくぐみで記述きじゅつできる。

2用語ようごと定義ていぎ

特異値分解とくいちぶんかいSingular value decomposition とは、実じつrealの m×n 行列ぎょうれつmatrix A を

A=UΣVT

と表示ひょうじすることである。ここで U は m×m 直交行列ちょっこうぎょうれつorthogonal matrix、V は n×n 直交行列ちょっこうぎょうれつorthogonal matrix、Σ は対角方向たいかくほうこうに非負数ひふすうを並ならべた m×n 行列ぎょうれつmatrixである。

Σ の対角成分たいかくせいぶん

σ1[PARSE ERROR: Undefined("Command(\"ge\")")]σ2[PARSE ERROR: Undefined("Command(\"ge\")")]⋯[PARSE ERROR: Undefined("Command(\"ge\")")]0

を A の特異値とくいちSingular valuesという。複素行列ふくそぎょうれつでは

A=UΣV*

と表示ひょうじする。

3方針ほうしん

方針ほうしんは、実行列じつぎょうれつでは ATA、複素行列ふくそぎょうれつでは A*A を解析かいせきすることである。ATA は実対称じつたいしょうかつ非負定値ひふていちであり、A*A はエルミート行列ぎょうれつmatrixかつ非負定値ひふていちであるため、直交ちょっこうorthogonalまたはユニタリに対角化たいかくかdiagonalizationできる。

なぜ A*A を見みるかというと、任意にんいの x に対たいして

⟨A*Ax,x⟩=⟨Ax,Ax⟩=∥Ax∥2[PARSE ERROR: Undefined("Command(\"ge\")")]0

となるからである。したがって A*A はエルミート行列ぎょうれつHermitian matrixかつ非負定値ひふていちであり、固有値こゆうちeigenvalueは 0 以上いじょうの実数じっすうreal numberになる。この固有値こゆうちeigenvalueの平方根へいほうこんが特異値とくいちsingular valueである。

ATA=VΛVT

複素ふくそcomplexの場合ばあいは

A*A=VΛV*

である。この固有値こゆうちeigenvalue λi は非負ひふであり、σi=λi が特異値とくいちsingular valueになる。

data/lecture/math/linear-algebra/symmetric-matrices-and-orthogonal-diagonalization.lecture.n.md data/lecture/math/linear-algebra/complex-inner-products-and-unitary-matrices.lecture.n.md

4直感的ちょっかんてきな説明せつめい

特異値分解とくいちぶんかいsingular value decompositionSVDは、行列ぎょうれつmatrix A の作用さようを

直交変換⟶軸方向の伸縮⟶直交変換

に分解ぶんかいする。直交変換ちょっこうへんかんは長ながさと角度かくどを保存ほぞんし、Σ だけが長ながさを変更へんこうする。したがって特異値とくいちsingular valueは、行列ぎょうれつmatrixが各主方向かくしゅほうこうをどれだけ伸縮しんしゅくするかを表あらわす。

5厳密げんみつな説明せつめい

5.11. ATA または A*A から右特異みぎとくいベクトルを得える

実行列じつぎょうれつでは ATA が実対称行列じつたいしょうぎょうれつである。したがって正規直交せいきちょっこう固有ベクトルeigenvector v1,[PARSE ERROR: Undefined("Command(\"dots\")")],vn を選択せんたくできる。

ATAvi=σi2vi

である。この vi が右特異みぎとくいベクトルである。複素行列ふくそぎょうれつでは A*A を用もちい、

A*Avi=σi2vi

と記述きじゅつする。この変更へんこうにより、定義ていぎの A=UΣV* と導出どうしゅつの記法きほうが整合せいごうする。

5.22. 左特異ひだりとくいベクトルを構成こうせいする

σi>0 のとき

ui=Aviσi

と定義ていぎする。この ui は互たがいに直交ちょっこうorthogonalし、長ながさ 1 である。これを補完ほかんして Rm の正規直交基底せいきちょっこうきていorthonormal basisにすると、U が得えられる。

左特異ひだりとくいベクトルは AAT からも特徴付とくちょうづけられる。実行列じつぎょうれつでは

AATui=σi2ui

であり、複素ふくそcomplex行列ぎょうれつmatrixでは

AA*ui=σi2ui

である。つまり、ATA または A*A は入力側にゅうりょくがわの主方向しゅほうこうを与あたえ、AAT または AA* は出力側しゅつりょくがわの主方向しゅほうこうを与あたえる。

5.33. 階数かいすうrankとの関係かんけい

非零特異値ひぜろとくいちの個数こすうは A の階数かいすうrankに等ひとしい。

[PARSE ERROR: Undefined("Command(\"boxed\")")]rank(A)=#{i∣σi>0}

小ちいさい特異値とくいちsingular valueは、行列ぎょうれつmatrixが情報じょうほうを強つよく圧縮あっしゅくする方向ほうこうを示しめす。

5.44. コンパクト SVD と基本部分空間きほんぶぶんくうかん

A の階数かいすうrankを r とし、正せいの特異値とくいちsingular valueだけを残のこすと

A=UrΣrVrT

と表示ひょうじできる。これをコンパクト SVDCompact SVDという。複素ふくそcomplexの場合ばあいは Vr* を用もちいる。

この表示ひょうじでは、Ur の列れつcolumnが Col(A) の正規直交基底せいきちょっこうきていorthonormal basisを与あたえ、Vr の列れつcolumnが Row(A) の正規直交基底せいきちょっこうきていorthonormal basisを与あたえる。さらに、零特異値ぜろとくいちに対応たいおうする右特異みぎとくいベクトルは ker(A) を、零特異値ぜろとくいちに対応たいおうする左特異ひだりとくいベクトルは ker(AT) または ker(A*) を記述きじゅつする。

5.55. 低階数近似ていかいすうきんじへの接続せつぞく

特異値とくいちsingular valueを大おおきい順じゅんに並ならべ、上位じょうい k 個こだけを残のこすと

Ak=∑i=1kσiuiviT

を得える。複素ふくそcomplexの場合ばあいは vi* を用もちいる。Eckart-Young の定理ていりにより、Ak は階数かいすうrank k 以下いかの行列ぎょうれつmatrixの中なかで A に最もっとも近ちかい近似きんじを与あたえる。

∥A-Ak∥F=σk+12+⋯+σr2,∥A-Ak∥2=σk+1

である。この事実じじつにより、SVD は分解ぶんかいの存在そんざいだけでなく、圧縮あっしゅくや雑音除去ざつおんじょきょの基礎きそにもなる。

6具体例ぐたいていれい

A=(3001)

では、すでに軸方向じくほうこうの伸縮しんしゅくが分離ぶんりされている。したがって

U=I,Σ=(3001),V=I

とでき、特異値とくいちsingular valueは 3,1 である。

一般いっぱんの行列ぎょうれつmatrixでは、まず VT が入力空間にゅうりょくくうかんinput spaceを主方向しゅほうこうへ回転かいてんし、Σ が伸縮しんしゅくし、U が出力空間しゅつりょくくうかんへ配置はいちする。

非対角ひたいかくな例れいとして、

A=(1101)

を考かんがえる。このとき

ATA=(1112)

であり、その固有値こゆうちeigenvalueは

λ±=3±52

である。したがって特異値とくいちsingular valueは

σ±=3±52

となる。A 自身じしんの固有値こゆうちeigenvalueは 1 だけであるが、特異値とくいちsingular valueは A が長ながさをどれだけ伸のばすかを記録きろくする。SVD は固有値こゆうちeigenvalueの代替だいたいではなく、別べつの、より幾何的きかてきで安定あんていした量りょうquantityを測はかる。

7別べつの観点かんてん

特異値分解とくいちぶんかいsingular value decompositionSVDは、最小二乗法さいしょうにじょうほうleast squares methodと擬似逆行列ぎじぎゃくぎょうれつpseudoinverse matrixの基礎きそである。A が正則せいそくでなくても、非零特異値ひぜろとくいちの方向ほうこうだけを反転はんてんすることで、最小さいしょうノルム解かいを定義ていぎできる。

8判定基準はんていきじゅん

  • 特異値とくいちsingular valueは ATA の固有値こゆうちeigenvalueの平方根へいほうこんである。
  • 非零特異値ひぜろとくいちの個数こすうは階数かいすうrankである。
  • 特異値分解とくいちぶんかいsingular value decompositionSVDは長方行列ちょうほうぎょうれつにも適用てきようできる。
  • 小ちいさい特異値とくいちsingular valueは情報じょうほうの圧縮あっしゅくや数値的不安定性すうちてきふあんていせいと関係かんけいする。
  • コンパクト SVD は、列空間れつくうかんcolumn space・行空間ぎょうくうかんrow space・核かくkernelを同時どうじに記述きじゅつする。

9どこまで成立せいりつするか

特異値分解とくいちぶんかいsingular value decompositionSVDは任意にんいの実行列じつぎょうれつ・複素行列ふくそぎょうれつに成立せいりつする。固有値分解こゆうちぶんかいとは異ことなり、正方行列せいほうぎょうれつsquare matrixや対角化可能性たいかくかかのうせいを前提ぜんていにしない。

10存在定理そんざいていりと証明しょうめいの骨格こっかく

任意にんいの m×n 実行列じつぎょうれつ A について、直交行列ちょっこうぎょうれつorthogonal matrix U,V と非負ひふの対角成分たいかくせいぶんをもつ m×n 行列ぎょうれつ Σ が存在そんざいして

A=UΣVT

と書かける。複素行列ふくそぎょうれつcomplex matrixでは

A=UΣV*

である。

証明しょうめいの骨格こっかくは ATA または A*A のスペクトル定理ていりspectral theoremである。A*A はエルミート行列ぎょうれつHermitian matrixであり、

⟨A*Ax,x⟩=∥Ax∥2[PARSE ERROR: Undefined("Command(\"ge\")")]0

なので非負定値ひふていちである。したがって正規直交せいきちょっこう固有ベクトルeigenvector vi と非負ひふの固有値こゆうちeigenvalue λi を持もつ。σi=λi と置おき、σi>0 について

ui=Aviσi

と定義ていぎする。すると

⟨ui,uj⟩=1σiσj⟨Avi,Avj⟩=1σiσj⟨A*Avi,vj⟩=σi2σiσj⟨vi,vj⟩

より ui は互たがいに直交ちょっこうorthogonalし、長ながさ 1 になる。残のこりの ui を補完ほかんすれば U が得えられる。この構成こうせいが SVD の存在そんざいを説明せつめいする。

data/lecture/math/linear-algebra/symmetric-matrices-and-orthogonal-diagonalization.lecture.n.md

11基本部分空間きほんぶぶんくうかんの対応たいおう

SVD は、4 つの基本部分空間きほんぶぶんくうかんを同時どうじに整理せいりする。

空間くうかんSVD での記述きじゅつ
Col(A)正せいの特異値とくいちsingular valueに対応たいおうする左特異ひだりとくいベクトル ui が張はる
Row(A)正せいの特異値とくいちsingular valueに対応たいおうする右特異みぎとくいベクトル vi が張はる
ker(A)σi=0 に対応たいおうする vi が張はる
ker(AT) または ker(A*)σi=0 に対応たいおうする ui が張はる

このため SVD は、階数かいすうrankだけでなく、解かいが失うしなわれる方向ほうこう、列空間れつくうかんへの射影しゃえいprojection、最小二乗解さいしょうにじょうかいを同時どうじに記述きじゅつできる。

12別べつの見方みかた

SVD は、最小二乗法さいしょうにじょうほうleast squares methodと擬似逆行列ぎじぎゃくぎょうれつpseudoinverse matrixの基礎きそでもある。A が可逆かぎゃくinvertibleでなくても、正せいの特異値とくいちsingular valueをもつ特異方向とくいほうこうsingular directionは逆向ぎゃくむきに戻もどせる一方いっぽう、σi=0 の方向ほうこうは失うしなわれた情報じょうほうとして扱あつかう。

13計算例けいさんれい:非対角ひたいかくな 2×2 行列ぎょうれつ

A=(1101)

を考かんがえる。このとき

ATA=(1112)

であり、固有値こゆうちeigenvalueは

λ±=3±52

である。したがって特異値とくいちsingular valueは

σ±=3±52

である。ここで A 自身じしんの固有値こゆうちeigenvalueは 1 の重複ちょうふくであるが、特異値とくいちsingular valueは ATA の平方根へいほうこんとして別べつの量りょうを測はかっている。つまり SVD は「固有値こゆうちeigenvalueの代替だいたい」ではなく、入力方向にゅうりょくほうこうの長ながさがどれだけ伸のびるかを測はかる分解ぶんかいである。

14判定基準はんていきじゅん

  • 特異値とくいちsingular valueは ATA または A*A の固有値こゆうちeigenvalueの平方根へいほうこんである。
  • 正せいの特異値とくいちsingular valueの個数こすうが階数かいすうrankである。
  • SVD は長方行列ちょうほうぎょうれつにも適用てきようできる。
  • 小ちいさい特異値とくいちsingular valueは、圧縮あっしゅくや数値的すうちてきな不安定性ふあんていせいを示しめすことがある。
  • コンパクト SVD は、列空間れつくうかんcolumn space、行空間ぎょうくうかんrow space、核かくを同時どうじに記述きじゅつする。

15低階数近似ていかいすうきんじの意味いみと注意ちゅうい

Eckart-Young の定理ていりは、上位じょうい k 個この特異値とくいちsingular valueだけを残のこした

Ak=∑i=1kσiuivi*

が、階数かいすう k 以下いかの行列ぎょうれつmatrixの中なかで A に最もっとも近ちかいことを主張しゅちょうする。ただし、小ちいさい特異値とくいちsingular valueを切きることは情報じょうほうを捨すてることでもある。ノイズ除去じょきょや圧縮あっしゅくでは有効ゆうこうだが、小ちいさい特異値とくいちsingular valueの方向ほうこうが意味いみのある信号しんごうを含ふくむ場合ばあいには注意ちゅういが必要ひつようである。

16適用範囲てきようはんいと限界げんかい

SVD は、実じつまたは複素ふくそのすべての行列ぎょうれつmatrixに存在そんざいする。固有値分解こゆうちぶんかいeigenvalue decompositionと違ちがい、正方せいほうであることや対角化可能たいかくかかのうdiagonalizableであることを仮定かていしない。ただし、特異値とくいちsingular valueだけでは符号ふごう、位相いそう、固有こゆうベクトルeigenvectorの振ふる舞まいは捉とらえられない。特異値とくいちsingular valueが記述きじゅつするのは長ながさの伸のびである。

17最終形さいしゅうけい

[PARSE ERROR: Undefined("Command(\"boxed\")")]A=UΣVT
[PARSE ERROR: Undefined("Command(\"boxed\")")]A=UΣV*(complexcase)
[PARSE ERROR: Undefined("Command(\"boxed\")")]σi=λi(ATA)
[PARSE ERROR: Undefined("Command(\"boxed\")")]rank(A)=#{i:σi>0}
[PARSE ERROR: Undefined("Command(\"boxed\")")]Ak=∑i=1kσiuiviT

18一言ひとことでいうと

  • 特異値分解とくいちぶんかいsingular value decompositionSVDは、任意にんいの行列ぎょうれつmatrixを直交変換ちょっこうへんかんと軸方向じくほうこうの伸縮しんしゅくへ分解ぶんかいする標準形ひょうじゅんけいである。
raw .n.md をコピー
loc をコピー (filepath:line ~ line)
copy share link
copy encoded share link
path をコピー
copy share link
copy encoded share link
copy share link
copy encoded share link
タブを全て閉じる