PCA是Principal component analysis的縮寫(xiě),中文翻譯為主元分析。它是一種對(duì)數(shù)據(jù)進(jìn)行分析的技術(shù),最重要的應(yīng)用是對(duì)原有數(shù)據(jù)進(jìn)行簡(jiǎn)化。正如它的名字:主元分析,這種方法可以有效的找出數(shù)據(jù)中最“主要”的元素和結(jié)構(gòu),去除噪音和冗余,將原有的復(fù)雜數(shù)據(jù)降維,揭示隱藏在復(fù)雜數(shù)據(jù)背后的簡(jiǎn)單結(jié)構(gòu)。它的優(yōu)點(diǎn)是簡(jiǎn)單,而且無(wú)參數(shù)限制,可以方便的應(yīng)用與各個(gè)場(chǎng)合。因此應(yīng)用極其廣泛,從神經(jīng)科學(xué)到計(jì)算機(jī)圖形學(xué)都有它的用武之地。被譽(yù)為應(yīng)用線(xiàn)形代數(shù)最價(jià)值的結(jié)果之一。
在以下的章節(jié)中,不僅有對(duì)PCA的比較直觀(guān)的解釋?zhuān)瑫r(shí)也配有較為深入的分析。首先將從一個(gè)簡(jiǎn)單的例子開(kāi)始說(shuō)明PCA應(yīng)用的場(chǎng)合以及想法的由來(lái),進(jìn)行一個(gè)比較直觀(guān)的解釋?zhuān)蝗缓蠹尤霐?shù)學(xué)的嚴(yán)格推導(dǎo),引入線(xiàn)形代數(shù),進(jìn)行問(wèn)題的求解。隨后將揭示PCA與SVD(Singular Value Decomposition)之間的聯(lián)系以及如何將之應(yīng)用于真實(shí)世界。最后將分析PCA理論模型的假設(shè)條件以及針對(duì)這些條件可能進(jìn)行的改進(jìn)。
在實(shí)驗(yàn)科學(xué)中我常遇到的情況是,使用大量的變量代表可能變化的因素,例如光譜、電壓、速度等等。但是由于實(shí)驗(yàn)環(huán)境和觀(guān)測(cè)手段的限制,實(shí)驗(yàn)數(shù)據(jù)往往變得極其的復(fù)雜、混亂和冗余的。如何對(duì)數(shù)據(jù)進(jìn)行分析,取得隱藏在數(shù)據(jù)背后的變量關(guān)系,是一個(gè)很困難的問(wèn)題。在神經(jīng)科學(xué)、氣象學(xué)、海洋學(xué)等等學(xué)科實(shí)驗(yàn)中,假設(shè)的變量個(gè)數(shù)可能非常之多,但是真正的影響因素以及它們之間的關(guān)系可能又是非常之簡(jiǎn)單的。
下面的模型取自一個(gè)物理學(xué)中的實(shí)驗(yàn)。它看上去比較簡(jiǎn)單,但足以說(shuō)明問(wèn)題。如圖表 1所示。這是一個(gè)理想彈簧運(yùn)動(dòng)規(guī)律的測(cè)定實(shí)驗(yàn)。假設(shè)球是連接在一個(gè)無(wú)質(zhì)量無(wú)摩擦的彈簧之上,從平衡位置沿
對(duì)于一個(gè)具有先驗(yàn)知識(shí)的實(shí)驗(yàn)者來(lái)說(shuō),這個(gè)實(shí)驗(yàn)是非常容易的。球的運(yùn)動(dòng)只是在x軸向上發(fā)生,只需要記錄下
這是一個(gè)真實(shí)的實(shí)驗(yàn)場(chǎng)景,數(shù)據(jù)的噪音是必須面對(duì)的因素。在這個(gè)實(shí)驗(yàn)中噪音可能來(lái)自空氣、摩擦、攝像機(jī)的誤差以及非理想化的彈簧等等。噪音使數(shù)據(jù)變得混亂,掩蓋了變量間的真實(shí)關(guān)系。如何去除噪音是實(shí)驗(yàn)者每天所要面對(duì)的巨大考驗(yàn)。
上面提出的兩個(gè)問(wèn)題就是PCA方法的目標(biāo)。PCA主元分析方法是解決此類(lèi)問(wèn)題的一個(gè)有力的武器。下文將結(jié)合以上的例子提出解決方案,逐步敘述PCA方法的思想和求解過(guò)程。
從線(xiàn)形代數(shù)的角度來(lái)看,PCA的目標(biāo)就是使用另一組基去重新描述得到的數(shù)據(jù)空間。而新的基要能盡量揭示原有的數(shù)據(jù)間的關(guān)系。在這個(gè)例子中,沿著某
為了引入推導(dǎo),需要將上文的數(shù)據(jù)進(jìn)行明確的定義。在上面描述的實(shí)驗(yàn)過(guò)程中,在每一個(gè)采樣時(shí)間點(diǎn)上,每個(gè)攝像機(jī)記錄了一組二維坐標(biāo)
如果以
抽象一點(diǎn)來(lái)說(shuō),每一個(gè)采樣點(diǎn)數(shù)據(jù)
在線(xiàn)形代數(shù)中,這組基表示為行列向量線(xiàn)形無(wú)關(guān)的單位矩陣。
從更嚴(yán)格的數(shù)學(xué)定義上來(lái)說(shuō),PCA回答的問(wèn)題是:如何尋找到另一組正交基,它們是標(biāo)準(zhǔn)正交基的線(xiàn)性組合,而且能夠最好的表示數(shù)據(jù)集?
這里提出了PCA方法的一個(gè)最關(guān)鍵的假設(shè):線(xiàn)性。這是一個(gè)非常強(qiáng)的假設(shè)條件。它使問(wèn)題得到了很大程度的簡(jiǎn)化:1)數(shù)據(jù)被限制在一個(gè)向量空間中,能被一組基表示;2)隱含的假設(shè)了數(shù)據(jù)之間的連續(xù)性關(guān)系。
這樣一來(lái)數(shù)據(jù)就可以被表示為各種基的線(xiàn)性組合。令
有如下定義:
l
l
l
公式(1)表示不同基之間的轉(zhuǎn)換,在線(xiàn)性代數(shù)中,它有如下的含義:
Ø
Ø 幾何上來(lái)說(shuō),
Ø
下面是對(duì)最后一個(gè)含義的顯式說(shuō)明:
注意到
可見(jiàn)
在線(xiàn)性的假設(shè)條件下,問(wèn)題轉(zhuǎn)化為尋找一組變換后的基,也就是
l 怎樣才能最好的表示原數(shù)據(jù)
l
解決問(wèn)題的關(guān)鍵是如何體現(xiàn)數(shù)據(jù)的特征。那么,什么是數(shù)據(jù)的特征,如何體現(xiàn)呢?
“最好的表示”是什么意思呢?下面的章節(jié)將給出一個(gè)較為直觀(guān)的解釋?zhuān)⒃黾右恍╊~外的假設(shè)條件。在線(xiàn)性系統(tǒng)中,所謂的“混亂數(shù)據(jù)”通常包含以下的三種成分:噪音、旋轉(zhuǎn)以及冗余。下面將對(duì)這三種成分做出數(shù)學(xué)上的描述并針對(duì)目標(biāo)作出分析。
噪音對(duì)數(shù)據(jù)的影響是巨大的,如果不能對(duì)噪音進(jìn)行區(qū)分,就不可能抽取數(shù)據(jù)中有用的信息。噪音的橫梁有多種方式,最常見(jiàn)的定義是信噪比
比較大的信噪比表示數(shù)據(jù)的準(zhǔn)確度高,而信噪比低則說(shuō)明數(shù)據(jù)中的噪音成分比較多。那么怎樣區(qū)分什么是信號(hào),什么是噪音呢?這里假設(shè),變化較大的信息被認(rèn)為是信號(hào),變化較小的則是噪音。事實(shí)上,這個(gè)標(biāo)準(zhǔn)等價(jià)于一個(gè)低通的濾波器,是一種標(biāo)準(zhǔn)的去噪準(zhǔn)則。而變化的大小則是由方差來(lái)描述的。
它表示了采樣點(diǎn)在平均值兩側(cè)的分布,對(duì)應(yīng)于圖表 2(a)就是采樣點(diǎn)云的“胖瘦”。顯然的,方差較大,也就是較“寬”較“胖”的分布,表示了采樣點(diǎn)的主要分布趨勢(shì),是主信號(hào)或主要分量;而方差較小的分布則被認(rèn)為是噪音或次要分量。
圖表 2:(a)攝像機(jī)A的采集數(shù)據(jù)。圖中黑色垂直直線(xiàn)表示一組正交基的方向。
假設(shè)攝像機(jī)A拍攝到的數(shù)據(jù)如圖表 2(a)所示,圓圈代表采樣點(diǎn),因?yàn)檫\(yùn)動(dòng)理論上是只存在于一條直線(xiàn)上,所以偏離直線(xiàn)的分布都屬于噪音。此時(shí)
有時(shí)在實(shí)驗(yàn)中引入了一些不必要的變量??赡軙?huì)使兩種情況:1)該變量對(duì)結(jié)果沒(méi)有影響;2)該變量可以用其它變量表示,從而造成數(shù)據(jù)冗余。下面對(duì)這樣的冗余情況進(jìn)行分析和分類(lèi)。
圖表 3:可能冗余數(shù)據(jù)的頻譜圖表示。
(比如例子中的
如圖表 3所示,它揭示了兩個(gè)觀(guān)測(cè)變量之間的關(guān)系。(a)圖所示的情況是低冗余的,從統(tǒng)計(jì)學(xué)上說(shuō),這兩個(gè)觀(guān)測(cè)變量是相互獨(dú)立的,它們之間的信息沒(méi)有冗余。而相反的極端情況如(c),
對(duì)于上面的簡(jiǎn)單情況,可以通過(guò)簡(jiǎn)單的線(xiàn)性擬合的方法來(lái)判斷各觀(guān)測(cè)變量之間是否出現(xiàn)冗余的情況,而對(duì)于復(fù)雜的情況,需要借助協(xié)方差來(lái)進(jìn)行衡量和判斷:
l
l
等價(jià)的,將
協(xié)方差可以表示為:
那么,對(duì)于一組具有
接下來(lái)定義協(xié)方差矩陣如下:
容易發(fā)現(xiàn)協(xié)方差矩陣
l
l
l 非對(duì)角線(xiàn)上的元素是對(duì)應(yīng)的觀(guān)測(cè)變量之間的協(xié)方差。
協(xié)方差矩陣
l 在對(duì)角線(xiàn)上的元素越大,表明信號(hào)越強(qiáng),變量的重要性越高;元素越小則表明可能是存在的噪音或是次要變量。
l 在非對(duì)角線(xiàn)上的元素大小則對(duì)應(yīng)于相關(guān)觀(guān)測(cè)變量對(duì)之間冗余程度的大小。
一般情況下,初始數(shù)據(jù)的協(xié)方差矩陣總是不太好的,表現(xiàn)為信噪比不高且變量間相關(guān)度大。PCA的目標(biāo)就是通過(guò)基變換對(duì)協(xié)方差矩陣進(jìn)行優(yōu)化,找到相關(guān)“主元”。那么,如何進(jìn)行優(yōu)化?矩陣的那些性質(zhì)是需要注意的呢?
總結(jié)上面的章節(jié),主元分析以及協(xié)方差矩陣優(yōu)化的原則是:1)最小化變量冗余,對(duì)應(yīng)于協(xié)方差矩陣的非對(duì)角元素要盡量??;2)最大化信號(hào),對(duì)應(yīng)于要使協(xié)方差矩陣的對(duì)角線(xiàn)上的元素盡可能的大。因?yàn)閰f(xié)方差矩陣的每一項(xiàng)都是正值,最小值為0,所以?xún)?yōu)化的目標(biāo)矩陣
對(duì)于協(xié)方差矩陣進(jìn)行對(duì)角化的方法很多。根據(jù)上面的分析,最簡(jiǎn)單最直接的算法就是在多維空間內(nèi)進(jìn)行搜索。和圖表 2(a)的例子中旋轉(zhuǎn)
1) 在
2) 在與
3) 對(duì)以上過(guò)程循環(huán),直到找出全部
這個(gè)理論上成立的算法說(shuō)明了PCA的主要思想和過(guò)程。在這中間,牽涉到兩個(gè)重要的特性:a)轉(zhuǎn)換基是一組標(biāo)準(zhǔn)正交基。這給PCA的求解帶來(lái)了很大的好處,它可以運(yùn)用線(xiàn)性代數(shù)的相關(guān)理論進(jìn)行快速有效的分解。這些方法將在后面提到。b)在PCA的過(guò)程中,可以同時(shí)得到新的基向量所對(duì)應(yīng)的“主元排序”,利用這個(gè)重要性排序可以方便的對(duì)數(shù)據(jù)進(jìn)行光順、簡(jiǎn)化處理或是壓縮。
PCA的模型中存在諸多的假設(shè)條件,決定了它存在一定的限制,在有些場(chǎng)合可能會(huì)造成效果不好甚至失效。對(duì)于學(xué)習(xí)和掌握PCA來(lái)說(shuō),理解這些內(nèi)容是非常重要的,同時(shí)也有利于理解基于改進(jìn)這些限制條件的PCA的一些擴(kuò)展技術(shù)。
PCA的假設(shè)條件包括:
如同文章開(kāi)始的例子,PCA的內(nèi)部模型是線(xiàn)性的。這也就決定了它能進(jìn)行的主元分析之間的關(guān)系也是線(xiàn)性的?,F(xiàn)在比較流行的kernel-PCA的一類(lèi)方法就是使用非線(xiàn)性的權(quán)值對(duì)原有PCA技術(shù)的拓展。
使用中值和方差進(jìn)行充分的概率分布描述的模型只限于指數(shù)型概率分布模型。(例如高斯分布),也就是說(shuō),如果我們考察的數(shù)據(jù)的概率分布并不滿(mǎn)足高斯分布或是指數(shù)型的概率分布,那么PCA將會(huì)失效。在這種模型下,不能使用方差和協(xié)方差來(lái)很好的描述噪音和冗余,對(duì)教化之后的協(xié)方差矩陣并不能得到很合適的結(jié)果。
事實(shí)上,去除冗余的最基礎(chǔ)的方程是:
其中
PCA方法隱含了這樣的假設(shè):數(shù)據(jù)本身具有較高的信噪比,所以具有最高方差的一維向量就可以被看作是主元,而方差較小的變化則被認(rèn)為是噪音。這是由于低通濾波器的選擇決定的。
PCA方法假設(shè)主元向量之間都是正交的,從而可以利用線(xiàn)形代數(shù)的一系列有效的數(shù)學(xué)工具進(jìn)行求解,大大提高了效率和應(yīng)用的范圍。
在線(xiàn)形代數(shù)中,PCA問(wèn)題可以描述成以下形式:
尋找一組正交基組成的矩陣
對(duì)
定義
則
這里要提出的一點(diǎn)是,
求出特征向量矩陣后我們?nèi)?/span>
可知此時(shí)的
l
l 矩陣
我們可以得到PCA求解的一般步驟:
1)采集數(shù)據(jù)形成
2)在每個(gè)觀(guān)測(cè)變量(矩陣行向量)上減去該觀(guān)測(cè)變量的平均值得到矩陣
3)對(duì)
l PCA技術(shù)的一大好處是對(duì)數(shù)據(jù)進(jìn)行降維的處理。我們可以對(duì)新求出的“主元”向量的重要性進(jìn)行排序,根據(jù)需要取前面最重要的部分,將后面的維數(shù)省去,可以達(dá)到降維從而簡(jiǎn)化模型或是對(duì)數(shù)據(jù)進(jìn)行壓縮的效果。同時(shí)最大程度的保持了原有數(shù)據(jù)的信息。
在前文的例子中,經(jīng)過(guò)PCA處理后的數(shù)據(jù)只剩下了一維,也就是彈簧運(yùn)動(dòng)的那一維,從而去除了冗余的變量,揭示了實(shí)驗(yàn)數(shù)據(jù)背后的物理原理。
l PCA技術(shù)的一個(gè)很大的優(yōu)點(diǎn)是,它是完全無(wú)參數(shù)限制的。在PCA的計(jì)算過(guò)程中完全不需要人為的設(shè)定參數(shù)或是根據(jù)任何經(jīng)驗(yàn)?zāi)P蛯?duì)計(jì)算進(jìn)行干預(yù),最后的結(jié)果只與數(shù)據(jù)相關(guān),與用戶(hù)是獨(dú)立的。
但是,這一點(diǎn)同時(shí)也可以看作是缺點(diǎn)。如果用戶(hù)對(duì)觀(guān)測(cè)對(duì)象有一定的先驗(yàn)知識(shí),掌握了數(shù)據(jù)的一些特征,卻無(wú)法通過(guò)參數(shù)化等方法對(duì)處理過(guò)程進(jìn)行干預(yù),可能會(huì)得不到預(yù)期的效果,效率也不高。
圖表 4:黑色點(diǎn)表示采樣數(shù)據(jù),排列成轉(zhuǎn)盤(pán)的形狀。
容易想象,該數(shù)據(jù)的主元是
如圖表 4中的例子,PCA找出的主元將是
l 有時(shí)數(shù)據(jù)的分布并不是滿(mǎn)足高斯分布。如圖表 5所示,在非高斯分布的情況下,PCA方法得出的主元可能并不是最優(yōu)的。在尋找主元時(shí)不能將方差作為衡量重要性的標(biāo)準(zhǔn)。要根據(jù)數(shù)據(jù)的分布情況選擇合適的描述完全分布的變量,然后根據(jù)概率分布式
來(lái)計(jì)算兩個(gè)向量上數(shù)據(jù)分布的相關(guān)性。等價(jià)的,保持主元間的正交假設(shè),尋找的主元同樣要使
圖表 5:數(shù)據(jù)的分布并不滿(mǎn)足高斯分布,呈明顯的十字星狀。
這種情況下,方差最大的方向并不是最優(yōu)主元方向。
l PCA方法和線(xiàn)形代數(shù)中的奇異值分解(SVD)方法有內(nèi)在的聯(lián)系,一定意義上來(lái)說(shuō),PCA的解法是SVD的一種變形和弱化。對(duì)于
其中
其中
PCA方法是一個(gè)具有很高普適性的方法,被廣泛應(yīng)用于多個(gè)領(lǐng)域。這里要特別介紹的是它在計(jì)算機(jī)視覺(jué)領(lǐng)域的應(yīng)用,包括如何對(duì)圖像進(jìn)行處理以及在人臉識(shí)別方面的特別作用。
A. 數(shù)據(jù)表示
如果要將PCA方法應(yīng)用于視覺(jué)領(lǐng)域,最基本的問(wèn)題就是圖像的表達(dá)。如果是一幅
在這里圖像的結(jié)構(gòu)將被打亂,每一個(gè)像素點(diǎn)被看作是一維,最直接的方法就是將圖像的像素一行行的頭尾相接成一個(gè)一維向量。還必須要注意的是,每一維上的數(shù)據(jù)對(duì)應(yīng)于對(duì)應(yīng)像素的亮度、灰度或是色彩值,但是需要?jiǎng)潥w到同一緯度上。
B. 模式識(shí)別
假設(shè)數(shù)據(jù)源是一系列的20幅圖像,每幅圖像都是
然后對(duì)它們進(jìn)行PCA處理,找出主元。
為什么這樣做呢?據(jù)人臉識(shí)別的例子來(lái)說(shuō),數(shù)據(jù)源是20幅不同的人臉圖像,PCA方法的實(shí)質(zhì)是尋找這些圖像中的相似的維度,因?yàn)槿四樀慕Y(jié)構(gòu)有極大的相似性(特別是同一個(gè)人的人臉圖像),則使用PCA方法就可以很容易的提取出人臉的內(nèi)在結(jié)構(gòu),也及時(shí)所謂“模式”,如果有新的圖像需要與原有圖像比較,就可以在變換后的主元維度上進(jìn)行比較,則可衡量新圖與原有數(shù)據(jù)集的相似度如何。
對(duì)這樣的一組人臉圖像進(jìn)行處理,提取其中最重要的主元,即可大致描述人臉的結(jié)構(gòu)信息,稱(chēng)作“特征臉”(EigenFace)。這就是人臉識(shí)別中的重要方法“特征臉?lè)椒?#8221;的理論根據(jù)。近些年來(lái),基于對(duì)一般PCA方法的改進(jìn),結(jié)合ICA、kernel-PCA等方法,在主元分析中加入關(guān)于人臉圖像的先驗(yàn)知識(shí),則能得到更好的效果。
C. 圖像信息壓縮
使用PCA方法進(jìn)行圖像壓縮,又被稱(chēng)為Hotelling算法,或者Karhunen and Leove(KL)變換。這是視覺(jué)領(lǐng)域內(nèi)圖像處理的經(jīng)典算法之一。具體算法與上述過(guò)程相同,使用PCA方法處理一個(gè)圖像序列,提取其中的主元。然后根據(jù)主元的排序去除其中次要的分量,然后變換回原空間,則圖像序列因?yàn)榫S數(shù)降低得到很大的壓縮。例如上例中取出次要的5個(gè)維度,則圖像就被壓縮了1/4。但是這種有損的壓縮方法同時(shí)又保持了其中最“重要”的信息,是一種非常重要且有效的算法。
[1] Lindsay I Smith. (2002) “A tutorial on Principal Components Analysis”
http://csnet.otago.ac.nz/cosc453/student_ tutorials/principal_components.pdf
[2] Jonathon Shlens. (2005) “A Tutorial on Principal Component Analysis”
http://www.snl.salk.edu/~shlens/pub/notes/pca.pdf
[3] ?Will, Todd (1999) “Introduction to the Singular Value Decomposition”
[4]
[5] T.F. Cootes and C.J.Taylor (2004) “Statistical Models of Appearance for Computer Vision”
http://www.isbe.man.ac.uk/~bim/Models/app_models.pdf
[6] 張翠平 蘇光大 (2000)“人臉識(shí)別技術(shù)綜述”《中國(guó)圖像圖形學(xué)報(bào)》第五卷A版第11期
[7] 何國(guó)輝 甘俊英 (2006)“PCA類(lèi)內(nèi)平均臉?lè)ㄔ谌四樧R(shí)別中的應(yīng)用研究”《計(jì)算機(jī)應(yīng)用研究》2006年第三期
[8] 牛麗平 付仲良 魏文利 (2006)“人臉識(shí)別技術(shù)研究”《電腦開(kāi)發(fā)與應(yīng)用》2006年第五期
[9] Wikipedia “principal components analysis”詞條解釋 From Answers.com
聯(lián)系客服