在SVD的基礎上,深入了解PCA。
本文涉及到仿射變換、SVD等多個概念,可以先看參考文獻,本文作為複習了解之用。
基本思想
降維是機器學習中很常見的一種思維方式,一般來說,可以通過線性投影和非線性映射進行。
PCA是一種簡單的線性映射,當考慮降維時,我們一般有兩種思路:
- 找到d-維仿射變換子空間,在合适的投影下,新的投影點與原先的投影點就接近。也就是說,在新投影下能最大限度的保持原資料的特征。
- 找到d-位投影,盡可能多的保留資料的變動(方差)。
我們将會從這兩個思路分别進行求解,可以看到,這兩個目标實際上等價。
定義
首先定義一些常用的量
樣本均值
μn=1n∑n=1nxi μ n = 1 n ∑ n = 1 n x i
樣本協方差
∑n=1n−1∑i=1n(xi−μi)(xi−μi)T ∑ n = 1 n − 1 ∑ i = 1 n ( x i − μ i ) ( x i − μ i ) T
其中 xi x i 為資料樣本(列向量),是以可以得到 X=(x1,...,xn) X = ( x 1 , . . . , x n ) 為 p×n p × n 矩陣,是以,寫成矩陣的形式為
∑n=1n−1(X−μn1)(X−μ1)T ∑ n = 1 n − 1 ( X − μ n 1 ) ( X − μ 1 ) T
直覺了解
首先,讓我們用不是很嚴格的數學公式來直覺了解PCA。
我們很常見的思想是使得協方差矩陣的方差盡可能大(保留更多有效資訊),而讓協方差盡可能的小(防止資料備援),在協方差矩陣中則表現為對角矩陣 D D 。
我們令經過d-維基VV變換後的新坐标為 y y ,是以可得:
D=yyT=Vx(Vx)T=VxxTVT=V∑nVT(1)(2)(3)(4)(1)D=yyT(2)=Vx(Vx)T(3)=VxxTVT(4)=V∑nVT
這個式子有着特殊的含義。其中, D D 是新的協方差矩陣(對角矩陣),而∑n∑n則是原始資料的協方差矩陣, V V 則是d-維正交基。
是以,這個式子可以了解為:對協方差矩陣∑n∑n,找一個 V V ,使得其轉變為對角矩陣。而協方差矩陣是實對稱矩陣,一定能夠對角化,證明了這一點的完備性。
是以,我們隻需要對協方差矩陣進行對角化,然後求出其對應的特征向量,即為新坐标下的正交基VV。對 y=Vx y = V x 進行坐标變換則求到了新坐标下的PCA坐标。
PCA是最佳的仿射變換拟合
我們要對每個近似 xi x i 近似(由仿射變換的定義):
xi≈μ+∑j=1dβjivj x i ≈ μ + ∑ j = 1 d β i j v j
其中, Vp×d=(v1,..,vd) V p × d = ( v 1 , . . , v d ) 為d-維子空間中的标準正交基, μ∈Rp μ ∈ R p 是平移量, βj β j 為在基 vj v j 下的系數, βij β j i 為 βj β j 的第 i i 個分量那麼上式可以寫成:
xi=μ+Vβixi=μ+Vβi
由于其中的 V V 由标準正交基組成,是以VTV=1VTV=1.
用平方誤差來衡量拟合效果,即要求出:
minμ,V,βi.VTV=1∑i=1n||xi−(μ+Vβi)||2 min μ , V , β i . V T V = 1 ∑ i = 1 n | | x i − ( μ + V β i ) | | 2
求 μ μ 的最優值
首先對 μ μ 求偏導,可以得到:
∑i=1n(xi−(μ+Vβi))=0⇒(∑i=1nxi)−nμ−V(∑i=1nβi)=0 ∑ i = 1 n ( x i − ( μ + V β i ) ) = 0 ⇒ ( ∑ i = 1 n x i ) − n μ − V ( ∑ i = 1 n β i ) = 0
由于 μ μ 和 β β 之間沒有關系,不失一般性我們可以假設 ∑βi=0 ∑ β i = 0 ,是以可以解出:
μ∗=1n∑i=1nxi=μn μ ∗ = 1 n ∑ i = 1 n x i = μ n
是以, μ μ 的最優值就是樣本均值 μ∗ μ ∗ 。
這樣,我們可以将原始式子化簡為:
minμ,V,βi.VTV=1∑i=1n||xi−(μn+Vβi)||2 min μ , V , β i . V T V = 1 ∑ i = 1 n | | x i − ( μ n + V β i ) | | 2
求 βi β i 的最優值
注意到, βi β i 之間是無耦合的影響的最小值,是以,對于原始式子,可以分别解出 βi β i :
minβi||xi−μn−Vβi||2=minβi||xi−μn−∑j=1dβjivj||2 min β i | | x i − μ n − V β i | | 2 = min β i | | x i − μ n − ∑ j = 1 d β i j v j | | 2
由于 V V 是标準正交基,對βiβi求偏導:
βji=vTj(xi−μn)⇒βi=VT(xi−μn) β i j = v j T ( x i − μ n ) ⇒ β i = V T ( x i − μ n )
是以式子可以化簡為:
minVTV=1∑i=1n||(xi−μn)−VVT(xi−μn)||2 min V T V = 1 ∑ i = 1 n | | ( x i − μ n ) − V V T ( x i − μ n ) | | 2
求 V V 的最優值
由||x||2=<x,x>||x||2=<x,x>和 VTV=1 V T V = 1 ,可以得到:
||(xi−μn)−VVT(xi−μn)||2=[(xi−μn)−VVT(xi−μn)]T[(xi−μn)−VVT(xi−μn)]=(xi−μn)T(xi−μn)−(xi−μn)TVVT(xi−μn)−(xi−μn)TVVT(xi−μn)+(xi−μn)TVVTVVT(xi−μn)=2(xi−μn)T(xi−μn)−2(xi−μn)TVVT(xi−μn)(5)(6)(7) (5) | | ( x i − μ n ) − V V T ( x i − μ n ) | | 2 = [ ( x i − μ n ) − V V T ( x i − μ n ) ] T [ ( x i − μ n ) − V V T ( x i − μ n ) ] (6) = ( x i − μ n ) T ( x i − μ n ) − ( x i − μ n ) T V V T ( x i − μ n ) − ( x i − μ n ) T V V T ( x i − μ n ) + ( x i − μ n ) T V V T V V T ( x i − μ n ) (7) = 2 ( x i − μ n ) T ( x i − μ n ) − 2 ( x i − μ n ) T V V T ( x i − μ n )
由于 (xi−μn)T(xi−μn)與 ( x i − μ n ) T ( x i − μ n ) 與 V$無關,是以等價于求:
maxVTV=1∑i=1n(xi−μn)TVVT(xi−μn) max V T V = 1 ∑ i = 1 n ( x i − μ n ) T V V T ( x i − μ n )
由矩陣的迹的性質可得:
yTy=Tr(yyT) y T y = T r ( y y T )
化簡原式可得:
∑i=1n(xi−μn)TVVT(xi−μn)=∑i=1n[VT(xi−μn)]T[VT(xi−μn)] ∑ i = 1 n ( x i − μ n ) T V V T ( x i − μ n ) = ∑ i = 1 n [ V T ( x i − μ n ) ] T [ V T ( x i − μ n ) ]
是以,将原始化簡的式子等價于求:
maxVTV=1∑i=1n(xi−μn)TVVT(xi−μn)=maxVTV=1(n−1)Tr(VT∑nV) max V T V = 1 ∑ i = 1 n ( x i − μ n ) T V V T ( x i − μ n ) = max V T V = 1 ( n − 1 ) T r ( V T ∑ n V )
即:
maxVTV=1Tr(VT∑nV) max V T V = 1 T r ( V T ∑ n V )
即,我們最後要求的标準正交基為使得協方差矩陣的迹最大;這等價于求協方差矩陣的特征值,并按照從大到小排列。
PCA保留最大方差
我們的第二個目标是要保留資料最大變化的d-維投影。可以寫出全方差為:
TotalVariance(Xn)=1n∑||xi−μn||2=1n∑i=1n||xi−1n∑i=1nxi||2 T o t a l V a r i a n c e ( X n ) = 1 n ∑ | | x i − μ n | | 2 = 1 n ∑ i = 1 n | | x i − 1 n ∑ i = 1 n x i | | 2
是以,我們要向最大化投影以後的方差,即 VTxi V T x i 的方差:
maxVTV=1∑i=1n||VTxi−1n∑i=1nVTxi||2 max V T V = 1 ∑ i = 1 n | | V T x i − 1 n ∑ i = 1 n V T x i | | 2
根據之前的結論:
∑i=1n||VTxi−1n∑i=1nVTxi||2=∑i=1n||VT(xi−μn)||2=(n−1)Tr(VT∑nV) ∑ i = 1 n | | V T x i − 1 n ∑ i = 1 n V T x i | | 2 = ∑ i = 1 n | | V T ( x i − μ n ) | | 2 = ( n − 1 ) T r ( V T ∑ n V )
表明主成分 V V 可以通過下式解決:
maxVTV=1Tr(VT∑nV)maxVTV=1Tr(VT∑nV)
這樣,兩種不同的度量方法就等價求協方差矩陣的前 d d <script type="math/tex" id="MathJax-Element-65">d</script>個特征值。
參考資料
- 如何通俗地講解「仿射變換」這個概念
- 奇異值的實體意義是什麼
-
Tutorial on Principal Component Analysis