非負矩陣分解(4):NMF演算法和聚類演算法的聯絡與區別

來源:互聯網
上載者:User

標籤:9.png   讀取   聚類   kmeans   ctr   映射   自己   類別   添加   

桂。

時間:2017-04-14   06:22:26

連結:http://www.cnblogs.com/xingshansi/p/6685811.html

聲明:歡迎被轉載,不過記得註明出處哦~

前言

之前梳理了一下非負矩陣分解(Nonnegative matrix factorization, NMF),主要有:

  1)準則函數及KL散度

  2)NMF演算法推導與實現

  3)拉格朗日乘子法求解NMF(將含限定NMF的求解 一般化)

譜聚類可以參考之前的文章:

  1)拉普拉斯矩陣(Laplace Matrix)與瑞利熵(Rayleigh quotient)

  2)譜聚類(Spectral clustering)(1):RatioCut

  3)譜聚類(Spectral clustering)(2):NCut

總感覺NMF跟聚類有聯絡,這裡試著從聚類角度分析一下非負矩陣分解,主要包括:

  1)Kmeans與譜聚類

  2)對稱非負矩陣分解(symmetric NMF,SyNMF);

  3)非對稱非負矩陣分解;

內容為自己的學習總結,如果有不對的地方,還請幫忙指出。文中多有借鑒他人的地方,最後一併給出連結。

 

一、Kmeans與譜聚類

  A-Kmeans定義

,準則函數為:

可以重寫為:

定義h:

$n_k$為第k類樣本的個數,則準則函數變為:

從而Kmeans的最佳化問題,等價於:

  B-Kmeans與譜聚類(Spectral clustering)的聯絡

上文給出了h的定義:

回顧譜聚類中RatioCut定義h的思路:

 

回顧RatioCut求解問題:

可以看出求解的思路完全一致,不同的是RatioCut是拉普拉斯矩陣L,而Kmeans是矩陣$X^TX$。正因為這點不同,Kmeans在利用譜聚類的思路求解時,略有差別。利用Kmeans的思想求Kmeans,聽著這不是欠揍嗎? 這裡只是為了分析譜聚類一般方法(L)與譜聚類對應的Kmeans($X^TX$)二者的不同。

再次寫出RatioCut的步驟:

步驟一:求解拉普拉斯矩陣L

步驟二:對L進行特徵值分解,並取K個最小特徵值對應的特徵向量(K為類別數目)

步驟三:將求解的K個特徵向量(並分別歸一化),構成新的矩陣,對該矩陣進行kmeans處理

kmeans得到的類別標籤,就是原資料的類別標籤,至此完成RatioCut聚類。

對應Kmeans呢?是不是把$X^TX$換成L就等價於對原資料Kmeans?

步驟一:求解$X^TX$

步驟二:對$X^TX$進行特徵值分解,並取K個最大特徵值對應的特徵向量(K為類別數目)

步驟三:將求解的K個特徵向量(並分別歸一化),構成新的矩陣,對該矩陣進行kmeans處理

kmeans得到的類別標籤,就是原資料的類別標籤,至此完成RatioCut聚類。

對應測試code:

L = X‘*X;% matrix%%Step2:Eigenvalues decompositionK = 3;[Qini,V] = eig(L);%%Step3:New matrix Q[~,pos] = sort(diag(V),‘ascend‘);Q = Qini(:,pos(1:K));Q = Q./repmat(sqrt(diag(Q‘*Q)‘),N,1);[idx,ctrs] = kmeans(Q,K);

我們可以利用資料測試一下:

再來看看直接對原資料Kmeans的結果:

利用譜聚類的思想求解,得出了錯誤的分類結果,而直接Kmeans效果是理想的。

原因何在?問題就出在矩陣L上。回顧之前提到的拉普拉斯矩陣L特性:

它表示的是不同資料點特徵的差距,而$X^TX$呢?

更像是一種餘弦距離的測度,普通的Kmeans自然不能很好解決聚類。其實對$X^TX$利用譜聚類,特徵向量子空間是嚴謹的,以三類為例,將特徵子空間投影到二維,如中間所示,很容易看出子空間特徵是分成三類的,但聚類之後呢?如右圖所示,就出現了判別錯誤。這也是為什麼上面兩種結果不一致。

總而言之:Kmeans是與譜聚類的思想一致,但由於中間矩陣不同,二者思路略有差異。

   C-Kernel Kmeans與譜聚類

