深度學習(二):主成分分析算法

版權(quán)聲明:本文為博主原創(chuàng)文章赖条,轉(zhuǎn)載請注明出處和作者创夜,商業(yè)轉(zhuǎn)載請聯(lián)系作者(huxingfei097@163.com)锤悄,謝謝合作闯第!

本節(jié)內(nèi)容涉及對主成分分析算法的推導能犯,推導主要應(yīng)用線性代數(shù)知識拣宏,如果對線性代數(shù)知識不太熟悉沈贝,可以參考我的上一篇文章:深度學習(一):線性代數(shù)基礎(chǔ)

  • 概念:
    ? 主成分分析(principal components analysis, PCA)是一個簡單的機器學習降維算法。通俗的講蚀浆,PCA降維就是通過線性變換缀程,減少數(shù)據(jù)維度,保留數(shù)據(jù)主要的信息市俊。在機器學習中杨凑,該技術(shù)多應(yīng)用于數(shù)據(jù)可視化和特征選擇,由于處理的數(shù)據(jù)是無標簽的摆昧,通過維度的線性變換而來撩满,所以是無監(jiān)督降維方法。
  • 直觀解釋:
    ? 數(shù)據(jù)集合中的樣本由實數(shù)空間(正交坐標系)中的點表示绅你,空間中的一個坐標軸表示一個變量伺帘,規(guī)范化處理后得到的數(shù)據(jù)分布在原點(空間中的原點)附近。主成分分析就是對坐標系進行旋轉(zhuǎn)變換忌锯,將數(shù)據(jù)投影到新坐標系的坐標軸上:新坐標系的第一坐標軸伪嫁、第二坐標軸等分別表示第一主成分、第二主成分等偶垮,數(shù)據(jù)在每一軸上的坐標值的平方表示相應(yīng)變量的方差张咳,并且帝洪,這個坐標系是在所有可能的新的坐標系中,坐標軸上的方差最大的脚猾。下圖展示了在二維空間中對一個斜橢圓進行主成分分析(其中葱峡,x1,x2為原坐標軸龙助,y1砰奕,y2為主成分分析變換之后的坐標系,y1為第一主成分對應(yīng)原橢圓的長軸提鸟,y2為第二主成分對應(yīng)原橢圓的短軸):
主成分分析示例 主成分分析的幾何解釋

