1.例子引入
如圖所示,我們要將兩類點(紅點和藍點)分類,希望能先通過降維之後再分類(直接分肯定也能分開)。那麼我們需要將二維的數據(每個點包含橫座標和縱座標,是二維的)降維到一維直線上的點。
我們可以有多種降維的策略,通過將二維平面上的點映射到一維直線上,如上圖所示就是兩種映射方法:左邊是投影到向量u1 上,右邊是投影到向量u2 上。顯然左邊的投影能讓數據分的更加散,能更好的進行分類;而右邊的投影使得數據比較集中,不利於分類;所以左邊的投影效果要比右邊的要好。
PCA的核心思想就是對數據進行降維,並且使得降維後的樣本相對之間比較分散,也就是降維後的樣本的方差儘可能大;並且還要保證降維後的數據與原來樣本的差異性儘可能的小,即降維後的數據的均方誤差儘可能的小。但這種樣本儘可能的分散也不是絕對的好,這也意味着PCA並不是萬能的,僅僅對某些類型的數據有效,具體是哪一類我也忘了(sorry)。
2.PCA
主成分分析(Principal Component Analysis, PCA),將原有衆多具有一定相關性的指標重新組合成一組少量互相無關的綜合指標 。將原始的數據由高維度轉化爲低維度,目標有兩個:1.使得降維後的樣本的方差儘可能的大;2.使得降維後的數據的均方誤差儘可能的小。
最大方差思想:使用較少的數據維度保留住較多的原數據特性
假設將D 維數據集{xn},n=1,2,...,N 降爲M 維,M<D ,其中N 表示總樣本數。
首先考慮M=1 ,即降爲1維,定義這個空間的投影方向爲D 維向量u1 ,出於方便且不失一般性,令uT1u1=1 ,即爲該空間的基向量(單位長度爲1)。每一個數據點xn 在新空間中表示爲標量uT1xn ,類似於二維中的座標。樣本均值在新的空間中表示爲uT1x¯ ,其中x¯=1N∑Nn=1xn .
現在我們要讓降維後的樣本的方差儘可能的大,即:
1N∑n=1N{uT1xn−uT1x¯}2=uT1Su1最大化
其中
S=1N∑Nn=1(xn−x¯)(xn−x¯)T ,是原樣本的方差。
我們的目標是最大化uT1Su1,s.t.uT1u1=1 ,帶約束條件的求極值問題要用朗格朗日乘子法,構造拉格朗日函數如下:
L(u1,λ1)=uT1Su1+λ1(1−uT1u1)
其中
λ1 表示拉格朗日乘子,是一個正數。對
u1 求導置0得,
Su1=λ1u1 ,也就是
u1 是
S 的特徵向量,進一步得到
u1Su1=λ1 ,所以要讓
u1Su1 最大,也就是讓
λ1 ,而
λ1 是特徵向量
u1 對應的特徵值,所以我們只要取最大的特徵值對應的特徵向量就能保證
u1Su1 最大(這裏我們討論的是降到一維的情況)。
考慮更一般的情況(M>1),新空間中數據方差最大的最佳投影方向由協方差矩陣S的M個特徵向量{u1,...,uM} 定義,其分別對應M個最大的特徵值{λ1,...,λM} 。首先獲得方差最大的1維,生成該維的補空間;繼續在補空間中獲得方差最大的1維,生成新的補空間;依次循環下去得到M維的空間。簡而言之就是要獲取S 的前M 個最大的特徵值對應的特徵向量{u1,...,uM} 進行降維。例如某D 維樣本X={x1,...,xD} ,用前M 個特徵向量降維後的表示爲{uT1X,...,uTMX} ,變爲了M 維。
最小均方誤差思想:使原數據與降維後的數據( 在原空間中的重建) 的誤差最小
定義一組正交的D維基向量{u1,...,uD} ,由於基是完全的,原樣本中每個數據點都可以表示爲基向量的線性組合,即:
xn=∑i=DNαniui公式2.1
即用一組新的
D 維基向量來表示原
D 維樣本
xn ,相當於做了一個座標變換:
{xn1,...,xnD}⟶{u1,...,un}{αn1,...,αnD}
⇒anj=xTnuj公式2.2
將公式2.2帶入到公式2.1中,可以得到:
xn=∑n=1D(xTnui)ui公式2.3
假設在新生成的D維度空間中,前M維表示樣本獨特的信息,後(D-M)維表示樣本間共享的信息,則任意一個樣本進行座標變換後,生成的樣本可以用
x~n 來表示:
x~n=∑i=1Mzniui+∑i=M+1Dbiui公式2.4
因爲前
M 維是表示樣本獨特的信息,每個樣本在前
M 維向量的比重是不一樣的,用
zni 來衡量;而對於後
D−M 維,因爲是共享信息,所以每個樣本對應的參數是相同的,用
bi 來表示。不同的變換對樣本
xn 的表示如下:
假設源樣本Xn 的D維表示爲:(xn1,xn2,...,xnD)(表示1)
經過向量ui 的座標變換表示爲:((xTn1u1)u1,(xTn2u2)u2),...,(xTnDuD)uD)(表示2)
而再用M維變量採用獨特的和共享的信息表示爲:
(zn1u1,...,znMuM,bMuM,...,bDuD)(表示3)
進行座標變換是爲了能夠找到最佳的適合用來降維的方向,而分成獨特信息和共享信息是爲了方便只保留獨特信息進行降維。所以我們的目標是要讓座標變換後的數據和分成獨特信息和共享信息的數據之間信息損失最小,這樣就可以解除ui ,即那個適合降維的方向。
所以我們的目標是要讓變換後的信息和原樣本信息損失最少,即讓
J=1N∑n=1N||xn−x~n||2公式2.5
其中
xn 和
x~n 分別表示經過座標變換後的數據和經過區分獨特信息和共享信息處理後的數據。將
(表示2) 和
(表示3) 帶入,可得
J=1N∑n=1N⎛⎝∑j=1M(xTnjuj−znj)∗uj+∑k=M+1D(xTnkuk−bk)uk⎞⎠2
所以我們需要找到使得
J 最小的
znj 和
bk ,分別對二者求導 並置爲0:
∂J∂znj=1N(xnjuj−znj)(−uj)=0
⟹znj=xnjuj=xnuj
最後一步中
xnjuj=xnuj 是因爲
uj 是一組正交基,只與
xn 中第
j 相乘不爲0,所以二者是等價的。
∂J∂bk=1N(xnkuk−bk)(−uk)=0
⟹1N∑n=1NxTnkuk−1N∑n=1Nbk=0
⟹1N∑n=1NxTnuk−1N∑n=1Nbk=0
⟹bk=x¯Tuk
所以最終可以得到znj=xTnuj,j=1,...,M
bj=x¯Tuj,j=M+1,...,D
帶入到公式2.4的x~n 中,然後再計算xn−x~n 有:
xn−x~n=∑i=M+1D{(xn−x¯)Tui}ui
則有:
J=1N∑n=1N∑i=M+1D(xTnui−x¯Tui)2=∑i=M+1DuTiSui
少了
u2i 是因爲
uTiui=1 。所以我們的目標是最小化
Js.t.uTiui=1 ,用拉格朗日乘子法得到:
L(ui,λi)=∑i=M+1DuTiSui+∑i=M+1Dλi(1−uTiui)
求導得:
Sui=λiui⇒uTiSui=λi ,即
ui 是
S 的特徵向量,
λi 爲對應的特徵值。則對應的失真度
J=∑i=M+1Dλi
所以我們要丟棄特徵值相對較少的那些基向量
ui 來進行降維,和前面的最大方差思想結果是一致的。
總之,要保留S 中特徵值相對大的基向量,這樣既能保證降維後的樣本方差最大化;又能保證和原樣本信息之間的損失最小化。