圖˙譜˙馬爾可夫過程˙聚類結構----by林達華
ps:網上還有林的其他幾篇部落格:
原部落格地址:http://dahua.spaces.live.com/ (翻牆後顯示Live blog不再available)
從圖說起
這裡面,最簡單的一個概念就是“圖”(Graph),它用於表示事物之間的相互聯絡。每個圖有一批節點(Node),每個節點表示一個物件,通過一些邊(Edge)把這些點連在一起,表示它們之間的關係。就這麼一個簡單的概念,它對學術發展的意義可以說是無可估量的。幾乎所有領域研究的東西,都是存在相互聯絡的,通過圖,這些聯絡都具有了一個統一,靈活,而又強大的數學抽象。因此,很多領域的學者都對圖有著深入探討,而且某個領域關於圖的研究成果,可以被其它領域借鑑。
矩陣表示:讓代數進入圖的世界
在數學上,一種被普遍使用的表達就是鄰接矩陣(Adjacency Matrix)。一個有N個節點的圖,可以用一個N x N的矩陣G表示,G(i, j)用一個值表示第i個節點和第j個節點的聯絡,通常來說這個值越大它們關係越密切,這個值為0表示它們不存在直接聯絡。這個表達,很直接,但是非常重要,因為它把數學上兩個非常根本的概念聯絡在一起:“圖”(Graph)和“矩陣”(Matrix)。矩陣是代數學中最重要的概念,給了圖一個矩陣表達,就建立了用代數方法研究圖的途徑。數學家們幾十年前開始就看到了這一點,並且開創了數學上一個重要的分支——代數圖論(Algebraic Graph Theory)。
代數圖論通過圖的矩陣表達來研究圖。熟悉線性代數的朋友知道,代數中一個很重要的概念叫做“譜”(Spectrum)。一個矩陣的很多特性和它的譜結構——就是它的特徵值和特徵向量是密切相關的。因此,當我們獲得一個圖的矩陣表達之後,就可以通過研究這個矩陣的譜結構來研究圖的特性。通常,我們會分析一個圖的鄰接矩陣(Adjacency Matrix)或者拉普拉斯矩陣(Laplace Matrix)的譜——這裡多說一句,這兩種矩陣的譜結構剛好是對稱的。
譜:“分而治之”的代數
譜,這個詞彙似乎在不少地方出現過,比如我們可能更多聽說的頻譜,光譜,等等。究竟什麼叫“譜”呢?它的概念其實並不神祕,簡單地說,譜這個概念來自“分而治之”的策略。一個複雜的東西不好直接研究,就把它分解成簡單的分量。如果我們把一個東西看成是一些分量疊加而成,那麼這些分量以及它們各自所佔的比例,就叫這個東西的譜。所謂頻譜,就是把一個訊號分解成多個頻率單一的分量。
矩陣的譜,就是它的特徵值和特徵向量,普通的線性代數課本會告訴你定義:如果A v = c v,那麼c 就是A的特徵值,v就叫特徵向量。這僅僅是數學家發明的一種數學遊戲麼?——也許有些人剛學這個的時候,並一定能深入理解這麼個公式代表什麼。其實,這裡的譜,還是代表了一種分量結構,它為使用“分而治之”策略來研究矩陣的作用開啟了一個重要途徑。這裡我們可以把矩陣理解為一個操作(operator),它的作用就是把一個向量變成另外一個向量:y = A x。對於某些向量,矩陣對它的作用很簡單,A v = cv,相當於就把這個向量v 拉長了c倍。我們把這種和矩陣A能如此密切配合的向量v1, v2, ... 叫做特徵向量,這個倍數c1, c2, ...叫特徵值。那麼來了一個新的向量x 的時候,我們就可以把x 分解為這些向量的組合,x = a1 v1 + a2 v2 + ...,那麼A對x的作用就可以分解了:A x = A (a1 v1 + a2 v2 + ...) = a1 c1 v1 + a2 c2 v2 ... 所以,矩陣的譜就是用於分解一個矩陣的作用的。
這裡再稍微延伸一點。一個向量可以看成一個關於整數的函式,就是輸入i,它返回v( i )。它可以延伸為一個連續函式(一個長度無限不可數的向量,呵呵),相應的矩陣 A 變成一個二元連續函式(面積無限大的矩陣)。這時候矩陣乘法中的求和變成了積分。同樣的,A的作用可以理解為把一個連續函式對映為另外一個連續函式,這時候A不叫矩陣,通常被稱為運算元。對於運算元,上面的譜分析方法同樣適用(從有限到無限,在數學上還需要處理一下,不多說了)——這個就是泛函分析中的一個重要部分——譜論(Spectral Theory)。
馬爾可夫過程——從時間的角度理解圖
回到“圖”這個題目,那麼圖的譜是幹什麼的呢?按照上面的理解,似乎是拿來分解一個圖的。這裡譜的作用還是分治,但是,不是直觀的理解為把圖的大卸八塊,而是把要把在圖上執行的過程分解成簡單的過程的疊加。如果一個圖上每個節點都有一個值,那麼在圖上執行的過程就是對這些值進行更新的過程。一個簡單,大家經常使用的過程,就是馬爾可夫過程(Markov Process)。
學過隨機過程的朋友都瞭解馬爾可夫過程。概念很簡單——“將來只由現在決定,和過去無關”。考慮一個圖,圖上每個點有一個值,會被不斷更新。每個點通過一些邊連線到其它一些點上,對於每個點,這些邊的值都是正的,和為1。在圖上每次更新一個點的值,就是對和它相連線的點的值加權平均。如果圖是聯通並且非週期(數學上叫各態歷經性, ergodicity),那麼這個過程最後會收斂到一個唯一穩定的狀態(平衡狀態)。
圖上的馬爾可夫更新過程,對於很多學科有著非常重要的意義。這種數學抽象,可以用在什麼地方呢?(1) Google對搜尋結果的評估(PageRank)原理上依賴於這個核心過程,(2) 統計中一種廣泛運用的取樣過程MCMC,其核心就是上述的轉移過程,(3) 物理上廣泛存在的擴散過程(比如熱擴散,流體擴散)和上面的過程有很重要的類比,(4) 網路中的資訊的某些歸納與交換過程和上述過程相同 (比如Random Gossiping),還有很多。非常多的實際過程通過某種程度的簡化和近似,都可以歸結為上述過程。因此,對上面這個核心過程的研究,對於很多現象的理解有重要的意義。各個領域的科學家從本領域的角度出發研究這個過程,得出了很多實質上一致的結論,並且很多都落在了圖的譜結構的這個關鍵點上。
圖和譜在此聯姻
根據上面的定義,我們看到鄰接矩陣A其實就是這個馬爾可夫過程的轉移概率矩陣。我們把各個節點的值放在一起可以得到一個向量v,那麼我們就可以獲得對這個過程的代數表示, v(t+1) = A v(t)。穩定的時候,v = A v。我們可以看到穩定狀態就是A的一個特徵向量,特徵值就是1。這裡譜的概念進來了。我們把A的特徵向量都列出來v1, v2, ...,它們有 A vi = ci vi。vi其實就是一種很特殊,但是很簡單的狀態,對它每進行一輪更新,所有節點的值就變成原來的ci倍。如果0 < ci < 1,那麼,相當於所有節點的值呈現指數衰減,直到大家都趨近於0。
一般情況下,我們開始於一個任意一個狀態u,它的更新過程就沒那麼簡單了。我們用譜的方法來分析,把u分解成 u = v1 + c2 v2 + c3 v3 + ... (在數學上可以嚴格證明,對於上述的轉移概率矩陣,最大的特徵值就是1,這裡對應於平衡狀態v1,其它的特徵狀態v2, v3, ..., 對應於特徵值1 > c2 > c3 > ... > -1)。那麼,我們可以看到,當更新進行了t 步之後,狀態變成 u(t) = v1 + c2^t v2 + c3^t v3 + ...,我們看到,除了代表平衡狀態的分量保持不變外,其它分量隨著t 增長而指數衰減,最後,其它整個趨近於平衡狀態。
從上面的分析看到,這個過程的收斂速度,其實是和衰減得最慢的那個非平衡分量是密切相關的,它的衰減速度取決於第二大特徵值c2,c2的大小越接近於1,收斂越慢,越接近於0,收斂越快。這裡,我們看到了譜的意義。第一,它幫助把一個圖上執行的馬爾可夫過程分解為多個簡單的字過程的疊加,這裡麵包含一個平衡過程和多個指數衰減的非平衡過程。第二,它指出平衡狀態是對應於最大特徵值1的分量,而收斂速度主要取決於第二大特徵值。
我們這裡知道了第二大特徵值c2對於描述這個過程是個至關重要的量,究竟是越大越好,還是越小越好呢?這要看具體解決的問題。如果你要設計一個取樣過程或者更新過程,那麼就要追求一個小的c2,它一方面提高過程的效率,另外一方面,使得圖的結構改變的時候,能及時收斂,從而保證過程的穩定。而對於網路而言,小的c2有利於資訊的迅速擴散和傳播。
聚類結構——從空間的角度理解圖
c2的大小往往取決於圖上的聚類結構。如果圖上的點分成幾組,各自聚成一團,缺乏組與組之間的聯絡,那麼這種結構是很不利於擴散的。在某些情況下,甚至需要O(exp(N))的時間才能收斂。這也符合我們的直觀想象,好比兩個大水缸,它們中間的只有一根很細的水管相連,那麼就需要好長時間才能達到平衡。有興趣的朋友可以就這個水缸問題推導一下,這個水缸系統的第二大特徵值和水管流量與水缸的容積的比例直接相關,隨比例增大而下降。
對於這個現象進行推廣,數學上有一個重要的模型叫導率模型(Conductance)。具體的公式不說了,大體思想是,節點集之間的導通量和節點集大小的平均比例和第二大特徵值之間存在一個單調的上下界關係。導率描述的是圖上的節點連線的空間結合,這個模型把第二特徵值c2和圖的空間聚集結構聯絡在一起了。
圖上的聚類結構越明顯, c2越大;反過來說,c2越大,聚類的結構越明顯,(c2 = 1)時,整個圖就斷裂成非連通的兩塊或者多塊了。從這個意義上說,c2越大,越容易對這個圖上的點進行聚類。機器學習中一個重要課題叫做聚類,近十年來,基於代數圖論發展出來的一種新的聚類方法,就是利用了第二大特徵值對應的譜結構,這種聚類方法叫做譜聚類(Spectral Clustering)。它在Computer Vision裡面對應於一種著名的影象分割方法,叫做Normalized Cut。很多工作在使用這種方法。其實這種方法的成功,取決於c2的大小,也就是說取決於我們如何構造出一個利於聚類的圖,另外c2的值本身也可以作為衡量聚類質量,或者可聚類性的標誌。遺憾的是,在paper裡面,使用此方法者眾,深入探討此方法的內在特點者少。
歸納起來
·圖是表達事物關係和傳遞擴散過程的重要數學抽象
·圖的矩陣表達提供了使用代數方法研究圖的途徑
·譜,作為一種重要的代數方法,其意義在於對複雜物件和過程進行分解
·圖上的馬爾可夫更新過程是很多實際過程的一個重要抽象
·圖的譜結構的重要意義在於通過它對馬爾可夫更新過程進行分解分析
·圖的第一特徵值對應於馬爾可夫過程的平衡狀態,第二特徵值刻畫了這個過程的收斂速度(取樣的效率,擴散和傳播速度,網路的穩定程度)。
·圖的第二特徵分量與節點的聚類結構密切相關。可以通過譜結構來分析圖的聚類結構。
馬爾可夫過程代表了一種時間結構,聚類結構代表了一種空間結構,“譜”把它們聯絡在一起了,在數學刻畫了這種時與空的深刻關係。
Markov Chain在數學上確實可以視為Linear Dynamic System的一個special
case,Linear Dynamic System的很多insight其實是可以用於分析Markov
process的。
Linear System是一個非常博大的領域,從這個角度去看待Markov process是一個很好的角度。Linear
System關注特徵方程的根,並且有很多工作描述了特徵根和動態特性的關係。而Markov的第一,第二特徵值問題其實是這個大問題的一個重要特例。
把Linear control system的設計思想用於設計Markov Chain
Monte Carlo,對取樣過程施加反饋式的動態控制,應該是在實用中有重要價值的思路。下次見到Alan Willsky的時候,我可以和他交流一下這個問題的看法。
從另外一個角度說,Markov過程本身有一些重要的特點,使得它值得作為一個專門的topic,獨立於Linear
System進行研究。轉移概率矩陣(或者轉移運算元)的譜半徑(Spectral radius)為1,並且是自伴的(Self-adjoint),這決定了它的全部特徵根都是實數,而且都在[-1,
1]之間。相比於很多其它領域的線性系統,這是非常特殊的。
對於Vision還有一些AI領域來說,它的Markov過程還有著一些難點:multi-mode
& highly peaked. 形象的說,就是巨大的星球之間用一跟細絲來往,而且隨著系統的規模加大,secondary eigenvalue和1的gap以幾何級數衰減,也就是收斂時間指數增長。這在傳統線性動態系統中是不多見的。
from: http://blog.csdn.net/hellotruth/article/details/30750699
相關文章
- 理解馬爾可夫決策過程馬爾可夫
- 「馬爾可夫決策過程」學習筆記馬爾可夫筆記
- 域結構進化的馬爾可夫模型馬爾可夫模型
- 隱馬爾可夫模型隱馬爾可夫模型
- HMM隱馬爾可夫模型HMM隱馬爾可夫模型
- 隱馬爾可夫模型 | 賽爾筆記隱馬爾可夫模型筆記
- 隱馬爾可夫模型詳解隱馬爾可夫模型
- 10_隱馬爾可夫模型隱馬爾可夫模型
- ML-隱馬爾可夫模型隱馬爾可夫模型
- 機器學習之隱馬爾可夫模型機器學習隱馬爾可夫模型
- 馬爾可夫鏈模型(轉載)馬爾可夫模型
- 隱馬爾可夫模型(HMM)詳解隱馬爾可夫模型HMM
- 隱馬爾可夫模型及應用隱馬爾可夫模型
- 2022-05-17-馬爾科夫鏈之傳統馬爾可夫鏈馬爾科夫馬爾可夫
- 強化學習(二)馬爾科夫決策過程(MDP)強化學習馬爾科夫
- 隱馬爾可夫模型(HMM)中文分詞隱馬爾可夫模型HMM中文分詞
- 機器學習知識點(十)馬爾可夫鏈機器學習馬爾可夫
- 譜聚類原理總結聚類
- 隱馬爾可夫模型(HMM)實現分詞隱馬爾可夫模型HMM分詞
- 使用馬爾可夫模型自動生成文章馬爾可夫模型
- 在 Swift 中使用馬爾可夫鏈生成文字Swift馬爾可夫
- HMM隱馬爾可夫模型來龍去脈(二)HMM隱馬爾可夫模型
- NLP-隱馬爾可夫模型及使用例項隱馬爾可夫模型
- 馬爾可夫鏈是個什麼鬼?圖文詳解告訴你!馬爾可夫
- 強化學習入門第一講 馬爾科夫決策過程強化學習馬爾科夫
- 最簡單的隨機過程——馬爾科夫鏈的Python分析隨機馬爾科夫Python
- 強化學習組隊學習task02——馬爾可夫決策過程及表格型方法強化學習馬爾可夫
- MCMC(二)馬爾科夫鏈馬爾科夫
- 【HMM】隱馬爾科夫模型HMM馬爾科夫模型
- 隱馬爾可夫模型的Viterbi解碼演算法隱馬爾可夫模型Viterbi演算法
- 漫談自學習人工智慧代理:馬爾可夫決策過程(第一部分)人工智慧馬爾可夫
- 用簡單易懂的例子解釋隱馬爾可夫模型隱馬爾可夫模型
- R資料分析:縱向分類結局的分析-馬爾可夫多型模型的理解與實操馬爾可夫多型模型
- 譜聚類(spectral clustering)原理總結聚類
- 馬爾可夫鏈你知道多少?Python視覺化解析MCMC馬爾可夫Python視覺化
- [譯] 用 Python 實現馬爾可夫鏈的初級教程Python馬爾可夫
- 維特比演算法和隱馬爾可夫模型的解碼維特比演算法隱馬爾可夫模型
- 一個馬爾科夫鏈例項馬爾科夫