詳解PCA(主成分分析)原理

在我們之前分類器的討論中,如SVM貝葉斯判別等,都假定已給出了特徵向量維數確定的樣本集,其中各樣本的每一維都是該樣本的一個特徵。然而不同的特徵對於分類器設計的影響是不同的,如果將數目很多的測量值不做分析,全部直接用作分類特徵,不但耗時,而且會影響到分類的效果,產生“特徵維數災難”問題。因此,我們需要對特徵進行選擇和提取,即“降維”。

簡介

PCA,全名主成分分析(Principal Component Analysis),又稱爲K-L變換,是一種特徵提取的方法。與簡單地刪掉某nkn - k個特徵不同,PCA將原來的特徵做正交變換,獲得的每個數據都是原來nn個數據的線性組合,然後從新的數據中選出少數幾個,使其儘可能多地反映各類模式之間的差異。而這些特徵間又儘可能相互獨立,則比單純的選擇方法更靈活、更有效。而PCA就是一種適用於任意概率密度函數的正交變換。

PCA的離散展開式

設一連續的隨機實函數x(t),T1tT2\mathbf{x}(t), T_1 \le t \le T_2,則x(t)\mathbf{x}(t)可用已知的正交函數集{ϕj(t),j=1,2, }\{\phi_j(t), j = 1, 2, \dots \}的線性組合來展開,即

x(t)=a1ϕ1(t)+a2ϕ2(t)++ajϕj(t)+=j=1ajϕj(t),T1tT2 \begin{aligned} \mathbf{x}(t) &= a_1\phi_1(t) + a_2\phi_2(t) + \cdots + a_j\phi_j(t) + \cdots \\ &= \sum_{j = 1}^{\infty}a_j\phi_j(t), \quad T_1 \le t \le T_2\\ \end{aligned}

式中,aja_j爲展開式的隨機係數,ϕj(t)\phi_j(t)爲一連續的正交函數,它應滿足,

