本記事は以下の過去記事の内容を用います.
主成分分析の基礎をまとめる - エンジニアを目指す浪人のブログ
特異値分解の導出と,左特異ベクトル,特異値,右特異ベクトルとは何かについて考える - エンジニアを目指す浪人のブログ
特異値分解による行列の低ランク近似の基礎をまとめる - エンジニアを目指す浪人のブログ
レイリー商についての定理を証明する - エンジニアを目指す浪人のブログ
主成分分析(principal component analysis ; PCA)が特異値分解(singular value decomposition ; SVD)に帰着することについて,色々調べてみて考えをまとめることができたので,その内容を整理しておくことにしました.
=================================================================================
目次
1. 主成分分析の概略
1.1. 主成分分析と結合係数(固有ベクトル)
1.2. データ行列の近似
2. 特異値分解の概略
2.1. 特異値分解と右特異ベクトル
2.2. 低ランク近似
3. 主成分分析と特異値分解の関係
3.1. 結合係数(固有ベクトル)と右特異ベクトル
3.2. 主成分によるデータ行列の近似と特異値分解によるデータ行列の低ランク近似
[ 1. 主成分分析の概略 ]
冒頭の過去記事(主成分分析の基礎)を参照し,主成分分析について本記事の議論に必要な内容に絞り簡略化した説明をします.記号は参照する過去記事と同じものを使用しています.
[ 1.1. 主成分分析と結合係数(固有ベクトル) ]
個の変数についてそれぞれ 個のサンプルがある場合を考え,測定値を とします.議論を簡単にするために,各変数についてその平均
(1.1.1)
からの偏差
(1.1.2)
を導入します. 行列であるデータ行列 と,データの各サンプルを意味する 個の測定データベクトル を定義します.
(1.1.3)
分散共分散行列は以下です.
(1.1.4)
のすべての固有値は相異なると仮定すると, がエルミート行列であることから の固有ベクトル は の正規直交基底にとることができます.また,それら固有ベクトルに対応する固有値を のように順序付けしておきます.ここでの固有値,固有ベクトルの議論の詳細は冒頭の過去記事(主成分分析の基礎)にあるので省略します.
主成分分析では,主成分得点の分散を最大化する以下のような結合係数 を求めることになります.(冒頭の過去記事(主成分分析の基礎)(4.1)(4.2)(4.3)(5.3)(5.4)(5.5)(5.7)(5.8)(5.9)を別表現にまとめたものです)
(1.1.5)
(1.1.6)
これらは冒頭の過去記事(レイリー商)定理 4.2.2(Rayleigh).を繰り返し用いることにより以下となります.(冒頭の過去記事(主成分分析の基礎)(4.3)(5.5)(5.9)をまとめたものです)
(1.1.7)
以上のことから,主成分分析は分散共分散行列の固有値問題に帰着し,結合係数は固有ベクトルに一致し, の正規直交基底でもあることがわかります.
(結果的に)(1.1.5)(1.1.6)はそれぞれ以下の表現と同値になります.
(1.1.5)'
(1.1.6)'
[ 1.2. データ行列の近似 ]
主成分分析における,データ行列 の 個の主成分による近似 は以下です. は通常の内積です.(冒頭の過去記事(主成分分析の基礎)(6.2)の行列表現です)
(1.2.1)
(※)
[ 2. 特異値分解の概略 ]
冒頭の過去記事(特異値分解の導出)(特異値分解による行列の低ランク近似)を参照し,特異値分解について本記事の議論に必要な内容に絞り簡略化した説明をします.記号は参照する過去記事と同じものを使用しています.
[ 2.1. 特異値分解と右特異ベクトル ]
特異値分解とは, 行列 をその最良の 次元部分空間すなわち行空間の正規直交基底 を用いて以下のように展開することです. は通常の内積です.(冒頭の過去記事(特異値分解の導出)(6.4)の一部の再掲です)
(2.1.1)
右特異ベクトル は の行空間の正規直交基底であり,点の集合 についての最良の部分空間を探すために への射影の長さを最大化するという以下のような意味があります. はユークリッドノルムです.(冒頭の過去記事(特異値分解の導出)(2.5)(2.7)の再掲です)
(2.1.2)
(2.1.3)
[ 2.2. 低ランク近似 ]
特異値分解による低ランク近似とは,行列 のある までの による展開を考えるために 以降の項を打ち切り,(同じく) 行列 で以下のように近似することです.(冒頭の過去記事(特異値分解による行列の低ランク近似)(1.2)の再掲です)
(2.2.1)
(※※)
[ 3. 主成分分析と特異値分解の関係 ]
主成分分析と特異値分解の関係について,2つの観点で考えていきます(両者は密接に関連しています).
[ 3.1. 結合係数(固有ベクトル)と右特異ベクトル ]
主成分得点の分散を最大化する結合係数を求めるために分散共分散行列 の(長さ1の)固有ベクトルを求めることと,点の集合 についての最良の部分空間を得るためにデータ行列 の右特異ベクトルを求めることは同じである,という以下の事実が成り立ちます.
'--------------------------------------------------------------------------------------------------------------------------------------------
事実.1
主成分分析の結合係数,すなわち分散共分散行列 の長さ1の固有ベクトルと,データ行列 の右特異ベクトルは同じものである.
証明.
主成分分析の結合係数(1.1.5)'(1.1.6)'それぞれについて以下が成り立つ.
(3.1.1)
(1.1.4)
(3.1.2)
(3.1.1)と同様
(3.1.1)(3.1.2)はそれぞれ(2.1.2)(2.1.3)で としたものに等しい.(証明終わり)
'--------------------------------------------------------------------------------------------------------------------------------------------
以上のことは,ある行列 の(特異値分解による)右特異ベクトルの列は行列 の長さ1で互いに直交する固有ベクトルに等しい,という事実(たとえば文献[1][3]にあります)の応用になっています.
[ 3.2. 主成分によるデータ行列の近似と特異値分解によるデータ行列の低ランク近似 ]
以下の事実が成り立ちます.
'--------------------------------------------------------------------------------------------------------------------------------------------
事実.2
主成分によるデータ行列 の近似と特異値分解によるデータ行列 の低ランク近似は同じものである.
証明.
事実.1より,(1.2.1)(※)は(2.2.1)(※※)で としたものに等しい.(証明終わり)
'--------------------------------------------------------------------------------------------------------------------------------------------
したがって,「主成分分析における主成分得点の分散を最大化するように定めた低次元空間と,特異値分解における最良の(低次元)部分空間は同じものである」ことと,「主成分分析,あるいは特異値分解による低ランク近似とは,データ行列 で表現される点の集合 をその(同一の)低次元空間に射影した点の集合で代用することである」ことがわかります(1つめの主張は事実.1からもいえます).
=================================================================================
以上,主成分分析と特異値分解の関係について考えてみました.
参考文献
[1] Columbia University Daniel Hsu先生のノート http://www.cs.columbia.edu/~djhsu/AML/lectures/notes-pca.pdf
[2] Stanford University Gregory Valiant先生らのノート http://theory.stanford.edu/~tim/s15/l/l9.pdf
[3] Laub, A.J. (2004), Matrix Analysis for Scientists and Engineers, Society for Industrial and Applied Mathematics.
[4] Mathematics Stack Exchange https://math.stackexchange.com/questions/320220/intuitively-what-is-the-difference-between-eigendecomposition-and-singular-valu
[5] Wikipedia Principal component analysis のページ https://en.wikipedia.org/wiki/Principal_component_analysis
おまけ
[3] へのリンク https://epdf.tips/matrix-analysis-for-scientists-and-engineers6eadd0270d0930c60f36adaea67057c230700.html