LDA PCA 學習筆記

提要:html

本文主要介紹了和推導了LDA和PCA,參考了這篇博客算法

 LDA編輯器

LDA的原理是,將帶上標籤的數據(點),經過投影的方法,投影到維度更低的空間中,使得投影后的點,會造成按類別區分,一簇一簇的狀況,相同類別的點,將會在投影后的空間中更接近。要說明白LDA,首先得弄明白線性分類器(Linear Classifier):由於LDA是一種線性分類器。對於K-分類的一個分類問題,會有K個線性函數:函數

image

 

PS 上面一大段話徹底能夠不看,看不懂也徹底沒有關係,你只要知道不一樣類的x,通過上面那個式子算出y(x和y的維數可能不一樣,通常y的維數要小一點,由於LDA和PCA就是用來降維的嘛,PPS就是用維數較低的數據就能夠將較高維的數據分開)後仍然能夠分開就好了。舉個例子吧,二維數據x分爲兩類,其中第一類都在第1、四象限,如(1,0)、(7,7)等等,第二類則都在第二象限,如(-1,2)、(-5,8)等等,而後你選取合適的wk,帶入的式子能夠有第一類算出的y都大於0,而第二類y都小於0(這裏只是假設爲0,實際上算出來多是其餘的數),這樣是否是僅用y的大小就能表示出兩類的區別了啊,下面講的就是怎麼求出合適的wk。優化

clip_image002

此圖是原博客主舉得例子,能夠看出紅藍在那條直線上的投影,就是降維的操做spa

在這裏咱們應當考慮用什麼標準考量投影后的數據的好壞了(即y的分佈了),天然而然,咱們但願3d

一、原來的就是不一樣類的x計算成y之後也能分的越開越好(如上圖的那些在線上的紅點和藍點分的越開越好),htm

二、而同一類則離得越近越好(如上圖中咱們但願映射後的紅點咱們但願他能夠更密集些)blog

對於1,咱們選取了每類的中心點用來衡量他們的距離,而2,咱們用了萬能的方差君⊙﹏⊙bip

說了那麼多,咱們總算是將咱們的豬腳弄出來了,~\(≧▽≦)/~啦啦啦

image

你們想來已經知道m1~(公式編輯器壞了的人傷不起),m2~是投影后的類一、2 的中心點了,s1~  s2~的平方則是方差了,我如今只要求出J(w)取最大值時,w的取值就好了,下面全部的推導、計算什麼的都是圍繞這一點展開的,下面是上述公式的數學解釋

類別i的原始中心點爲:(Di表示屬於類別i的點)

image

類別i投影后的中心點爲:

image

衡量類別i投影后,類別點之間的分散程度(方差)爲:

image

 

 而後就是對J(w)的化簡了,具體來就是將  m1~,m2~,s1~,s2~用咱們如今能夠知道的數據代替

 

這是原來的方差(在咱們舉得例子中就是其在x的方差)

image

華麗麗的化成了y的方差

image

 

求個和

 

image

同理(你妹的同理)

image

這樣損失函數能夠化成下面的形式:

 image

解釋一下咱們爲何要將J(w)化成這個樣子,第一點所有用已知的數據表示出來了,也就是說這個式子中只有w是變量了,其餘都是常量了,第二點、化成這樣咱們能夠用拉格朗日法了,至因而什麼是拉格朗日法,請看這裏,下面就是用拉格朗日法來處理J(w),來求出J(w)最大值時的w值了

 

若是分子、分母是均可以取任意值的,那就會使得有無窮解,咱們將分母限制爲長度爲1(這是用拉格朗日乘子法一個很重要的技巧,在下面將說的PCA裏面也會用到,若是忘記了,請複習一下高數),並做爲拉格朗日乘子法的限制條件,帶入獲得:

image

這樣的式子就是一個求特徵值的問題了。

這樣問題就解決了,咱們就求出了w了。

 

對於二維以上的分類的問題,我就直接寫出下面的結論了:

image

這一樣是一個求特徵值的問題,咱們求出的第i大的特徵向量,就是對應的Wi了。

 

PCA

