著名的科學雜志《Nature》于1999年刊登了兩位科學家D.D.Lee和H.S.Seung對數學中非負矩陣研究的突出成果。該文提出了一種新的矩陣分解思想――非負矩陣分解(Non-negative Matrix Factorization,NMF)算法,即NMF是在矩陣中所有元素均為非負數限制條件之下的矩陣分解方法。該論文的發表迅速引起了各個領域中的科學研究人員的重視:一方面,科學研究中的很多大規模資料的分析方法需要通過矩陣形式進行有效處理,而NMF思想則為人類處理大規模資料提供了一種新的途徑;另一方面,NMF分解算法相較于傳統的一些算法而言,具有實作上的簡便性、分解形式和分解結果上的可解釋性,以及占用存儲空間少等諸多優點。
資訊時代使得人類面臨分析或處理各種大規模資料資訊的要求,如衛星傳回的大量圖像、機器人接受到的實時視訊流、資料庫中的大規模文本、Web上的海量資訊等。處理這類資訊時,矩陣是人們最常用的數學表達方式,比如一幅圖像就恰好與一個矩陣對應,矩陣中的每個位置存放着圖像中一個像素的空間位置和色彩資訊。由于實際問題中這樣的矩陣很龐大,其中存放的資訊分布往往不均勻,是以直接處理這樣的矩陣效率低下,這對很多實際問題而言就失去了實用意義。為高效處理這些通過矩陣存放的資料,一個關鍵的必要步驟便是對矩陣進行分解操作。通過矩陣分解,一方面将描述問題的矩陣的維數進行削減,另一方面也可以對大量的資料進行壓縮和概括。
在科學文獻中,讨論利用矩陣分解來解決實際問題的分析方法很多,如PCA(主成分分析)、ICA(獨立成分分析)、SVD(奇異值分解)、VQ(矢量量化)等。在所有這些方法中,原始的大矩陣V被近似分解為低秩的V=WH形式。這些方法的共同特點是,因子W和H中的元素可為正或負,即使輸入的初始矩陣元素是全正的,傳統的秩削減算法也不能保證原始資料的非負性。在數學上,從計算的觀點看,分解結果中存在負值是正确的,但負值元素在實際問題中往往是沒有意義的。例如圖像資料中不可能有負值的像素點;在文檔統計中,負值也是無法解釋的。是以,探索矩陣的非負分解方法一直是很有意義的研究問題,正是如此,Lee和Seung兩位科學家的NMF方法才得到人們的如此關注。
NMF是一種新的矩陣分解算法,它克服了傳統矩陣分解的很多問題,通過尋找上下文有意義的解決方法,提供解釋資料的更深看法。NMF通過尋找低秩,非負分解那些都為非負值的矩陣。這在現實的應用中有很多例子,如數字圖像中的像素一般為非負數,文本分析中的單詞統計也總是非負數,股票價格也總是正數等等。NMF的基本思想可以簡單描述為:對于任意給定的一個非負矩陣A,NMF算法能夠尋找到一個非負矩陣U和一個非負矩陣V,使得滿足,進而将一個非負的矩陣分解為左右兩個非負矩陣的乘積。由于分解前後的矩陣中僅包含非負的元素,是以,原矩陣A中的一列向量可以解釋為對左矩陣U中所有列向量(稱為基向量)的權重和,而權重系數為右矩陣V中對應列向量中的元素。這種基于基向量組合的表示形式具有很直覺的語義解釋,它反映了人類思維中“局部構成整體”的概念。研究指出,非負矩陣分解是個NP問題,可以劃為優化問題用疊代方法交替求解U和V。NMF算法提供了基于簡單疊代的求解U,V的方法,求解方法具有收斂速度快、左右非負矩陣存儲空間小的特點,它能将高維的資料矩陣降維處理,适合處理大規模資料。利用NMF進行文本、圖像大規模資料的分析方法,較傳統的處理算法速度更快、更便捷。NMF思想的提出迅速得到了很多人的重視,并有很多将這種思想應用到實際中成功解決具體實際問題的例子。

(上圖轉自 《非負矩陣分解及其應用探讨》,高燕燕 )
非負矩陣的具體算法如下:
輸入參數:X,R,MAXITER,其中X為被分解的矩陣,R為降階後B的秩,MAXITER為疊代次數
輸出參數:B,H
1):初始化矩陣B,H為非負數,同時對B的每一列資料歸一化
2):for i=1:MAXITER
a:更新H矩陣一行元素:H(i,j)=H(i,j)*(B'*X)(i,j)/(B'*B*H)(i,j)
b:更新B的一列元素:B(k,j)=B(k,j)*(X*H')(k,j)/(B*H*H')(k,j);
c:重新對B進行列歸一化
3)end
matlab源程式如下:
dim=size(X); %計算x的規格
X=double(X);
B=10*rand(dim(1),r); %初始化BH,為非負數
B=B./(ones(dim(1),1)*sum(B)); %歸一化B的每一列
H=10*rand(r,dim(2));
maxiter=100; %最大疊代次數
for iter=1:maxiter
H=H.*(B'*(X./(B*H)));
B=B.*((X./(B*H))*H');
B=B./(ones(dim(1),1)*sum(B));
end
效果如下:
原始圖檔 分解後重構的圖檔
參考文獻:
基于非負矩陣分解的人臉表情識别研究
非負矩陣分解:數學的奇妙力量
相片來自我大姨(攝于2005.02)
下一步嘗試采用NMF提取特征。
以上轉自http://fxy1211.blog.163.com/blog/static/68255322007826111015905/