? 上方右圖是主成分分析的幾何解釋军援。主成分分析要求在新的坐標軸中方差最大,即意味著沽一,對于樣本點 A盖溺,B,C铣缠,投影到y(tǒng)1上得到A'烘嘱,B',C'蝗蛙,OA'2 + OB'2 + OC'2最大蝇庭,等價于樣本點到y(tǒng)1軸的距離的平方和AA'2 + AB'2 + AC'2最小。所以捡硅,主成分分析在旋轉(zhuǎn)變換中等價于選取離樣本點的距離平方和最小的軸哮内,作為第一主成分,第二主成分的選取壮韭,在保證與已選坐標軸正交的條件下北发,類似的進行。

  • 算法過程:
    ? 主成分分析喷屋,首先要對給定數(shù)據(jù)進行規(guī)范化琳拨,使得每一變量的平均值為0,方差為1屯曹,然后順序地找一組相互正交的坐標軸狱庇。其中,第一個新坐標軸選擇是原始數(shù)據(jù)中方差最大的方向恶耽,第二個新坐標軸選取是與第一個坐標軸正交的平面中使得方差最大的密任,第三個軸是與第1,2個軸正交的平面中方差最大的。依次類推偷俭,可以得到n個這樣的坐標軸浪讳。通過這種方式獲得的新的坐標軸,大部分方差都包含在前面k個坐標軸中涌萤,后面的坐標軸所含的方差幾乎為0驻债。于是乳规,可以忽略余下的坐標軸形葬,只保留前面k個含有絕大部分方差的坐標軸合呐。事實上,這相當于只保留包含絕大部分方差的維度特征笙以,而忽略包含方差幾乎為0的特征維度淌实,從而實現(xiàn)對數(shù)據(jù)特征的降維處理。
  • 主成分分析的求解:
    ? ** 設(shè) x 是 m 維隨機變量猖腕,∑ 是x的協(xié)方差矩陣拆祈,∑的特征值分別是 λ1 ≥ λ1 ≥ λ2 ≥ ... ≥ λm ≥ 0,特征值對應(yīng)的單位向量分別是 α1α2 ... αm倘感,則 x 的第k主成分是:
    ?????? yk = αkT x = α1kx1 + α2kx2 + ... +αmkxm
    x 的第k主成分的方差是:
    ?????? var(yk) = αkT Σ αk, ? k = 1,2,3放坏,...,m
    即協(xié)方差矩陣的第k個特征值(若特征值有重根老玛,對應(yīng)的特征向量組成m維空間Rm的一個子空間淤年,子空間的維數(shù)等于重根數(shù),在子空間任取一個正交坐標系蜡豹,這個坐標系的單位向量可作為特征向量麸粮,取法不唯一!)镜廉。
  • 具體推導(拉格朗日乘子法):
    ? 先求 x 的第一主成分 y1 = α1T x弄诲。即求系數(shù)向量 α1,其中 α1 是在α1T α1 = 1的條件下娇唯,x 的所有線性變換中使方差 var(α1 x) = α1T Σα1 ( 注意:Σ 不是求和符號齐遵,而是協(xié)方差矩陣,Σ = cov( x , x ) =E[( x - μ)( x - μ)T] )達到最大(求解約束最優(yōu)化問題)塔插。
    ????? maxα1 = α1T Σ α1 ? s.t α1T α1 = 1
    定義拉格朗日函數(shù):
    ????? α1T Σα1 - λ(α1T α1 - 1)
    α1 求導梗摇,并令其為0,得:
    ????? Σα1 - λ α1 = 0
    因此佑淀,λ 是Σ 的特征值留美,α1 是對應(yīng)的單位向量。即:
    ????? α1T Σ α1 = α1T λ α1 = λ α1T α1 = λ
    所以伸刃,α1T x谎砾,構(gòu)成第一主成分,其方差對于協(xié)方差矩陣的最大特征值:
    ????? var(α1T x) = α1T Σ α1 = λ1
    ? 接著求x的第二主成分 y2 = α2T x捧颅,第二主成分是在α2 是在α2Tα2 = 1景图,且 α2T xα1T x 不相關(guān)的條件下,x 的所有線性變換中使方差 var(α2T x ) = α2T Σ α2 達到最大的碉哑。
    ? 求第二主成分同樣需要求解約束最優(yōu)化問題挚币。
    ? ? ? ?? maxα2 α2T Σ α2? α1T Σ α2 = 0亮蒋,α2T Σ α1α2T α2 = 0
    注意到:
    ?? ??α1T Σ α2 = α2T Σ α1 = α2T λα1 = λ α2T α1 = λ α1T α2
    并且:
    ?????α1T α2 = 0 ?? α2T α1 = 0
    定義拉格朗日函數(shù):
    ?????α2T Σ α2 - λ(α2T α2 - 1) - фα2T α1
    其中 λ妆毕,ф都是拉格朗日乘子慎玖,對 α2 求導,并令其為0笛粘,得到:
    ?????2Σ α2 - 2λ α2 - фα1 = 0
    將方程左乘 α1T
    ?????2α1TΣα2 - 2λ α1T α2 - фα1T****α1 = 0
    此式子前兩項為0趁怔,且 α1T****α1 = 1,得出 ф = 0薪前,則拉格朗日函數(shù)導數(shù)可以表示為:
    ????? Σα2 - λ α2 = 0
    因此润努,λ是Σ的特征值,α2是對應(yīng)的單位向量示括。即:
    ????? α2T Σ α2 = α2T λ α2 = λα2T α2 = λ
    于是 α2T x 構(gòu)成第二主成分铺浇,其方差對于協(xié)方差矩陣的第二大特征值:
    ????? var(α2T x) = α2T α2 = λ2
    ? 以此類推, x 的第 k 主成分是 αkT x垛膝,并且 var(αkT x) = λk鳍侣,其中,λk是 Σ 的第k個特征值繁涂,并且是 αk 對應(yīng)的單位特征向量拱她。

花書上采用的是計算 Frobenius 范數(shù)來推導的,個人感覺要難懂一些扔罪,感興趣可以看一下
推導過程:
?通常使用矩陣乘法來實現(xiàn)PCA秉沼。對于每一個點x(i)∈Rn,會存在一個編碼后的對應(yīng)向量c(i)∈Rl(一般l會小于n)。為了簡化矿酵,使用矩陣乘法將編碼后的向量映射回 Rn唬复,即滿足 x ≈ g(c) = D c,其中D∈Rn * l 是定義的解碼矩陣全肮。
? PCA算法限定 D 中的列向量彼此正交敞咧,并且都有單位范數(shù)。
? 首先需要明確的是如何根據(jù)每一個輸入 x 得到一個最優(yōu)編碼 c 辜腺。一種做法是使用 L2 范數(shù)來衡量原始向量 x 與重映射后的結(jié)果 g(c)之間的距離休建。在PCA算法中,使用 L2 范數(shù):

