機器學習算法總結(十二)——流形學習(Manifold Learning)


1、什么是流形

  流形學習的觀點:認為我們所能觀察到的數據實際上是由一個低維流行映射到高維空間的。由於數據內部特征的限制,一些高維中的數據會產生維度上的冗余,實際上這些數據只要比較低的維度就能唯一的表示。所以直觀上來講,一個流形好比是一個$d$維的空間,在一個$m$維的空間中$(m > d)$被扭曲之后的結果。需要注意的是流形並不是一個形狀,而是一個空間。舉個例子來說,比如說一塊布,可以把它看成一個二維的平面,這是一個二維的空間,現在我們把它扭一扭(三維空間),它就變成了一個流形,當然不扭的時候,它也是一個流形,歐式空間是流形的一種特殊情況。如下圖所示

  

 

  再比如對於一個球面上的一點(其實就是三維歐式空間上的點),可以用一個三元組來表示其坐標:

  

  但事實上這三維的坐標只由兩個變量$\theta$和$\varphi$生成的,也可以說成是它的自由度是2,也正好對應了它是一個二維的流形。

   流形具有在局部與歐式空間同胚的空間,也就是它在局部具有歐式空間的性質,能用歐式距離來進行距離計算。這就給降維帶來了很大的啟發,若低維流形嵌入到了高維空間,此時樣本在高維空間的分布雖然復雜,但在局部上仍具有歐式空間的性質,因此可以在局部建立降維映射關系,然后再設法將局部映射關系推廣到全局。而且當數據被降維到二維和三維時,就可以進行可視化,因此流形學習也可以被用於可視化。

 

2、等度量映射(Isomap)

  首先介紹下MDS算法,MDS算法的核心思想:找到一個低維空間使得樣本間的距離在高維空間和低維空間基本一致。所以MDS算法是利用樣本間的相似性來保持降維后的輸出結果與降維前一致(此種算法的計算量很大),然而對於高維空間直接計算樣本之間的直線距離(歐式距離)是具有很大的誤導性的。舉個例子,計算地球上南極到北極之間的距離,可以直接計算這兩點之間的距離,但是這種距離是毫無意義的(你總不能從南極打個洞到北極吧),因此引入了測地距離,測地距離才是兩點之間的本真距離。具體如下如所示

  

 

  然而如何計算兩點之間的測地距離呢,畢竟從南極到北極有很多條路徑,不過我們要求的是從南極到北極之間的最短的測地距離。這時就可以利用流形在局部上與歐式空間同胚這個性質,對於每個點基於歐式距離找出其最近鄰點,然后就能建立一個近鄰連接圖,於是計算兩點之間的測地距離的問題,就轉變成為計算近鄰連接圖上兩點之間的最短路徑問題(Dijkstra算法)。

  那么什么是Isomap算法呢?其實就是MDS算法的變種,其思想和MDS一樣,只不過在計算高維空間的距離時是采用測地距離的,而不是無法真實的表達兩點之間的歐式距離。具體算法流程如下(來源:機器學習周志華版)

  

 

  Isomap算法是全局的,它要找到所有樣本全局的最優解,當數據量很大時或者樣本維度很高時,計算量非常大。因此更常用的算法是LLE(局部線性嵌入),LLE放棄所有樣本全局最優的降維,只是通過保證局部最優來降維。

 

3、局部線性嵌入(LLE)

  局部線性嵌入的思想:只是試圖去保持領域內樣本之間的關系。具體如下圖所示,樣本從高維空間映射到低維空間后,各個領域內的樣本之間的線性關系不變。

  

  即樣本點$x_i$的坐標能通過它的領域樣本$x_j, x_l, x_k$重構出來,而這里的權值參數在低維和高維空間是一致的。

  

  LLE算法可以分為兩步:

  第一步根據鄰域關系計算出所有的樣本的領域重構系數$w$,也就是找出每一個樣本和其領域內的樣本之間的線性關系

  

  第二步就是根據領域重構系數不變,去求每個樣本在低維空間的坐標

  

  利用M矩陣,可以將問題寫成

  

  因此問題就成了對$M$矩陣進行特征分解,然后取最小的$d'$個特征值對應的特征向量組成低維空間的坐標$Z$。LLE算法具體的流程如下(來源:機器學習周志華版)

  

  LLE算法總結:

  主要優點:

  1)可以學習任意維的局部線性的低維流形。

  2)算法歸結為稀疏矩陣特征分解,計算復雜度相對較小,實現容易。

  3)可以處理非線性的數據,能進行非線性降維。

  主要缺點:  

  1)算法所學習的流形只能是不閉合的,且樣本集是稠密的。

  2)算法對最近鄰樣本數的選擇敏感,不同的最近鄰數對最后的降維結果有很大影響。

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM