所謂clustering,就是說聚類,把一堆東西(合理地)分成兩份或者k份。從數學上來說,
聚類的問題就相當於graph partition的問題,即給定乙個圖g = (v, e),如何把它的頂點集劃分為不相交的子集,
使得這種劃分最好。其難點主要有兩個:
1. 這個「合理」其實相當難達到,隨便設乙個目標函式可能達不到希望的結果。大家可以看了看[1],這裡詳細地討論了一下準則的選擇問題。
2. 即使我們定義了乙個相當好的聚類準則,如何優化它又是乙個問題。
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的語言就是在圖上隨機遊走,子集間相互「串門」的概率大小。相當有
趣。
奇偶歸一猜想
奇偶歸一猜想 英語 collatz conjecture 是指對於每乙個正整數,如果它是奇數,則對它乘3再加1,如果它是偶數,則對它除以2,如此迴圈,最終都能夠得到1。如n 6,根據上述數式,得出序列6,3,10,5,16,8,4,2,1。步驟中最高的數是16,共有8個步驟 如n 8,根據上述數式,...
奇偶歸一猜想
奇偶歸一猜想,又稱為3n 1猜想,冰雹猜想,克拉茲問題,是指對於每乙個正整數,如果它是奇數,則對它乘3再加1,如果它是偶數,則對它除以2,如此迴圈,最終都能夠得到1。這裡用python寫了乙個奇偶歸一猜想程式。x def hailstone n if n 1 return x elif n 2 0 ...
歸園田居 其一
歸園田居 其一 魏晉 陶淵明 少無適俗韻,性本愛丘山。誤落塵網中,一去三十年。羈鳥戀舊林,池魚思故淵。開荒南野際,守拙歸園田。方宅十餘畝,草屋 間。榆柳蔭後簷,桃李羅堂前。曖曖遠人村,依依墟裡煙。狗吠深巷中,雞鳴桑樹顛。戶庭無塵雜,虛室有餘閒。久在樊籠裡,復得返自然。1.少 指少年時代。適俗 適應世...