降維(一)----說說主成分分析(PCA)的源頭

主成分分析(PCA) 在很多教程中做了介紹,但是爲何通過協方差矩陣的特徵值分解能夠得到數據的主成分?協方差矩陣和特徵值爲何如此神奇,我卻一直沒弄清。今天終於把整個過程整理出來,方便自己學習,也和大家交流。

  • 提出背景

       以二維特徵爲例,兩個特徵之間可能存在線性關係的(例如這兩個特徵分別是運動的時速和秒速度),這樣就造成了第二維信息是冗餘的。PCA的目標是爲了發現這種特徵之間的線性關係,檢測出這些線性關係,並且去除這線性關係。

       還是以二維特徵爲例,如下圖。特徵之間可能不存在完全的線性關係,可能只是強的正相關。如果把x-y座標分解成u1-u2座標,而u1軸線上反應了特徵的主要變化(intrinsic),而u2的特徵變化較小,其實可以完全理解爲一些噪聲的擾動而不去考慮它。PCA的任務就是找到u1和u2。

 SouthEast

  • 預處理:

        將每一維特徵的均值中心化,方差歸一化。

     SouthEast

  • PCA的數學目標:

        特徵的主方向,就是特徵幅度變化最大的方向(“major>Tu(第一次錯誤地寫成了d=x,感謝@zsfcg的留言,現已改正)。所有的樣本點都在一個方向投影后,他們就都在同一條直線上了。而要比較它們之間變化的程度,只要比較d的方差就行。方差最大的u對應的方向就是我們要尋找的主方向。因此,我們的目標函數就成爲了:   

      SouthEast                         (1)

        其中x的上標i表示數據集中的第i個樣本,m表示數據集中的樣本總數。(因爲x已經中心化了,所以xu的均值也爲0,因此xu的平方只和就是方差。)

        括號中的一項十分熟悉,就是協方差矩陣Σ!終於知道協方差矩陣是怎麼來的了。再看一看上面的式子,協方差矩陣與投影的方向無關,之於數據集中的樣本有關,因此協方差矩陣完全決定了數據的分佈及變化情況(請和自相關矩陣區別)。

        目標函數如下:

          SouthEast                                                                        (2)

        用拉格朗日乘數法求解上面的最大化問題,很容易得到:

          SouthEast                                                                                               (3)

        看見沒?!u就是Σ的特徵向量,λ就是特徵值。我們再把(3)代入(2),目標函數就變成了

        SouthEast                                                                                        (4)

        可見,可以通過協方差矩陣的跡衡量方差的大小。最大的特徵值λ(以及對應的特徵向量u)決定了數據變化最大的方向。u就是這個單位方向。因此PCA的求解過程就是對協方差矩陣進行特徵值分解,並找到最大的幾個特徵值的過程。

        再後面的過程就是由最大的k個特徵值對應的特徵向量組成一組新的基(basis),讓原特徵對這個新的基投影得到降維後的新特徵。這個過程很多教程都介紹的很清楚了,我就不描述了。

        不過我還是想補充一下矩陣及其特徵值的意義。矩陣應理解爲一種空間變換(從一個空間到另一個空間的變換)。矩陣M是m×n維的,如果m=n則變換後空間維數不變,如果n<m則是降維了。我們考慮m=n的方陣。對M進行特徵值分解,得到一組新的基,這組基可以理解爲m維空間下的一組新的基座標(引入它是因爲這組基座標是一種更有效的表達Rm維空間的方式),而對應的特徵值,就是投影在基座標下相應維的響應程度。如果特徵值爲0,代表在這一維下沒有相應,不管是多少,乘過來都是0。特徵值如果很接近0,那麼任何數在這一維下投影后都會變小很多。所以從降維的角度考慮,可以將這一維忽略(也就是PCA中保留前k個特徵值的目的)。奇異值分解也是同樣的道理。

         PCA其實是最簡單的降維方法之一了,很明顯的劣勢是它僅去除數據之間的線性相關性。對線性的改善往往通過kernel技術拓展到非線性的應用上。另外,PCA的這種降維不一定有助於分類,用於分類的降維方法之一就是LDA。從另一方面說,PCA是一種線性投影,保留了數據與數據之間的歐式距離,即原來歐式距離大的兩點在降維後的空間中距離也應大(這樣纔好保證方差大)。而事實上數據有可能呈現某種流型結構,用PCA降維後數據將不能保持原有的流型結構。在這一方面常用的非線性降維方法是Locally linear embeddingLaplacian Eigenmaps,如下圖所示:

         SouthEast

        PCA的另一種推導方式是最小化投影后的損失(把降維理解爲壓縮,壓縮後還原所得到的誤差最小),在這篇文章中也有具體介紹,我也不多說了。

       寫到這裏,才發現我啥也沒說,都是提供了各種文獻的鏈接。

       另外,關於特徵值和特徵向量的更深理解,可以看本文

--------------------

jiang1st2010

原文地址:http://blog.csdn.net/jiang1st2010/article/details/8935219



發佈了10 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章