這裡就再囉嗦一下,資料分類效果不理想,映射到高維呢?也就是核函數(Kernel function)的思想。

重新寫出譜聚類架構下的Kmeans:

對X進行映射:,得出核函數下的Kmeans(Kernel Kmeans)

重新給出code(以kernel 取gaussian為例):

%KmeansL = X*X‘;sigma2 = 500;L = exp(-X*X‘/2/sigma2);[Qini,V] = eig(L);%%Step3:New matrix Q[~,pos] = sort(diag(V),‘descend‘);Q = Qini(:,pos(1:K));for i =1:K    Q(:,i) = Q(:,i)-min(Q(:,i));endQ = Q./repmat(sqrt(diag(Q‘*Q)‘),K*N,1);[idx,ctrs] = kmeans(Q,K);

  對應分類結果:

這個時候分類就理想了。

 

二、對稱非負矩陣分解(SyNMF)

  A-原理介紹

Kmeans與RatioCut的理論架構是統一的,其實準則函數等價為:

現在將$H^TH = I$的約束去掉,泛化後的求解問題為:

這就是對稱非負矩陣分解(SyNMF)的思路。

  B-演算法求解

求解思路還是利用拉格朗日乘子+KKT,不再細說,給出結果:

 泛化後:

得到H之後,如何?資料的label判別?

可以看出得到的H分為三類,對應三種label, 即可實現資料分離。

給出SymNMF與譜聚類的對比:

對應的code可以點擊這裡。

給出一個測試結果圖,測試資料為三類:

 

三、非對稱非負矩陣分解

SymNMF是Spectral clustering的泛化推廣。

上文分析的是對稱的譜聚類問題:

  • Spectral clustering

  • SymNMF

同樣的方式,分析非對稱的譜聚類問題:

  •  Spectral clustering

該問題可以轉化為:

同樣的,對於:

進行泛化:

這就是NMF的準則函數,即:

  • NMF

 現在來總結一下:

關係是不是一目瞭然了?如何添加更多約束項呢?比如希望H矩陣儘可能係數等等,就在上面這幾類問題的準則函數後添加約束,轉化成對偶問題求解即可。

 

題外話

  A-非負矩陣NMF實現資料聚類

分析了這麼多,已經解開了之前的困惑:譜聚類與NMF之間的聯絡

回顧上面分析Kmeans提到的三類資料聚類問題,對$XX^T$進行NMF處理:

更直觀地,將資料放在對應維度觀察:

可以看到,由於矩陣對稱,即figure對稱,對W/H聚類,都可以得到三類標籤,從而實現資料的聚類。對於非對稱呢?自然想到:如果W對應樣本數量維度,則對W進行聚類,如果H對應樣本數量維度,就對H進行聚類,同樣可以實現資料聚類

  B-圖的聚類(不再是資料的聚類)

上文分析的是對資料點進行分類,如果直接對鄰接矩陣、拉普拉斯矩陣,也就是圖片資訊進行分類呢?(可能有點繞,但資料點聚類,並不代表圖就是聚類,圖明顯可以聚類,對應的資料點也未必可以聚類)。

圖對應的矩陣,如拉普拉斯矩陣、鄰接矩陣等等,說到底都是figure的表達,如所示,因此上文分析的矩陣W/B,可以用圖片的資訊替代。

對於圖的聚類,一種思路是將圖中像素點讀取,轉化成資料格式,再進行聚類。

Data角度就是前面分析的種種類型,Figure角度呢?

給出NMF對圖片的處理結果(分四類):

對應code:

img = imread(‘2.png‘);V = 1-im2bw(rgb2gray(img));figureK = 4;Iter = 500;[W,H] = nmf(V, K, Iter);subplot 331mesh(V);title(‘原資料‘)for i =1:K    subplot(3,3,i+1);    mesh(W(:,i)*H(i,:));    title([‘分解‘,num2str(i)])end

再給出之前音樂分離的語譜圖:

對應的時域波形:

直接圖形的分解/分類,也是可以實現的。

 

參考:

  • On the Equivalence of Nonnegative Matrix Factorization and Spectral Clustering
  • Symmetric Nonnegative Matrix Factorization for Graph Clustering

非負矩陣分解(4):NMF演算法和聚類演算法的聯絡與區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.