T1T2ϕi(t)ϕ~j(t)={0,if ij,1,if i==j. \int_{T_1}^{T_2} \phi_i(t)\tilde{\phi}_j(t) = \left\{ \begin{aligned} &0, \quad if \ i \ne j, \\ &1, \quad if \ i == j. \\ \end{aligned} \right.

其中,ϕ~j(t)\tilde{\phi}_j(t)ϕj(t)\phi_j(t)的共軛複數式。

將上式寫成離散的正交函數形式,使連續隨機函數x(t)\mathbf{x}(t)和連續正交函數ϕj(t)\phi_j(t)在區間T1tT2T_1 \le t \le T_2內被等間隔採樣爲nn個離散點,即,

x(t){x(1),x(2),x(n)}ϕj(t){ϕj(1),ϕj(2),ϕj(n)} \begin{aligned} \mathbf{x}(t) &\to \{\mathbf{x}(1), \mathbf{x}(2), \dots \mathbf{x}(n)\} \\ \phi_j(t) &\to \{\phi_j(1), \phi_j(2), \dots \phi_j(n)\} \\ \end{aligned}

寫成向量形式,

x=(x(1),x(2),,x(n))Tϕj=(ϕj(1),ϕj(2),,ϕj(n))T \begin{aligned} \mathbf{x} &= (\mathbf{x}(1), \mathbf{x}(2), \dots, \mathbf{x}(n))^{T} \\ \phi_j &= (\phi_j(1), \phi_j(2), \dots, \phi_j(n))^{T} \\ \end{aligned}

將原展開式取nn項近似,有,

x=j=1najϕj=Φa,T1tT2\mathbf{x} = \sum_{j = 1}^{n}a_j \phi_j = \Phi\mathbf{a}, \quad T_1 \le t \le T_2

其中,a\mathbf{a}爲展開式中隨機係數的向量形式,即

a=(a1,a2,,an)T\mathbf{a} = (a_1, a_2, \dots, a_n)^{T}

Φ\Phi是一n×nn \times n的矩陣,

Φ=(ϕ1,ϕ2,,ϕn)=[ϕ1(1)ϕ2(1)ϕn(1)ϕ1(2)ϕ2(2)ϕn(2)ϕ1(n)ϕ2(n)ϕn(n)] \Phi = (\phi_1, \phi_2, \dots, \phi_n) = \left[ \begin{aligned} &\phi_1(1) \quad &\phi_2(1) \quad &\dots \quad &\phi_n(1) \\ &\phi_1(2) \quad &\phi_2(2) \quad &\dots \quad &\phi_n(2) \\ &\dots \quad &\dots \quad &\dots \quad &\dots \\ &\phi_1(n) \quad &\phi_2(n) \quad &\dots \quad &\phi_n(n) \\ \end{aligned} \right]

其中,每一列爲正交函數集中的一個函數,小括號內的序號爲正交函數的採樣點次序。因此,Φ\Phi實質上是由ϕj\phi_j向量組成的正交變換矩陣,它將x\mathbf{x}變換成a\mathbf{a}

正交向量集的確定

在前面的討論中,我們討論了PCA的離散展開式,其實際上就是將原樣本x\mathbf{x}變換爲a\mathbf{a}。而變換的重點則是正交向量集Φ\Phi的確定。

在直接討論正交向量集Φ\Phi之前,我們不妨先看看其他基本參量。設隨機向量x\mathbf{x}的總體自相關矩陣爲R=E{xxT}R = E\{\mathbf{x}\mathbf{x}^{T}\},由

x=j=1najϕj=Φa,T1tT2\mathbf{x} = \sum_{j = 1}^{n}a_j \phi_j = \Phi\mathbf{a}, \quad T_1 \le t \le T_2

x=Φa\mathbf{x} = \Phi\mathbf{a}代入R=E{xxT}R = E\{\mathbf{x}\mathbf{x}^{T}\},得

R=E{ΦaaTΦT}=ΦE{aaT}ΦTR = E\{\Phi\mathbf{a}\mathbf{a}^{T}\Phi^{T}\} = \Phi E\{\mathbf{a}\mathbf{a}^{T}\}\Phi^{T}

因爲我們希望向量a\mathbf{a}的各個不同分量應統計獨立,即應使(a1,a2,,aj,,an)(a_1, a_2, \dots, a_j, \dots, a_n)滿足以下關係,

E(aiaj)={λi,if i=j0,if ij E(a_ia_j) = \left\{ \begin{aligned} &\lambda_i, \quad &if \ i = j \\ &0, \quad &if \ i \ne j \\ \end{aligned} \right.

寫成矩陣形式,應使:E{aaT}=DλE\{a a^{T}\} = D_{\lambda},其中DλD_{\lambda}爲對角形矩陣,其互相關成分均爲0,即,

Dλ=[λ1000λ2000λn] D_{\lambda} = \left[ \begin{aligned} &\lambda_1 \quad &0 \quad &\dots \quad &\dots \quad &0 \\ &0 \quad &\lambda_2 \quad &\dots \quad &\dots \quad &0 \\ &\dots \quad &\dots \quad &\dots \quad &\dots \quad &\dots \\ &0 \quad &0 \quad &\dots \quad &\dots \quad &\lambda_n \\ \end{aligned} \right]

則,

R=ΦDλΦTR = \Phi D_{\lambda}\Phi^{T}

由於Φ\Phi中的各個向量ϕj\phi_j都相互歸一正交,故有,

RΦ=ΦDλΦTΦ=ΦDλR\Phi = \Phi D_{\lambda} \Phi^{T} \Phi = \Phi D_{\lambda}

其中,ϕj\phi_j向量對應爲,

Rϕj=λjϕjR \phi_j = \lambda_j\phi_j

由矩陣知識可以看出,λj\lambda_jx\mathbf{x}的自相關矩陣RR的特徵值,ϕj\phi_j是對應的特徵向量。因爲RR是實對稱矩陣,其不同特徵值對應的特徵向量應正交,即,

ϕiTϕj={0if ij1if i=j \phi_i^{T} \phi_j = \left\{ \begin{aligned} &0 \quad &if \ i \ne j \\ &1 \quad &if \ i = j \\ \end{aligned} \right.

計算步驟

好了,羅裏吧嗦說了這麼多,大家可能會有疑問。PCA到底是什麼?到底怎麼做啊?

首先,PCA用於特徵選擇相當於一種線性變換,若從Φ\Phinn個特徵向量中取出mm個組成變換矩陣Φ^\hat{\Phi},即

Φ^=(ϕ1,ϕ2,,ϕm),m<n\hat{\Phi} = (\phi_1, \phi_2, \dots, \phi_m), m < n

此時,Φ^\hat{\Phi}是一個n×mn \times m維矩陣,x\mathbf{x}nn維向量,經過Φ^Tx\hat{\Phi}^{T}\mathbf{x}變換,即得到降維爲mm的新向量。

因此,PCA的計算步驟如下,

  1. 計算整體樣本的均值,並對全部樣本減去均值,以使均值成爲新座標軸的原點;
  2. 求隨機向量x\mathbf{x}的自相關矩陣:R=E{xxT}R = E\{\mathbf{x}\mathbf{x}^{T}\}
  3. 求出矩陣RR的特徵值λj\lambda_j和對應的特徵向量ϕj,j=1,2,,n\phi_j, j = 1, 2, \dots, n,得矩陣
    Φ=(ϕ1,ϕ2,,ϕn)\Phi = (\phi_1, \phi_2, \dots, \phi_n)
  4. 從中選取按照特徵值大小,降序選取前mm個特徵向量ϕj\phi_j,構成矩陣Φ^\hat{\Phi}
  5. 計算展開式係數
    a=Φ^Tx\mathbf{a} = \hat{\Phi}^{T}\mathbf{x}

PCA1

有效性

好了,PCA的計算步驟我們清楚了。可是,它爲什麼有效呢?它是如何保證降維後的特徵向量與原特徵向量的誤差儘可能地小的?不急,我們接下來就來證明這一點。

我們已知,對於x=j=1najϕj\mathbf{x} = \sum_{j = 1}^{n}a_j\phi_j,現取mm項,對略去的係數項用預先選定的常數bb代替,此時對x\mathbf{x}的估計值爲,

x^=j=1majϕj+j=m+1nbϕj\hat{\mathbf{x}} = \sum_{j = 1}^{m}a_j\phi_j + \sum_{j = m + 1}^{n}b\phi_j

則產生的誤差爲,

Δx=xx^=j=m+1n(ajb)ϕj\Delta{\mathbf{x}} = \mathbf{x} - \hat{\mathbf{x}} = \sum_{j = m + 1}^{n}(a_j - b)\phi_j

Δx\Delta{\mathbf{x}}的均方誤差爲,

εˉ2=E{Δx}2=i=m+1n{E(ajb)2}\bar{\varepsilon}^2 = E\{||\Delta \mathbf{x}||\}^2 = \sum_{i = m + 1}^{n} \{E(a_j - b)^2\}

要使εˉ2\bar{\varepsilon}^2最小,則對bb的選擇應滿足,

bE(ajb)2=2[E(ajb)]=0\frac{\partial}{\partial b}E(a_j - b)^2 = -2[E(a_j - b)] = 0

因此,b=E(aj)b = E(a_j),即對省略掉的a中的分量,應使用它們的數學期望來代替,此時的誤差爲,

εˉ2=j=m+1nE[(ajE{aj})2]=j=m+1nϕjTE[(xE{x})(xE{x})T]ϕj=j=m+1nϕjTCxϕj \begin{aligned} \bar{\varepsilon}^2 &= \sum_{j = m + 1}^{n}E[(a_j - E\{a_j\})^{2}] \\ &= \sum_{j = m + 1}^{n}\phi_{j}^{T}E[(\mathbf{x} - E\{\mathbf{x}\})(\mathbf{x} - E\{\mathbf{x}\})^{T}]\phi_j \\ &= \sum_{j = m + 1}^{n}\phi_j^TC_{\mathbf{x}}\phi_j\\ \end{aligned}

其中,CxC_{\mathbf{x}}x\mathbf{x}的協方差矩陣。設λj\lambda_jCxC_{\mathbf{x}}的第jj個特徵值,ϕj\phi_j是與λj\lambda_j對應的特徵向量,則

Cxϕj=λjϕjC_{\mathbf{x}}\phi_j = \lambda_j\phi_j

由於

ϕjTCxϕj=λj\phi_j^{T}C_{\mathbf{x}}\phi_j = \lambda_j

因此,

εˉ2=j=m+1nϕjTCxϕj=j=m+1nλj\bar{\varepsilon}^2 = \sum_{j = m + 1}^{n}\phi_j^TC_{\mathbf{x}}\phi_j = \sum_{j = m + 1}^{n}\lambda_j

由此可以看出,λj\lambda_j值越小,誤差也越小。因此,我們也可以說對於PCA,最小化樣本均方誤差等價於最大化樣本方差。

總結

PCA是在均方誤差最小的意義下獲得數據壓縮(降維)的最佳變換,且不受模式分佈的限制。對於一種類別的模式特徵提取,它不存在特徵分類問題,只是實現用低維的mm個特徵來表示原來高維的nn個特徵,使其誤差最小,亦即使其整個模式分佈結構儘可能保持不變。

參考文獻

黃慶明,《第四章.ppt》

郭嘉豐,《無監督學習——維度約簡》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章