在之前的博客 人臉識(shí)別經(jīng)典算法一:特征臉?lè)椒ǎ‥igenface)里面介紹了特征臉?lè)椒ǖ脑恚遣](méi)有對(duì)它用到的理論基礎(chǔ)PCA做介紹,現(xiàn)在做補(bǔ)充。請(qǐng)將這兩篇博文結(jié)合起來(lái)閱讀。以下內(nèi)容大部分參考自斯坦福機(jī)器學(xué)習(xí)課程:http://cs229.stanford.edu/materials.html
假設(shè)我們有一個(gè)關(guān)于機(jī)動(dòng)車(chē)屬性的數(shù)據(jù)集{x(i);i=1,...,m}(m代表機(jī)動(dòng)車(chē)的屬性個(gè)數(shù)),例如最大速度,最大轉(zhuǎn)彎半徑等。假設(shè)x(i)本質(zhì)上是n維的空間的一個(gè)元素,其中n<<m,但是n對(duì)我們來(lái)說(shuō)是未知的。假設(shè)xi和xj分別代表車(chē)以英里和公里為單位的最大速度。顯然這兩個(gè)屬性是冗余的,因?yàn)樗鼈儍蓚€(gè)是有線(xiàn)性關(guān)系而且可以相互轉(zhuǎn)化的。因此如果僅以xi和xj來(lái)考慮的話(huà),這個(gè)數(shù)據(jù)集是屬于m-1維而不是m維空間的,所以n=m-1。推廣之,我們?cè)撚檬裁捶椒ń档蛿?shù)據(jù)冗余性呢?
首先考慮一個(gè)例子,假設(shè)有一份對(duì)遙控直升機(jī)操作員的調(diào)查,用x(i)1(1是下標(biāo),原諒我這操蛋的排版吧)表示飛行員i的飛行技能,x(i)2表示飛行員i喜歡飛行的程度。通常遙控直升飛機(jī)是很難操作的,只有那些非常堅(jiān)持而且真正喜歡駕駛的人才能熟練操作。所以這兩個(gè)屬性x(i)1和x(i)2相關(guān)性是非常強(qiáng)的。我們可以假設(shè)兩者的關(guān)系是按正比關(guān)系變化的,如下圖里的u1所示,數(shù)據(jù)散布在u1兩側(cè)是因?yàn)橛猩僭S噪聲。

接下來(lái)就是如何計(jì)算u1的方向了。首先我們需要預(yù)處理數(shù)據(jù)。
1.令
2.用x(i)-μ替代x(i)
3.求
4.用x(i)j/σj替代x(i)j
步驟1-2其實(shí)是將數(shù)據(jù)集的均值歸零,也就是只取數(shù)據(jù)的偏差部分,對(duì)于本身均值為零的數(shù)據(jù)可以忽略這兩步。步驟3-4是按照每個(gè)屬性的方差將數(shù)據(jù)重新度量,也可以理解為歸一化。因?yàn)閷?duì)于不同的屬性(比如車(chē)的速度和車(chē)座數(shù)目)如果不歸一化是不具有比較性的,兩者不在一個(gè)量級(jí)上。如果將pca應(yīng)用到圖像上的話(huà)是不需要步驟3-4的,因?yàn)槊總€(gè)像素(相當(dāng)于不同的屬性)的取值范圍都是一樣的。
數(shù)據(jù)經(jīng)過(guò)如上處理之后,接下來(lái)就是尋找數(shù)據(jù)大致的走向了。一種方法是找到一個(gè)單位向量u,使所有數(shù)據(jù)在u上的投影之和最大,當(dāng)然數(shù)據(jù)并不是嚴(yán)格按照u的方向分布的,而是分布在其周?chē)?紤]下圖的數(shù)據(jù)分布(這些數(shù)據(jù)已經(jīng)做了前期的預(yù)處理)。

下圖中,星號(hào)代表數(shù)據(jù),原點(diǎn)代表數(shù)據(jù)在單位向量u上的投影(|x||u|cosΘ)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注