? 可以使用平方 L2 范數(shù)來替代L2范數(shù)评疗,即:
該最小化函數(shù)可以簡化為:
? ? ? ? ? (x -g(c))T (x -g(c))
? ? ? ? = xT x - xT g(c) - g(c)T x + g(c)T g(c)
? ? ? ? = xT x - 2xT g(c) + g(c)T g(c)?(g(c)Tx是一個標量测砂,轉(zhuǎn)置為自身)
? 因為第一項xT x不依賴于c,所以可以忽略得到下述優(yōu)化目標:
? ? ? ? c* = (arg min)c - 2xT g(c) + g(c)T g(c)
? 更進一步百匆,代入g(c)的定義可得:
? ? ? ? c* = (arg min)c - 2xT D c + cT DT D c
(矩陣D的正交性和單位范數(shù)約束)
? ? ? ?? ?= (arg min)c - 2xT D c + cT Il c
? ? ? ?? ?= (arg min)c - 2xT D c + cTc
? 可以通過向量微積分來求解該最優(yōu)化問題(如果不太清楚矩陣求導砌些,可以參考:矩陣求導術(shù))
? ? ? ?? ?c (- 2xT D c + cTc) = 0
? ? ? ???? - 2DT x + 2c = 0
? ? ?????? ? c = DT x
? 即若要得到最優(yōu)編碼 c,只需要一個矩陣向量乘法即可,可令 f(x) = DT x存璃,進一步使用矩陣乘法仑荐,還可以定義PCA重構(gòu)(即重新升維到x的維度)操作:
? ? ???? (x≈)r(x) = g(f(x)) = D DT x
? 接下來需要挑選編碼矩陣D∽荻可以采用最小化所有維度上點的誤差矩陣的Frobenius范數(shù):
為了推導求D* 的算法粘招,可以先考慮 l = 1 的情況(即降維至一維),這種情況下D 是一個單一向量 d篮迎,帶入r(x)上式可化為:
進一步整理可得(dT x(i) 是一個標量):
將表示各點的向量堆疊成一個矩陣男图,記為X∈Rm * n ,其中Xi, = x(i)T甜橱。則原問題可以重新描述為:
暫不考慮約束,可以將Frobenius范數(shù)簡化為如下形式(采用跡運算來表示Frobenius范數(shù)):
(因為與d無關(guān)的項不會影響到arg min)
(因為循環(huán)改變跡運算中相乘矩陣的順序不影響栈戳,可進一步變換)
此時再來考慮約束條件:
這個優(yōu)化問題可以通過特征分解來求解岂傲,即最優(yōu)的dXTX最大特征值對應(yīng)的特征向量。
? 以上的推導是基于 l =1 的情況的子檀,僅僅得到了第一個主成分镊掖。當我們希望得到主成分的基時,矩陣D由前l(fā)個最大的特征值對應(yīng)的特征向量組成褂痰。

參考資料:
? 《深度學習》
? 《統(tǒng)計學習方法》

本系列相關(guān)文章
深度學習(六):前向傳播算法和后向傳播算法
深度學習(五):機器學習基礎(chǔ)
深度學習(四):數(shù)值計算基礎(chǔ)
深度學習(三):概率與信息論基礎(chǔ)
深度學習(一):線性代數(shù)基礎(chǔ)

深度學習新手亩进,文章若有疏漏,歡迎及時指正缩歪!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末归薛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子匪蝙,更是在濱河造成了極大的恐慌主籍,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逛球,死亡現(xiàn)場離奇詭異千元,居然都是意外死亡,警方通過查閱死者的電腦和手機颤绕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門幸海,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奥务,你說我怎么就攤上這事物独。” “怎么了汗洒?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵议纯,是天一觀的道長。 經(jīng)常有香客問我溢谤,道長瞻凤,這世上最難降的妖魔是什么憨攒? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮阀参,結(jié)果婚禮上肝集,老公的妹妹穿的比我還像新娘。我一直安慰自己蛛壳,他們只是感情好杏瞻,可當我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衙荐,像睡著了一般捞挥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上忧吟,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天砌函,我揣著相機與錄音,去河邊找鬼溜族。 笑死讹俊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的煌抒。 我是一名探鬼主播仍劈,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寡壮!你這毒婦竟也來了贩疙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤诬像,失蹤者是張志新(化名)和其女友劉穎屋群,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坏挠,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡芍躏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了降狠。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片对竣。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖榜配,靈堂內(nèi)的尸體忽然破棺而出否纬,到底是詐尸還是另有隱情,我是刑警寧澤蛋褥,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布临燃,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏膜廊。R本人自食惡果不足惜乏沸,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望爪瓜。 院中可真熱鬧蹬跃,春花似錦、人聲如沸铆铆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽薄货。三九已至翁都,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間菲驴,已是汗流浹背荐吵。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赊瞬,地道東北人。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓贼涩,卻偏偏與公主長得像巧涧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子遥倦,可洞房花燭夜當晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容