Pages

Wednesday, November 23, 2011

[Note] Spectral Clustering (SVD)

這篇是在找normalization cut 時候找到的,算是轉錄再轉錄
來源網址是
http://blog.xuite.net/coke750101/coketech/19917487

Spectral Clustering
http://140.123.102.86:180/phpBB3/viewtopic.php?f=10&t=154
分頁: 1 / 1

作者:  Sam.Tzeng. [ 週一 3月 10, 2008 3:09 pm ]
文章標題 :  Spectral Clustering

Spectral Clustering

轉自bbs.sjtu.edu.cn


什麼叫Spectral Algorithm?
廣義上來說,任何在演算法中用到SVD/特徵值分解的,都叫Spectral Algorithm。從很老很老的PCA/LDA,到比較近的Spectral Embedding/Clustering,都屬於這類。


為什麼要用SVD/特徵值分解?
其實並不是為用而用,而是不得不用。目前在研究領域碰到的很多基礎問題都是NP-hard的,找一個比較好的近似演算法要費很大的精力;就算找到多項式的近似方法,也會出現實際使用上仍然太慢/解陷入局部極小等問題。

比如說用K-means聚類,建模本身已經夠簡單了,但它是NP-hard的,用傳統的EM迭代作近似解會陷入局部極小。

反 之,SVD理論上只有唯一解,演算法速度相對又快,並且有大量理論結果及周邊性質支持,可以算是一個很理想地能將NP-hard問題“靠”上去的模型;它 的另一個好處是,作為帶約束二次規劃的一種特殊情況,它對運算式為二次的目標函數的“相容性”比較好,“靠”所要求的數學技巧不高,任何人,任何方向都能 拿來試試。


Spectral Algorithm的幾個方向:
傳統的如PCA/LDA用來做線性降維,2000年左右的一些Spectral Embedding及Spectral Clustering,還有周邊的一些,如Low-rank approximation等等。


為什麼先做降維再做K-means,效果會更好呢?
另外,有趣的是K-means可以用PCA來做近似解。K-means是說找到K個點,使得所有點到這K個點的距離平方和最小;
而SVD是說找到一個子空間,使得所有點到這個子空間的距離平方和最小。於是這兩者就建立了聯繫,K-means便relax到SVD上去了。



Spectral Clustering/Embedding:

Spectral Clustering可算是Spectral Algorithm的重頭戲。
所謂Clustering,就是說聚類,把一堆東西(合理地)分成兩份或者K份。從數學上來說,聚類的問題就相當於Graph Partition的問題,即給定一個圖G = (V, E),如何把它的頂點集劃分為不相交的子集,使得這種劃分最好。其難點主要有兩個:

1. 這個“合理”其實相當難達到,隨便設一個目標函數可能達不到希望的結果。大家可以看了看[1] Ravi Kannan and Adrian Vetta, On clusterings: good, bad and spectral,這裏詳細地討論了一下準則的選擇問題。
2. 即使我們定義了一個相當好的聚類準則,如何優化它又是一個問題。

對於1,在Spectral Clustering這一塊,各家有各家的想法。主要有以下幾種:
a) 大名鼎鼎的Normalized Cut[2],還有一些變種如Ratio Cut/Minmax cut.
b) 和代數圖論緊密相聯的Minimum conductance[1].
c) 沒有準則,但有證明的演算法[3]
d) 不基於圖,而是reformulate原來的聚類方法,使之變成SVD能解的問題[4]。
2則完全被1的選取所決定。



Normalized Cut:
在 圖上,定義什麼樣的聚類最好,最簡單的方法是圈定K個不相交頂點集之後,希望頂點集之間的邊,其權值的和最小。(邊上的權值代表的是兩頭的頂點鄰近的程 度,或者說相似度)這就是所謂MinCut(最小割)問題。二類分類的最小割不是NP-hard的,但是這不能讓人感到開心,因為MinCut這個準則對 於聚類不好。

具體來說,Mincut完全可能將離大部隊過遠的單個頂點與其他頂點分開, 形成兩類。
事實上,我們不僅僅要讓割邊的權和最小,而且要讓這K個頂點集都差不多大,這樣才符合聚類給人的直觀感覺。

於是在MinCut的基礎上,出現了Normalized Cut. 思路很簡單,將Cut normalize一下,除以表現頂點集大小的某種量度(如 vol A = 所有A中頂點集的度之和)。
也就是Normalize Cut(A, B) = Cut(A, B) / volA + cut(A, B) / volB
然而這樣一改,NP-hard就來了。這幾乎是所有組合優化問題的惡夢。

怎麼辦呢?把組合優化問題連續化,即所謂減少約束,進行適當的relax。那麼為什麼會和SVD扯上的呢?

很簡單,聚類是東西分成不相交集,也就是有正交的含義在裏面;只是分東西必須是0-1式的,這種離散化,就是np-hard的原因。我們把正交約束保留,但把離散變成連續的,聚類就變成了尋找(列)正交陣的優化問題,那正是SVD的火力所在!

就這樣,通過這種巧妙的relax,NP-hard問題有了近似解。且不說這近似解的質量如何,這種方法是相當令人振奮的。(關於Normalized Cut近似解的質量, 似乎沒有什麼文章能夠給出嚴格的證明,只是實際效果不錯就是了。)

值得一提的是,Normalized Cut還和圖上的Markov chain有緊密的關係[5]。Normalized Cut這個量度,換成Markov chain的語言就是在圖上隨機遊走,子集間相互“串門”的概率大小。相當有趣。



Minimum conductance:

