【譜聚類】關於譜聚類(Spectral Clustering)的一個總結


      本文將對譜聚類的知識進行一些總結。目的在於記錄自己的學習經歷,當作自己的筆記來寫。寫得不好的地方歡迎交流指正。譜聚類是一種非常流行的聚類算法,它不需要對簇的類型有很強的假設,可以聚類任何形狀的數據。

一、簡要介紹

      由於網上有許多的關於譜聚類的介紹,所以我這里只是簡要介紹一下譜聚類。聚類是一種對數據分析非常有用的工具,它是一種典型的無監督學習的方法它。將數據集合分為許多的簇,使得同一個簇中的元素具有高相似度,而不同簇之間的相似度則低。

      譜聚類使用了關聯矩陣的特征向量來進行聚類。是一種基於圖論的聚類方法。

二、譜聚類理論知識

      譜聚類算法利用了譜圖切分的理論。我們假設有圖G=<V,E>,V為圖的頂點集,而集合中的每個頂點代表我們聚類的一個數據點。E為圖的邊集,每條邊的權重為兩個數據點的相關聯的程度,權重越高,說明兩個頂點之間相似度越高。G為一個無向帶權圖。我們的目標是將這個圖G切分為多個不相交的子圖,使得子圖內有很高的相似度,而子圖間相似度較低。那么我們現在就把聚類問題轉換為Graph-cut問題。那么,切割的准則是什么呢?

       我這里介紹三類切割准則:Minimum-cut、Normalized-cut、Multiway Normalized-cut。

  (1)Minimum cut

  我們先來考慮2路切分的問題,也就是把圖切成兩部分A,B。A∩B=空集,A∪B=V。把該圖切割,也就意味着斷開A與B之間的所有相連接的所有邊。所以這種切分准則的定義為:

  

其中,s(p,q)為兩個點之間的相似程度。那么如何去量化這一相似程度呢?一個非常常見的方法是高斯距離:

 

該准則最小化兩個簇A、B之間的相似程度,以達到聚類的效果。但是存在一個問題:會出現切割不平衡的情況。即,只從集合V中切出一個頂點,如下圖所示:

(該圖來源於《Normalized Cuts and Image Segmentation》)

 

所以,這個並不是最好的准則。關於min-cut的求解,一般使用max-flow。具體的內容已經超越了本文的范圍,有興趣的同學可以去了解一下。

  (2)Normalized cut

  簡稱Ncut准則,該准則最先在《Normalized Cuts and Image Segmentation》中提出,它的准則定義為:

cut(A,B)與min-cut中的定義相同,而assoc(A,V)表示的是子集A中的點到集合V中點的所有edge的總和。定義如下:

 

這種准則解決了min-cut的弊端。極端情況下,如果只切出一個點的情況,假設集合B只包含一個點,那么assoc(B,V)的值與cut(A,B)的值將會非常接近,兩者比值接近1,所以肯定不會是最小的Ncut值。由Ncut的定義可知,我們測量的是兩個子集的不相關程度,那么是不是也可以測量各個子集的相關程度呢?帶着這個問題,Shi和Malik提出了另一個准則,用來測量相關程度:

其中,assoc(A,A)和assoc(B,B)表示他們集合的edge的總和。要做到最優切分,我們當然要使子集內關聯程度高,所以應該最大化Nassoc;也要使子集間關聯程度低,所以應該最小化Ncut。那么該如何選擇呢?兩者皆可。可以證明,最大化Nassoc就相當於最小化Ncut,即二者是等價的關系。證明如下:、

由於證明比較簡單,我這里就不做解釋了。

  (3)Multiway Normalized cut

  我們上面提到了2路的切分,現在把這一准則推廣到多路切分。准則如下:

其中,k為切分的簇數,是Ai的補集。。當k=2時,就變成了我們上面的Ncut。

  (4)還有一些其他准則,如Average cut,Ratio cut,Min-max cut等。這里不再一一敘述。

  上述的所有准則,我們將其最小化都是一個N-P hard問題。那么該如何將其最小化呢?一種可選的方法是放松約束,將原問題轉換為解決拉普拉斯矩陣的問題。這將得到一個近似的最優解。所以,該方法稱為譜聚類的原因也是因為這里會用到特征值分解,拉普拉斯矩陣的特征值就被稱為譜。我們在這里定義一個關於集合V的指示向量:

最后的划分即為圖拉普拉斯矩陣的第二小特征向量。(注:關於為什么是第二小的特征向量,為什么是拉普拉斯矩陣,求解過程是什么等問題,我將統一在下一篇文章中解釋

 三、譜聚類算法

   (1)前期准備。給定一個數據即X.兩點之間的weight可以表示為Sij:

由Sij組成的NXN的矩陣稱為相似度矩陣W,我們將頂點vi的度定義為:所有和vi相連頂點weight的總和。由此我們可以得到度矩陣D:

其中,。即對W矩陣中的第i行(或者列)求和。自此,我們得到了拉普拉斯矩陣L=D-W

  有很多的譜聚類算法,他們的不同之處在於如何去選擇目標函數以及如何構造拉普拉斯矩陣(相似矩陣的構造有很多種,如全連接、k近鄰、閾值法等)。但是所有的算法都有一個相同的框架:

    a.根據給定的數據構造一個圖矩陣,不同情況有不同的方法。

    b.解除矩陣的前k個特征向量並以此構造新的特征空間。

    c.通過一些聚類算法(如k-means)來聚類特征空間中的特征向量。

  下面我將簡要介紹三種典型的譜聚類算法。

  (2)SM Algorithm。該算法是有Shi and Malik在Normalized cut and image segment一文中提出的。最小化Ncut可以被描述為:

這里的x表示種類,只能去1或者-1。我們可以通過放松x的約束到實數來找到一個近似解。這個目標函數可以通過瑞利熵(Rayleigh quotient)來求解。然后,問題就轉換為解第二小特征值的問題。我們解出來的特征值對應的特征向量就是我們聚類的結果。雖然解出來的是實數值,但是我們不關心他們的具體數值,只關心它的正負號(或者大於還是小於均值)即可。

  (3)NJW Algorithm

  該算法同時使用了k個特征向量,因為使用更多的特征向量可以得到更好的結果。該算法的大致步驟為:

    a.計算相似度矩陣S和度矩陣D,計算歸一化拉普拉斯矩陣:

    b.計算出L的前k個特征向量v1,,,,vk

    c.使用v1,v2,,,vk這k個列向量去構造矩陣Q。Q為NxK

    d.對於矩陣Q的每一行,將其歸一化到1,即:

    e.重新構建n個向量r,ri為Q的第i行

    f.使用經典的聚類算法對上面的n個向量r進行聚類,最后得出C1,C2,,,Ck個簇。

  (3)Markov Random walks

  馬爾科夫隨機游走是從一種不同的視角來看待譜聚類,它使用的是概率模型來解決譜方法問題。隨機游走在圖中可以解釋為,隨機的從一個節點跳到另外一個節點。譜聚類可以被解釋為尋找一種圖切分,使得隨機游走在同一個簇中待很長時間,幾乎不會游走到其他簇中去。

  構建隨機轉移矩陣,我們發現,其實矩陣P就是歸一化之后的S,P中每一行的和為1。所以Pij就是從vi跳到vj的概率。算法流程與最開始給的框架相似,這里不再多說。值得注意的是,隨機游走解出來的應該是第二大的特征值對應的特征向量,而不是第二小。

  關於隨機游走算法更具體的解釋,請參考《A Random Walks View of Spectral Segmentation》,其中還從另外一個方面說明了為什么Ncut算法要取第二小特征值對應的特征向量。

四、困難點

  (1)如何合理構造相似矩陣和拉普拉斯矩陣。

  (2)如何決定參數,如簇的數量和sigma的值。

  (3)大規模數據的計算問題。

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 


免責聲明!

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



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