一弧轧、前言
毫不夸張地說雪侥,主成分分析(Principal Component Analysis)面前,在座的各位都是小朋友精绎,PCA算法距離1901年提出已經(jīng)過了一百多年速缨,縱然世紀(jì)更迭,但是許多人對(duì)PCA算法在人臉識(shí)別領(lǐng)域中的應(yīng)用仍然逃不過真香定律捺典,它仍然是目前最簡單的以特征量分析多維度統(tǒng)計(jì)分布的方法鸟廓,沒有之一,可以說是算法必掌握之利器襟己。
二引谜、為什么要有主成分分析
和這個(gè)系列名對(duì)應(yīng),主成分分析是特征提取的一個(gè)常用算法擎浴。這時(shí)肯定有人對(duì)特征提取和特征選擇的區(qū)別產(chǎn)生疑問员咽,簡單來說,特征提取是從N個(gè)特征中贮预,通過構(gòu)造M個(gè)函數(shù)的方式贝室,獲得M個(gè)特征,這里每個(gè)特征都是包含了前N個(gè)特征得出的仿吞。而特征選擇就是“單純的”從樣本的N個(gè)特征中選出前M個(gè)最matter(比如在人臉識(shí)別中使得識(shí)別率最高的)的特征滑频。這兩種情況下,M都是小于N的唤冈,直觀來講峡迷,比如我從樣本集中拿出一個(gè)神奇寶貝,他可能包含有N個(gè)特征你虹,比如
是它的類系绘搞,
使它的攻擊力,
使它的防御力傅物,等等夯辖,那么由此得來的樣本
的特征空間可以表示為
,而這樣的N個(gè)維度有時(shí)對(duì)于實(shí)際問題來說可能太多了董饰,需要減少樣本的維度蒿褂,而這時(shí)候,主成分分析就要來秀一波了卒暂,它是降低數(shù)據(jù)維度的一把好手贮缅,比如這個(gè)問題,他就可以提取出M個(gè)特征使得神奇寶貝的勝率達(dá)到最高介却。
但是要注意谴供,這里重新得到的,
齿坷,等等已經(jīng)和之前的不一樣了桂肌,事實(shí)上数焊,這里的每個(gè)新特征
是關(guān)于之前N個(gè)特征的綜合考慮崎场,可以表示為佩耳,
三、二維主成分分析
OK,我們由淺入深谭跨,先來考慮一下二維情況時(shí)的主成分分析干厚,也就是N=2,M=1的情況,這樣每個(gè)樣本點(diǎn)都分布在一個(gè)二維平面上螃宙,我們可以用一個(gè)二維坐標(biāo)系表示蛮瞄。
優(yōu)化問題得出
好,那我們要拿主成分分析來干嘛呢谆扎?我們想要作特征提取挂捅,也就是把這兩個(gè)特征“融合”成一個(gè)特征用來作后續(xù)勝率的分析。試想一下堂湖,如果我們要考慮皮卡丘和杰尼龜(假設(shè)只有攻擊力和防御力這兩個(gè)特征)戰(zhàn)斗的勝率闲先,
表示攻擊力,
表示防御力无蜂,那么我們希望找一個(gè)特征(也就是找一個(gè)軸)伺糠,把原本在二維坐標(biāo)系上的點(diǎn)還能投影到這個(gè)坐標(biāo)軸上的對(duì)應(yīng)位置,以使得所有樣本分布盡可能不變斥季。
我們可以畫出這樣的坐標(biāo)系训桶,皮卡丘和杰尼龜分別用P和J點(diǎn)代替,皮卡丘的攻擊力較高泻肯,杰尼龜?shù)姆烙^高,那怎么判斷誰獲勝的可能性比較大呢慰照?很顯然灶挟,對(duì)這兩個(gè)特征做個(gè)綜合,具體怎么說呢毒租?就是給分別一個(gè)權(quán)重稚铣,然后得到一個(gè)新的特征能力值綜合考慮了他們的攻擊力和防御力,這樣把P1墅垮,J1這兩個(gè)二維坐標(biāo)投影到一維上惕医,然后比較P2,J2算色,就能估計(jì)勝率啦抬伺!
很好喷众,照著這個(gè)思路蔓彩,也就是我們需要構(gòu)造一個(gè)函數(shù),也就是找出A和b使得所有的樣本點(diǎn)在這條線上的投影盡可能分散妇垢,以便我們借助我們新得的這個(gè)特征Y盡可能區(qū)分開他們夭委,由此我們得出,也就是上圖中的F1方向能岩。
假設(shè)現(xiàn)在我們有P個(gè)樣本點(diǎn)寞宫,,這樣拉鹃,可以把
改造為
辈赋,其中
,當(dāng)我們想要把N維向量降為M維時(shí),很顯然
應(yīng)該是Mx1的矩陣膏燕,而A應(yīng)該是NxM的矩陣钥屈,假設(shè)
,其中a向量是Mx1的矩陣煌寇,這里的a1等等實(shí)際上就表示M個(gè)方向焕蹄,在這M個(gè)方向上投影就得到M個(gè)值。(Tips:搞清楚各個(gè)向量的維度對(duì)理解后續(xù)推導(dǎo)至關(guān)重要阀溶,請(qǐng)停下來思考一下腻脏。),所以Y向量為银锻,
Great!通過前面這樣的一通分析永品,我們終于有了目標(biāo),有了目標(biāo)就可以嘗試得出優(yōu)化問題的目標(biāo)函數(shù)和約束击纬,現(xiàn)在鼎姐,我們只考慮有p個(gè)樣本的二維情況,所以N=2更振,M=1炕桨,這樣很簡單,Y就是一個(gè)值肯腕,我們要最大化方差献宫,也就是最大化,接下來我們就嘗試把這個(gè)目標(biāo)函數(shù)化為樣本點(diǎn)X相關(guān),過程很容易实撒。
實(shí)際上姊途,所以
我們定義為協(xié)方差矩陣
(covariance matrix),這樣目標(biāo)函數(shù)可以簡化為
知态,約束條件可以在a1方向上單位化捷兰,不影響方向表示,卻可以極大簡化后續(xù)計(jì)算负敏。所以優(yōu)化問題為贡茅,
解優(yōu)化問題
得到要解的優(yōu)化問題后,又又又到了我們喜聞樂見的拉格朗日乘子法和求導(dǎo)運(yùn)算其做,求極值的階段了友扰。(貼一下這位可愛的科學(xué)家)
這次優(yōu)化問題的解相比于前面幾篇支持向量機(jī)的推導(dǎo)要簡單很多彤叉,我會(huì)用最簡單的方法介紹,各位看官耐心且看村怪。
首先利用拉格朗日乘子法構(gòu)造函數(shù)
接下來秽浇,祖?zhèn)魇炙嚽髮?dǎo),
所以甚负,柬焕,怎么樣?看這個(gè)式子是不是很熟悉梭域,沒錯(cuò)斑举,是協(xié)方差矩陣的特征向量,是協(xié)方差矩陣的特征值病涨。
怎么理解特征值和特征向量呢富玷?比如我們把矩陣看作運(yùn)動(dòng),對(duì)于運(yùn)動(dòng)而言既穆,它最重要的特征當(dāng)然是速度和方向赎懦,
- 特征值就表示運(yùn)動(dòng)的速度
- 特征向量就表示運(yùn)動(dòng)的方向
那這里的這里的特征值和特征向量表示什么意義呢?我們思考一波幻工,我們要最大化,由上面(1)式励两,也就是最大化
,又約束條件
囊颅,所当悔!以!我們就是要最大化特征值
(也就是最大化目標(biāo)函數(shù)方差呀朋友萌L叽)盲憎,到這里,我們總結(jié)出胳挎,
所以是
最大的特征值,
是
最大的特征值
對(duì)應(yīng)的特征向量串远,并且
宏多。
Good job!我們找到了儿惫,也就找到了二維問題中使方差最大的方向澡罚。
四、多維情況求解
解決掉可以直觀想象的分布統(tǒng)計(jì)問題之后肾请,我們來點(diǎn)稍有挑戰(zhàn)性的留搔,怎么求多維(N>2)向量除外的其它維度
呢?一開始铛铁,我們就說明矩陣A的各個(gè)維度實(shí)際上表示的是不同的方向隔显,我們要在每個(gè)方向都盡可能使方差大却妨,比如我們要找
方向,那么同樣括眠,
彪标,注意,這里唯一的不同就是掷豺,要添加
與
正交捞烟,說明在三維降二維時(shí),
方向是唯一確定的当船,莫得選擇题画。
接下來,繼續(xù)祖?zhèn)魇炙嚴(yán)窭嗜粘俗臃忧髮?dǎo)德频,引入系數(shù)和
苍息,構(gòu)造函數(shù)
接下來竞思,和前面二維情況差不多衙四,
以下传蹈,簡單推導(dǎo)一下吧惦界,方便理解沾歪,,兩邊同乘以
狂窑,得到
泉哈,就等于
看看這個(gè)式子丛晦,u1s1,漂亮匹层!全都能照著約束條件約去(現(xiàn)在體會(huì)到約束的好處了吧)锌蓄,得到
煤率,同時(shí)蝶糯,
识虚,所以怎么樣担锤,是不是第二個(gè)優(yōu)化問題(3)和第一個(gè)優(yōu)化問題(1)就一樣了肛循?最大化
,再次求最大的
多糠,但是此時(shí)最大已經(jīng)被
占去夹孔,咋辦搭伤?嗐怜俐,退而求其次佑菩,取第二大吧。
所以殿漠,嚴(yán)肅嚴(yán)肅,我們要放大招了绞幌,拋出結(jié)論,
相信聰明的你已經(jīng)猜到了NxM矩陣A的其他維度的值了一忱,就不用我一遍一遍重復(fù)推導(dǎo)了吧。
得出結(jié)論帘营,就是協(xié)方差矩陣第三大特征值對(duì)應(yīng)的特征向量票渠,依次類推芬迄。由此確定了NxM矩陣问顷,這就是一個(gè)M維度的坐標(biāo)系呀杜窄,盆友萌,我們成功把N維坐標(biāo)系的樣本成功移到我們自己構(gòu)建的M維坐標(biāo)系上了呀嘴瓤,撒花撒花畏浆!其中每個(gè)軸都是我們自己辛苦求出來的哦。
五狞贱、總結(jié)一波
好的刻获,經(jīng)過你不懈的努力,總算把PCA算法盤下來了瞎嬉,我們最后總結(jié)一下蝎毡,回顧一遍,你能有更深的理解氧枣。
- 拿到一堆樣本沐兵,果斷求協(xié)方差矩陣
;
- 有了結(jié)論便监,直接用扎谎。求出
的特征值及其對(duì)應(yīng)的特征向量碳想,并且從大到小排序,以備取用毁靶;
- 歸一化所有的方向
;
- 得到前M維方向向量
- 得到M維坐標(biāo)系后胧奔,果斷把這P個(gè)在N維坐標(biāo)系上的樣本點(diǎn)映射過去,
预吆,其中i=1 到 P龙填。
PCA:“小朋友,讀到這里拐叉,你還有很多問號(hào)嗎岩遗?”
原文搬運(yùn)自我的博客,歡迎持續(xù)關(guān)注凤瘦。
創(chuàng)作不易宿礁,你的鼓勵(lì)是我創(chuàng)作的動(dòng)力,如果你有收獲蔬芥,點(diǎn)個(gè)贊吧??
我接下來還會(huì)陸續(xù)更新機(jī)器學(xué)習(xí)相關(guān)的學(xué)習(xí)筆記窘拯,補(bǔ)充這個(gè)系列。如果看到這里的話坝茎,說明你有認(rèn)真看這篇文章涤姊,希望你能有所收獲!最后嗤放,歡迎交流指正思喊!
還有不明白的歡迎閱讀其他文章:
通俗講解支持向量機(jī)SVM(一)面試官:什么?線性模型你不會(huì)不清楚吧次酌?
通俗講解支持向量機(jī)SVM(二)另辟蹊徑恨课!對(duì)偶性的幾何解釋
通俗講解支持向量機(jī)SVM(三)SVM處理非線性問題及軟間隔之引出
通俗講解支持向量機(jī)SVM(四)用盡洪荒之力把核函數(shù)與核技巧講得明明白白(精華篇)