Minimum conductance是另一種Graph Partition的準則,和Normalized Cut看起來相當像,然而分析方法卻完全不同。Minimum conductance是圖上的一種不變數,在代數圖論中,它被稱為Cheeger constant, 是指遍曆所有的子集分劃(A, B),邊割除上min(vol A, vol B)的最小值。 vol是圖上頂點集大小的量度(這個量度和Normalized Cut所用的量度是一樣的)。

這個按理說比Normalized Cut所用的量度更難處理,因為有min函數。然而,有趣的是在代數圖論中有這樣的結論,圖上的Laplace矩陣的第二小特徵值(第一小是0)是Cheeger constant的一個估計:

2 * Cheeger constant <= \lambda <= (Cheeger constant)^2 / 2

OK,SVD再次登場,找到Laplace矩陣的第二小特徵值,然後用相應特徵向量做圖的割,雖然差了點,但不會比Minimum conductance的割差到哪里去。並且差多少,是有理論界的。



沒有準則,但有證明的演算法
有時候寫準則是很麻煩的,反過來說,不用準則直接給出演算法及證明,難度更大然而更靈活。[1]給出了一個遞迴演算法,不斷地把圖分成兩塊,直到某個終止條件被滿足,這樣能做K類分類。
[1] 還給出了證明,保證這樣聚類出來的質量。相比之下,Normalized Cut對於對多類分類,無法給出這樣的界,儘管它也是不斷地二類分下去。另外,[3]給出了一個能直接做多類分類的方法:先Spectral再K- mean. 它沒有目標函數准則,卻能用矩陣擾動理論,證明至少在稍許偏離理想情況下演算法是work的。

這種做法,給一直遵循從目標函數到演算法這一步驟的我以很大的啟發。原來自己走的路一直是很窄的啊。



Reformulate原來的聚類方法:
或許Spectral Clustering給我們留下最重要的,並不是那麼多演算法,而是將SVD融入優化問題的思路,即所謂的spectral relaxation。
[4]正是使用了這條思路,將K-means重新建模,以離散化連續,relax成可以用SVD解的問題,並解之。[4]就數學技巧而言只能說一般般,但是用上了,就會出來很有趣的東西。

其他一些聚類方法:
此 外,還有其他的一些用到Spectral Algorithm的聚類方法。如[7]裏面,Spectral Algorithm用來將點集分成樹狀,然後在樹上以其他準則(如K-means) 將樹葉合併回去,形成最終的聚類結果。在樹上很多本來np-hard的問題就變成可以用動態規劃解了。



Spectral Embedding,一些非線性降維的方法:
除了Spectral clustering, Spectral Embedding即用spectral algorithm來進行非線性降維,也是譜演算法的應用之一。
這個和流形學習有一定聯繫,Salu大哥對此方面極為精通,呵呵。
Laplacian Eigenmap[9]是其中一個很有名的方法。它也是使用圖的Laplace矩陣,優化一個二次函數,解SVD得到的。只是這裏不像聚類,沒有relax的過程,因此得到的就是精確解。


一些周邊:
1. Low-rank approximation
目前來說,解SVD已經算相當快了,但是仍然滿足不了某些應用的胃口。因此解SVD的方法也有了一些發展。用隨機演算法是一個趨勢。

2. Semi-definite Programming(SDP)
作為Spectral algorithm的競爭對手,把一些聚類問題relax到SDP在理論上會有更好的結果,不過實驗上看不出差別[11]。而且要命的是......實在太複雜了。


一些有用的資料和website:

http://crd.lbl.gov/~cding/Spectral/
這 個不用說了,查spectral clustering第一個就是它。不過頁面上附的Tutorial實在不行,單看是幾乎不懂的。還是老老實實看Selected References裏的paper比較好。http://www.cc.gatech.edu/~vempala/papers /spectral.html



[1] Ravi Kannan and Adrian Vetta, On clusterings: good, bad and spectral. Jour
nal of the ACM (JACM) 51(3), 497--515, 2004.
[2] J. Shi and J. Malik. Normalized cuts and image segmentation. IEEE. Trans.
on Pattern Analysis and Machine Intelligence, 22:888--905, 2000.
[3] A.Y. Ng, M.I. Jordan, and Y. Weiss. On spectral clustering: Analysis and a
n algorithm. Proc. Neural Info. Processing Systems (NIPS 2001), 2001.
[4] H. Zha, C. Ding, M. Gu, X. He, and H.D. Simon. Spectral relaxation for K-m
eans clustering. Advances in Neural Information Processing Systems 14 (NIPS 20
01). pp. 1057-1064, Vancouver, Canada. Dec. 2001.
[5] M. Meila and J. Shi. A random walks view of spectral segmentation. Int'l W
orkshop on AI & Stat (AI-STAT 2001).
[6] F.R.K. Chung. Spectral Graph Theory. Amer. Math. Society Press, 1997.
[7] A Divide-and-Merge Methodology for Clustering (D. Cheng, R. Kannan and G.
Wang) Proc. of the ACM Symposium on Principles of Database Systems, 2005.
[8] H. Zha, X. He, C. Ding, M. Gu & H. Simon. Bipartite Graph Partitioning and
Data Clustering, Proc. of ACM 10th Int'l Conf. Information and Knowledge Mana
gement (CIKM 2001), pp.25-31, 2001, Atlanta.
[9] M. Belkin and P. Niyogi. Laplacian Eigenmaps and Spectral Techniques for E
mbedding and Clustering, Advances in Neural Information Processing Systems 14
(NIPS 2001), pp: 585-591, MIT Press, Cambridge, 2002.
[10] E.P. Xing and M.I. Jordan. On semidefinite relaxation for normalized k-cu
t and connections to spectral clustering. Tech Report CSD-03-1265, UC Berkeley
, 2003.

No comments:

Post a Comment