PCA 演算法總結
對於PCA演算法,《Foudations of ML》、《Understanding ML》、周老師的《機器學習》以及《Data Mining》、PRML 和 花書《深度學習》甚至統計學的多元統計分析課本中的出發角度和推導方式都各不相同。
周老師的《機器學習》書提供了從最大重構性和最大可分性的兩種角度出發的推導。
個人認為,最正統的方式應該是從最大可分性的角度出發,即尋找投影方向,使得投影后的樣本點的方差儘可能大,在這種推導方式下,需要注意方差的計算,是需要用到樣本均值的。
若僅僅從最大重構性角度出發,目的是求解問題:
\[\text{argmin}_{P}}\| X - PP^TX\|_F \quad \]
其中 $P$ 為 $n\times k$ 階 列直交陣
實際上是不需要對樣本進行中心化的(當然中心化也沒錯), 其解為對樣本scatter matrix $XX^T$ 做特徵值分解,取其前$k$大特徵值對應的特徵向量作為投影矩陣。 注意這裡的 $XX^T$ 與協方差矩陣不等價(除非$X$是已經中心化過的資料),參見 《Understanding ML》一書的相應章節。此時的 PCA 可以保證投影后的點與原始點儘可能地靠近,但不再具有投影后的點方差儘可能大的性質,(當然也有可能這樣方式得到的結果並不稱為 ``PCA'' 演算法),其實這種方式得到的結果相當於 trancated SVD 的結果。
PRML 也有從最大重構性的角度出發的推導,不過其是求解在平移和投影的兩種操作下,投影點逼近原始資料點的問題,即其求解的是:
\[\text{argmin}_{b, P\text{為}n\times k \text{列直交陣}}\| (X -\textbf{1}b^T)- PP^T(X -\textbf{1}b^T)\|_F\]
對於此問題,其解為滿足 $b$ 為樣本均值點,$P$ 為 樣本協方差矩陣$\frac{1}{n}X(I-\frac{1}{n}\textbf{1}\textbf{1}^T)X^T$ 的前$k$大特徵值對應的特徵向量構成的矩陣。
另外花書《深度學習》提供了另一種推導方式,即座標變換(投影)後的資料點的各個維度資料間的 correlation 儘可能的小,其目的是消除各維資料間的correlation,從而儘可能的減少冗餘資料。恰好此方式與最大可分性,即降維後的資料的方差儘可能大重合。
在實際使用中,通常是使用中心化版本的 PCA,先對資料進行中心化,$X\to X_C$, 然後再對$X_C$執行PCA 演算法,這樣對於$X_C$來說,投影后的點既滿足了最大可分性, 又有了最大重構性的特點。
先寫到這裡,下次再來補上詳細的推導。