推完LDA後看PCA應該很快了,畢竟兩種方法沒有本質上的區別,只不過PCA是不帶標籤的,將方差取最大的結果罷了(LDA是將J(w)取最大了,且帶標籤的,即事先已經分好類了),推導過程徹底同樣,而最小投影偏差法則是立足於投影的偏差最小這一思想而後給強推出來的,最後證實二者結果相同。

原博客講得不錯,我就直接複製粘貼了。。。

PCA的所有工做簡單點說,就是對原始的空間中順序地找一組相互正交的座標軸,第一個軸是使得方差最大的,第二個軸是在與第一個軸正交的平面中使得方差最大的,第三個軸是在與第一、2個軸正交的平面中方差最大的,這樣假設在N維空間中,咱們能夠找到N個這樣的座標軸,咱們取前r個去近似這個空間,這樣就從一個N維的空間壓縮到r維的空間了,可是咱們選擇的r個座標軸可以使得空間的壓縮使得數據的損失最小。

主成分分析(PCA)與LDA有着很是近似的意思,LDA的輸入數據是帶標籤的,而PCA的輸入數據是不帶標籤的,因此PCA是一種unsupervised learning。LDA一般來講是做爲一個獨立的算法存在,給定了訓練數據後,將會獲得一系列的判別函數(discriminate function),以後對於新的輸入,就能夠進行預測了。而PCA更像是一個預處理的方法,它能夠將本來的數據下降維度,而使得下降了維度的數據之間的方差最大(也能夠說投影偏差最小,具體在以後的推導裏面會談到)。

 

我下面將用兩種思路來推導出一個一樣的表達式。首先是最大化投影后的方差,其次是最小化投影后的損失(投影產生的損失最小)。

 

最大化方差法:

    假設咱們仍是將一個空間中的點投影到一個向量中去。首先,給出原空間的中心點:

image   

假設u1爲投影向量,投影以後的方差爲:

image   

上面這個式子若是看懂了以前推導LDA的過程,應該比較容易理解,若是線性代數裏面的內容忘記了,能夠再溫習一下,優化上式等號右邊的內容,仍是用拉格朗日乘子法:

image   

將上式求導,使之爲0,獲得:

image   

這是一個標準的特徵值表達式了,λ對應的特徵值,u對應的特徵向量。上式的左邊取得最大值的條件就是λ1最大,也就是取得最大的特徵值的時候。假設咱們是要將一個D維的數據空間投影到M維的數據空間中(M < D), 那咱們取前M個特徵向量構成的投影矩陣就是可以使得方差最大的矩陣了。

 

    最小化損失法:

    假設輸入數據x是在D維空間中的點,那麼,咱們能夠用D個正交的D維向量去徹底的表示這個空間(這個空間中全部的向量均可以用這D個向量的線性組合獲得)。在D維空間中,有無窮多種可能找這D個正交的D維向量,哪一個組合是最合適的呢?

    假設咱們已經找到了這D個向量,能夠獲得:

image   

咱們能夠用近似法來表示投影后的點:

image   

上式表示,獲得的新的x是由前M 個基的線性組合加上後D - M個基的線性組合,注意這裏的z是對於每一個x都不一樣的,而b對於每一個x是相同的,這樣咱們就能夠用M個數來表示空間中的一個點,也就是使得數據降維了。可是這樣降維後的數據,必然會產生一些扭曲,咱們用J描述這種扭曲,咱們的目標是,使得J最小:

image   

上式的意思很直觀,就是對於每個點,將降維後的點與原始的點之間的距離的平方和加起來,求平均值,咱們就要使得這個平均值最小。咱們令:

image   

將上面獲得的z與b帶入降維的表達式:

image   

將上式帶入J的表達式獲得:

 image   

再用上拉普拉斯乘子法(此處略),能夠獲得,取得咱們想要的投影基的表達式爲:

image   

這裏又是一個特徵值的表達式,咱們想要的前M個向量其實就是這裏最大的M個特徵值所對應的特徵向量。證實這個還能夠看看,咱們J能夠化爲:

image   

也就是當偏差J是由最小的D - M個特徵值組成的時候,J取得最小值。跟上面的意思相同。

相關文章
相關標籤/搜索