從拉普拉斯矩陣說到譜聚類
\html
11月1日上午,機器學習班 第7次課,鄒講聚類(PPT),其中的譜聚類引發了本身的興趣,鄒從最基本的概念:單位向量、兩個向量的正交、方陣的特徵值和特徵向量,講到類似度圖、拉普拉斯矩陣,最後講譜聚類的目標函數和其算法流程。算法
課後本身又琢磨了番譜聚類跟拉普拉斯矩陣,打算寫篇博客記錄學習心得, 如有不足或建議,歡迎隨時不吝指出,thanks。markdown
\機器學習
在講譜聚類以前,有必要了解一些矩陣方面的基礎知識。函數
若是對矩陣的概念已經模糊,推薦國內一人寫的《理解矩陣by孟巖》系列,其中,拋出了不少有趣的觀點,我以前在閱讀的過程當中作了些筆記,以下:oop
「一、簡而言之:矩陣是線性空間裏的變換的描述,類似矩陣則是對同一個線性變換的不一樣描述。那,何謂空間?本質而言,「空間是容納運動的一個對象集合,而變換則規定了對應空間的運動」by孟巖。在線性空間選定基後,向量刻畫對象的運動,運動則經過矩陣與向量相乘來施加。然,到底什麼是基?座標系也。學習
二、有了基,那麼在(1)中所言的則應是:矩陣是線性空間裏的變換的描述,類似矩陣則是對同一個線性變換在不一樣基(座標系)下的不一樣描述。出來了兩個問題,一者何謂變換,兩者不一樣基(座標系)如何理解?事實上,所謂變換,即空間裏從一個點(元素/對象)到另外一個(元素對象)的躍遷,矩陣用來描述線性變換。基呢?經過前面已知,矩陣無非不過就是用來描述線性空間中的線性變換的一個東西而已,線性變換爲名詞,矩陣爲描述它的形容詞,正如描述同一我的長得好看能夠用多個不一樣形容詞"帥」"靚」描述,同一個線性變換也能夠由多個不一樣的矩陣來描述,而由哪個矩陣描述它,則由基(座標系)肯定。優化
三、前面說了基,座標系也,形象表述則爲角度,看一個問題的角度不一樣,描述問題獲得的結論也不一樣,但結論不表明問題自己,同理,對於一個線性變換,能夠選定一組基,獲得一個矩陣描述它,換一組基,獲得不一樣矩陣描述它,矩陣只是描述線性變換非線性變換自己,類比給一我的選取不一樣角度拍照。
四、前面都是說矩陣描述線性變換,然,矩陣不只能夠用來描述線性變換,更能夠用來描述基(座標系/角度),前者好理解,無非是經過變換的矩陣把線性空間中的一個點給變換到另外一個點上去,但你說矩陣用來描述基(把一個座標系變換到另外一個座標系),這可又是何意呢?實際上,變換點與變換座標系,殊途同歸!
(@坎兒井圍脖:矩陣還能夠用來描述微分和積分變換。關鍵看基表明什麼,用座標基就是座標變換。若是基是小波基或傅里葉基,就能夠用來描述小波變換或傅里葉變換)
五、矩陣是線性運動(變換)的描述,矩陣與向量相乘則是實施運動(變換)的過程,同一個變換在不一樣的座標系下表現爲不一樣的矩陣,但本質/徵值相同,運動是相對的,對象的變換等價於座標系的變換,如點(1,1)變到(2,3),一者可讓座標點移動,兩者可讓X軸單位度量長度變成原來1/2,讓Y軸單位度量長度變成原來1/3,先後二者均可以達到目的。
六、Ma=b,座標點移動則是向量a通過矩陣M所描述的變換,變成了向量b;變座標系則是有一個向量,它在座標系M的度量下結果爲a,在座標系I(I爲單位矩陣,主對角爲1,其它爲0)的度量下結果爲b,本質上點運動與變換座標系二者等價。爲什麼?如(5)所述,同一個變換,不一樣座標系下表現不一樣矩陣,但本質相同。
七、Ib,I在(6)中說爲單位座標系,其實就是咱們常說的直角座標系,如Ma=Ib,在M座標系裏是向量a,在I座標系裏是向量b,本質上就是同一個向量,故此謂矩陣乘法計算無異於身份識別。且慢,什麼是向量?放在座標系中度量,後把度量的結果(向量在各個座標軸上投影值)按順序排列在一塊兒,即成向量。
八、b在I座標系中則是Ib,a在M座標系中則是Ma,故而矩陣乘法MxN,不過是N在M座標系中度量獲得MN,而M自己在I座標系中度量出。故Ma=Ib,M座標系中的a轉過來在I座標系中一量,卻成了b。如向量(x,y)在單位長度均爲1的直角座標系中一量,是(1,1),而在X軸單位長度爲2.Y軸單位長度爲3一量則是(2,3)。
九、何謂逆矩陣? Ma=Ib,以前已明瞭座標點變換a-〉b等價於座標系變換M-〉I,但具體M如何變爲I呢,答曰讓M乘以M的逆矩陣。以座標系spa
爲例,X軸單位度量長度變爲原來的1/2,Y軸單位度量長度變爲原來的1/3,即與矩陣.net
相乘,便成直角座標系I。即對座標系施加變換,即讓其與變換矩陣相乘。 」
根據wikipedia的介紹,在矩陣中,n階 單位矩陣,是一個 的方形矩陣,其主對角線元素爲1,其他元素爲0。單位矩陣以
表示;若是階數可忽略,或可由先後文肯定的話,也可簡記爲
(或者E)。 以下圖所示,即是一些單位矩陣:
單位矩陣中的第 列即爲單位向量
。單位向量同時也是單位矩陣的特徵向量,特徵值皆爲1,所以這是惟一的特徵值,且具備重數n。因而可知,單位矩陣的行列式爲1,且跡數爲n。
單位向量又是什麼呢?數學上,賦範向量空間中的單位向量就是長度爲 1 的向量。歐幾里得空間中,兩個單位向量的點積就是它們之間角度的餘弦(由於它們的長度都是 1)。
一個非零向量 的正規化向量(即單位向量)
就是平行於
的單位向量,記做:
這裏 是
的範數(長度)。
何謂 點積?點積又稱內積,兩個向量 = [a1, a2,…, an]和
= [b1, b2,…, bn]的點積定義爲:
這裏的Σ指示求和符號。
例如,兩個三維向量[1, 3, -5]和[4, -2, -1]的點積是:
使用矩陣乘法並把(縱列)向量看成n×1 矩陣,點積還能夠寫爲:
這裏的 指示矩陣的轉置。使用上面的例子,將一個1×3矩陣(就是行向量)乘以一個3×1向量獲得結果(經過矩陣乘法的優點獲得1×1矩陣也就是標量):
除了上面的代數定義外,點積還有另一種定義:幾何定義。在歐幾里得空間中,點積能夠直觀地定義爲:
這裏||表示
的模(長度),θ表示兩個向量之間的角度。 根據這個定義式可得:兩個互相垂直的向量的點積老是零。若和都是單位向量(長度爲1),它們的點積就是它們的夾角的餘弦。
正交是垂直這一直觀概念的推廣,若內積空間中兩向量的內積(即點積)爲0,則稱它們是正交的,至關於這兩向量垂直,換言之,若是可以定義向量間的夾角,則正交能夠直觀的理解爲垂直。而正交矩陣(orthogonal matrix)是一個元素爲實數,並且行與列皆爲正交的單位向量的方塊矩陣(方塊矩陣,或簡稱方陣,是行數及列數皆相同的矩陣。)
若數字 和非零向量
知足
,則
爲
的一個 特徵向量,
是其對應的 特徵值。 換句話說,在
這個方向上,
作的事情無非是把
沿其
的方向拉長/縮短了一點(而不是毫無規律的多維變換),
則是表示沿着這個方向上拉伸了多少的比例。 簡言之,
對
作了手腳,使得向量
變長或變短了,但
自己的方向不變。
矩陣的 跡是矩陣 的對角線元素之和,也是其
個特徵值之和。
更多矩陣相關的概念能夠查閱相關wikipedia,或《矩陣分析與應用》。
\
\
拉普拉斯矩陣(Laplacian matrix)),也稱爲基爾霍夫矩陣, 是表示圖的一種矩陣。給定一個有n個頂點的圖 ,其拉普拉斯矩陣被定義爲:
\
其中 爲圖的度矩陣,
爲圖的鄰接矩陣。
舉個例子。給定一個簡單的圖,以下:
把此「圖」轉換爲 鄰接矩陣的形式,記爲 :
把的每一列元素加起來獲得
個數,而後把它們放在對角線上(其它地方都是零),組成一個
的對角矩陣,記爲度矩陣****
,以下圖所示:
根據拉普拉斯矩陣的定義 ,可得拉普拉斯矩陣
爲:
介紹 拉普拉斯矩陣的性質以前,首先定義兩個概念,以下:
①對於鄰接矩陣,定義圖中A子圖與B子圖之間全部邊的權值之和以下:
其中, 定義爲節點
到節點
的權值,若是兩個節點不是相連的,權值爲零。
②與某結點鄰接的全部邊的權值和定義爲該頂點的度d,多個d 造成一個度矩陣 (對角陣)
\
拉普拉斯矩陣 具備以下性質:
是對稱半正定矩陣;
,即
的最小特徵值是0,相應的特徵向量是
。證實:
*
= (
-
) *
= 0 = 0 *
。(此外,別忘了,以前特徵值和特徵向量的定義:若數字
和非零向量
知足
,則
爲
的一個特徵向量,
是其對應的特徵值)。
有n個非負實特徵值
\
且對於任何一個屬於實向量,有如下式子成立
其中, ,
,
。
下面,來證實下上述結論,以下:
\
所謂聚類(Clustering),就是要把一堆樣本合理地分紅兩份或者K份。從圖論的角度來講,聚類的問題就至關於一個圖的分割問題。即給定一個圖G = (V, E),頂點集V表示各個樣本,帶權的邊表示各個樣本之間的類似度,譜聚類的目的即是要找到一種合理的分割圖的方法,使得分割後造成若干個子圖,鏈接不一樣子圖的邊的權重(類似度)儘量低,同子圖內的邊的權重(類似度)儘量高。物以類聚,人以羣分,類似的在一起,不類似的彼此遠離。
至於如何把圖的頂點集分割/切割爲不相交的子圖有多種辦法,如
目的是爲了要讓被割掉各邊的權值和最小,由於被砍掉的邊的權值和越小,表明被它們鏈接的子圖之間的類似度越小,隔得越遠,而類似度低的子圖正好能夠從中一刀切斷。
本文重點闡述上述的第一種方法,簡單提一下第二種,第三種本文不作解釋,有興趣的能夠參考文末的參考文獻條目13。
爲了更好的把譜聚類問題轉換爲圖論問題,定義以下概念(有些概念以前已定義,權當回顧下):
鄰接矩陣,A子圖與B子圖之間全部邊的權值之和定義以下:
其中, 定義爲節點
到節點
的權值,若是兩個節點不是相連的,權值爲零。
\
所以,如何切割圖則成爲問題的關鍵。換言之,如何切割才能獲得最優的結果呢?
舉個例子,若是用一張圖片中的全部像素來組成一個圖 ,並把(好比,顏色和位置上)類似的節點鏈接起來,邊上的權值表示類似程度,如今要把圖片分割爲幾個區域(或若干個組),要求是分割所得的 Cut 值最小,至關於那些 被切斷的邊的權值之和最小,而權重比較大的邊沒有被切斷。由於只有這樣,才能讓比較類似的點被保留在了同一個子圖中,而彼此之間聯繫不大的點則被分割了開來。
設 爲圖的幾個子集(它們沒有交集) ,爲了讓分割的 Cut 值最小,譜聚類即是要最小化下述目標函數:
其中k表示分紅k個組, 表示第i個組,
表示
的補集,
表示第
組與第
組之間的全部邊的權重之和(換言之,若是要分紅K個組,那麼其代價就是進行分割時去掉的邊的權值的總和)。
爲了讓被切斷邊的權值之和最小,即是要讓上述目標函數最小化。但不少時候,最小化cut 一般會致使很差的分割。以分紅2類爲例,這個式子一般會將圖分紅了一個點和其他的n-1個點。以下圖所示,很明顯,最小化的smallest cut不是最好的cut,反而把{A、B、C、H}分爲一邊,{D、E、F、G}分爲一邊極可能就是最好的cut:
爲了讓每一個類都有合理的大小,目標函數儘可能讓A1,A2...Ak 足夠大。改進後的目標函數爲:
其中|A|表示A組中包含的頂點數目。
或:
其中,。
下面,我們來重點研究下RatioCut 函數。
目標函數:
定義向量,且:
根據以前獲得的拉普拉斯矩陣矩陣的性質,已知
如今把的定義式代入上式,咱們將獲得一個很是有趣的結論!推導過程以下:
是的,咱們居然從推出了RatioCut,換句話說,拉普拉斯矩陣L 和咱們要優化的目標函數RatioCut 有着密切的聯繫。更進一步說,由於
是一個常量,因此最小化RatioCut,等價於最小化
。
同時,因單位向量的各個元素全爲1,因此直接展開可獲得約束條件:
且
,具體推導過程以下:
最終咱們新的目標函數能夠由以前的,寫成:
其中,,且因
,因此有:f'f = n(注:f是列向量的前提下,f'f是一個值,實數值,ff'是一個N*N的矩陣)。
繼續推導前,再次提醒特徵向量和特徵值的定義:
假定
=
,此刻,
是特徵值,
是
的特徵向量。兩邊同時左乘
,獲得
=
,而f'f=n,其中n爲圖中頂點的數量之和,所以
=
n,因n是個定值,因此要最小化
,至關於就是要最小化
。所以,接下來,咱們只要找到
的最小特徵值
及其對應的特徵向量便可。
但到了這關鍵的最後一步,我們卻遇到了一個比較棘手的問題,即由以前獲得的拉普拉斯矩陣的性質 「 最小的特徵值爲零,而且對應的特徵向量正好爲
」 可知:其不知足
的條件,
所以,怎麼辦呢?根據論文 「 A Tutorial on Spectral Clustering 」 中所說的Rayleigh-Ritz 理論,咱們能夠取第2小的特徵值,以及對應的特徵向量。
更進一步,因爲實際中,特徵向量 裏的元素是連續的任意實數,因此能夠根據
是大於0,仍是小於0對應到離散狀況下的
,決定
是取
,仍是取
。而若是能求取
的前K個特徵向量,進行K-means聚類,獲得K個簇,便從二聚類擴展到了K 聚類的問題。
而所要求的這前K個特徵向量就是拉普拉斯矩陣的特徵向量(計算拉普拉斯矩陣的特徵值,特徵值按照從小到大順序排序,特徵值對應的特徵向量也按照特徵值遞增的順序排列,取前K個特徵向量,即是咱們所要求的前K個特徵向量)!
因此,問題就轉換成了:求拉普拉斯矩陣的前K個特徵值,再對前K個特徵值對應的特徵向量進行 K-means 聚類。而兩類的問題也很容易推廣到 k 類的問題,即求特徵值並取前 K 個最小的,將對應的特徵向量排列起來,再進行 K-means聚類。兩類分類和多類分類的問題,一模一樣。
就這樣,由於離散求解很困難,但RatioCut 巧妙地把一個NP難度的問題轉換成拉普拉斯矩陣特徵值(向量)的問題,將離散的聚類問題鬆弛爲連續的特徵向量,最小的系列特徵向量對應着圖最優的系列劃分方法。剩下的僅是將鬆弛化的問題再離散化,即將特徵向量再劃分開,即可以獲得相應的類別。不能不說妙哉!
綜上可得譜聚類的算法過程以下:
或許你已經看出來,譜聚類的基本思想即是利用樣本數據之間的類似矩陣(拉普拉斯矩陣)進行特徵分解( 經過Laplacian Eigenmap 的降維方式降維),而後將獲得的特徵向量進行 K-means聚類。
此外,譜聚類和傳統的聚類方法(例如 K-means)相比,譜聚類只須要數據之間的類似度矩陣就能夠了,而沒必要像K-means那樣要求數據必須是 N 維歐氏空間中的向量。
\
孟巖之理解矩陣系列:blog.csdn.net/myan/articl…;
理解矩陣的12點數學筆記:www.51weixue.com/thread-476-…;
一堆wikipedia,好比特徵向量:zh.wikipedia.org/wiki/%E7%89…;
wikipedia上關於拉普拉斯矩陣的介紹:en.wikipedia.org/wiki/Laplac…;
鄒博之聚類PPT:pan.baidu.com/s/1i3gOYJr;
關於譜聚類的一篇很是不錯的英文文獻,「A Tutorial on Spectral Clustering」:engr.case.edu/ray_soumya/…;
知乎上關於矩陣和特徵值的兩個討論:www.zhihu.com/question/21…,www.zhihu.com/question/21…;
譜聚類算法:www.cnblogs.com/sparkwen/p/…;
漫談 Clustering 系列:blog.pluskid.org/?page_id=78;
《Mining of Massive Datasets》第10章:infolab.stanford.edu/~ullman/mmd…;
Tydsh: Spectral Clustering:①blog.sina.com.cn/s/blog_53a8…,②blog.sina.com.cn/s/blog_53a8…,③blog.sina.com.cn/s/blog_53a8…,④blog.sina.com.cn/s/blog_53a8…;\
H. Zha, C. Ding, M. Gu, X. He, and H.D. Simon. Spectral relaxation for K-means clustering. Advances in Neural Information Processing Systems 14 (NIPS 2001). pp. 1057-1064, Vancouver, Canada. Dec. 2001;\
機器學習中譜聚類方法的研究:lamda.nju.edu.cn/conf/MLA07/…;\
譜聚類的算法實現:liuzhiqiangruc.iteye.com/blog/211714…。