在我們之前分類器的討論中,如SVM、貝葉斯判別等,都假定已給出了特徵向量維數確定的樣本集,其中各樣本的每一維都是該樣本的一個特徵。然而不同的特徵對於分類器設計的影響是不同的,如果將數目很多的測量值不做分析,全部直接用作分類特徵,不但耗時,而且會影響到分類的效果,產生“特徵維數災難”問題。因此,我們需要對特徵進行選擇和提取,即“降維”。
簡介
PCA,全名主成分分析(Principal Component Analysis),又稱爲K-L變換,是一種特徵提取的方法。與簡單地刪掉某n−k個特徵不同,PCA將原來的特徵做正交變換,獲得的每個數據都是原來n個數據的線性組合,然後從新的數據中選出少數幾個,使其儘可能多地反映各類模式之間的差異。而這些特徵間又儘可能相互獨立,則比單純的選擇方法更靈活、更有效。而PCA就是一種適用於任意概率密度函數的正交變換。
PCA的離散展開式
設一連續的隨機實函數x(t),T1≤t≤T2,則x(t)可用已知的正交函數集{ϕj(t),j=1,2,…}的線性組合來展開,即
x(t)=a1ϕ1(t)+a2ϕ2(t)+⋯+ajϕj(t)+⋯=j=1∑∞ajϕj(t),T1≤t≤T2
式中,aj爲展開式的隨機係數,ϕj(t)爲一連續的正交函數,它應滿足,
∫T1T2ϕi(t)ϕ~j(t)={0,if i̸=j,1,if i==j.
其中,ϕ~j(t)爲ϕj(t)的共軛複數式。
將上式寫成離散的正交函數形式,使連續隨機函數x(t)和連續正交函數ϕj(t)在區間T1≤t≤T2內被等間隔採樣爲n個離散點,即,
x(t)ϕj(t)→{x(1),x(2),…x(n)}→{ϕj(1),ϕj(2),…ϕj(n)}
寫成向量形式,
xϕj=(x(1),x(2),…,x(n))T=(ϕj(1),ϕj(2),…,ϕj(n))T
將原展開式取n項近似,有,
x=j=1∑najϕj=Φa,T1≤t≤T2
其中,a爲展開式中隨機係數的向量形式,即
a=(a1,a2,…,an)T
Φ是一n×n的矩陣,
Φ=(ϕ1,ϕ2,…,ϕn)=⎣⎢⎢⎢⎢⎡ϕ1(1)ϕ1(2)…ϕ1(n)ϕ2(1)ϕ2(2)…ϕ2(n)…………ϕn(1)ϕn(2)…ϕn(n)⎦⎥⎥⎥⎥⎤
其中,每一列爲正交函數集中的一個函數,小括號內的序號爲正交函數的採樣點次序。因此,Φ實質上是由ϕj向量組成的正交變換矩陣,它將x變換成a。
正交向量集的確定
在前面的討論中,我們討論了PCA的離散展開式,其實際上就是將原樣本x變換爲a。而變換的重點則是正交向量集Φ的確定。
在直接討論正交向量集Φ之前,我們不妨先看看其他基本參量。設隨機向量x的總體自相關矩陣爲R=E{xxT},由
x=j=1∑najϕj=Φa,T1≤t≤T2
將x=Φa代入R=E{xxT},得
R=E{ΦaaTΦT}=ΦE{aaT}ΦT
因爲我們希望向量a的各個不同分量應統計獨立,即應使(a1,a2,…,aj,…,an)滿足以下關係,
E(aiaj)={λi,0,if i=jif i̸=j
寫成矩陣形式,應使:E{aaT}=Dλ,其中Dλ爲對角形矩陣,其互相關成分均爲0,即,
Dλ=⎣⎢⎢⎢⎢⎡λ10…00λ2…0……………………00…λn⎦⎥⎥⎥⎥⎤
則,
R=ΦDλΦT
由於Φ中的各個向量ϕj都相互歸一正交,故有,
RΦ=ΦDλΦTΦ=ΦDλ
其中,ϕj向量對應爲,
Rϕj=λjϕj
由矩陣知識可以看出,λj是x的自相關矩陣R的特徵值,ϕj是對應的特徵向量。因爲R是實對稱矩陣,其不同特徵值對應的特徵向量應正交,即,
ϕiTϕj={01if i̸=jif i=j
計算步驟
好了,羅裏吧嗦說了這麼多,大家可能會有疑問。PCA到底是什麼?到底怎麼做啊?
首先,PCA用於特徵選擇相當於一種線性變換,若從Φ這n個特徵向量中取出m個組成變換矩陣Φ^,即
Φ^=(ϕ1,ϕ2,…,ϕm),m<n
此時,Φ^是一個n×m維矩陣,x是n維向量,經過Φ^Tx變換,即得到降維爲m的新向量。
因此,PCA的計算步驟如下,
- 計算整體樣本的均值,並對全部樣本減去均值,以使均值成爲新座標軸的原點;
- 求隨機向量x的自相關矩陣:R=E{xxT};
- 求出矩陣R的特徵值λj和對應的特徵向量ϕj,j=1,2,…,n,得矩陣
Φ=(ϕ1,ϕ2,…,ϕn)
- 從中選取按照特徵值大小,降序選取前m個特徵向量ϕj,構成矩陣Φ^;
- 計算展開式係數
a=Φ^Tx
有效性
好了,PCA的計算步驟我們清楚了。可是,它爲什麼有效呢?它是如何保證降維後的特徵向量與原特徵向量的誤差儘可能地小的?不急,我們接下來就來證明這一點。
我們已知,對於x=∑j=1najϕj,現取m項,對略去的係數項用預先選定的常數b代替,此時對x的估計值爲,
x^=j=1∑majϕj+j=m+1∑nbϕj
則產生的誤差爲,
Δx=x−x^=j=m+1∑n(aj−b)ϕj
則Δx的均方誤差爲,
εˉ2=E{∣∣Δx∣∣}2=i=m+1∑n{E(aj−b)2}
要使εˉ2最小,則對b的選擇應滿足,
∂b∂E(aj−b)2=−2[E(aj−b)]=0
因此,b=E(aj),即對省略掉的a中的分量,應使用它們的數學期望來代替,此時的誤差爲,
εˉ2=j=m+1∑nE[(aj−E{aj})2]=j=m+1∑nϕjTE[(x−E{x})(x−E{x})T]ϕj=j=m+1∑nϕjTCxϕj
其中,Cx爲x的協方差矩陣。設λj爲Cx的第j個特徵值,ϕj是與λj對應的特徵向量,則
Cxϕj=λjϕj
由於
ϕjTCxϕj=λj
因此,
εˉ2=j=m+1∑nϕjTCxϕj=j=m+1∑nλj
由此可以看出,λj值越小,誤差也越小。因此,我們也可以說對於PCA,最小化樣本均方誤差等價於最大化樣本方差。
總結
PCA是在均方誤差最小的意義下獲得數據壓縮(降維)的最佳變換,且不受模式分佈的限制。對於一種類別的模式特徵提取,它不存在特徵分類問題,只是實現用低維的m個特徵來表示原來高維的n個特徵,使其誤差最小,亦即使其整個模式分佈結構儘可能保持不變。
參考文獻
黃慶明,《第四章.ppt》
郭嘉豐,《無監督學習——維度約簡》