非負矩陣分解(3):拉格朗日乘子法求解


作者:桂。

時間:2017-04-07  07:11:54

鏈接:http://www.cnblogs.com/xingshansi/p/6679325.html 

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


 

前言

本文為非負矩陣分解系列第三篇,在第二篇中介紹了不同准則下乘法算法的推導及代碼實現,這里不免有一個疑問:明明是一個約束的優化問題,雖然乘法算法巧妙地將其變為一個無約束優化問題,梯度下降到乘法算法的轉化,既讓人覺得奇妙,又有點莫名其妙。不失一般性,約束問題應該是可以利用拉格朗日乘子法求解,本文打算對此進行梳理,內容主要包括:

  1)無約束求解NMF;

  2)拉格朗日乘子法求解NMF;

內容為自己的心得體會,許多問題自己也不是很有把握,其中錯誤的地方希望各位幫忙指出來,全文多有借鑒他人之處,最后一並給出鏈接。

一、無約束求解NMF

本文主要以Euclidean距離為例,KL散度等不同准則都是大同小異的,就不一一啰嗦了。

考慮無約束優化問題:

利用梯度下降:

其中:

如果直接梯度下降,對於無約束的優化問題,我們不能保證結果都是非負的,下面巧妙之處來了將梯度下降法變為乘法算法

令:

梯度下降法變換為乘法算法:

真是巧妙!一個復雜的約束性優化問題,就讓一個簡單的無約束給解決了。這樣一來,如果原矩陣為非負,W、H初始值同樣非負,結果自始至終都是非負,直至迭代到滿足收斂條件。

收斂性證明可以參考:Lee D D, Seung H S. Algorithms for Non-negative Matrix Factorization[C]// NIPS. 2000:556--562.

對應代碼以及更多理論細節,可以參考NMF的上一篇文章

 

二、拉格朗日乘子法求解NMF

看到上面的乘法算法,難免感嘆它的奇妙,但其實中規中矩,也自有一番力量。對於含有約束的優化問題,這里就采用通用的方法——拉格朗日乘子法。關於拉格朗日乘子法,更多細節可以參考之前的一篇博文

  A-KKT條件

給出約束優化原始問題模型:

其中${h_i}\left( x \right) = 0,\;i = 1,...q$也可寫成矩陣形式:${\bf{Ax}} = {\bf{b}}$.該模型為原始問題

該模型利用拉格朗日乘子可以松弛為無約束優化問題:

$\min \;\;L\left( {x,\lambda ,v} \right) = {f_0}\left( x \right) + \sum\limits_{i = 1}^m {{\lambda _i}{f_i}\left( x \right) + \sum\limits_{i = 1}^q {{v_i}{h_i}\left( x \right)} } $

該模型為對偶問題。(不是對偶方法哦,僅僅是對偶問題,不要搞混了,對偶方法中采用minmax、maxmin之類的問題)

將有約束的原始問題轉化為無約束的對偶問題,局部極小解的一階必要條件(即Karush-Kurth-Tucker,KKT)為:

為什么有這幾個約束?更多細節問題同樣參考之前的一篇博文,這里就不再多說了。

  B-拉格朗日乘子求解NMF

考慮有約束優化問題:

將有約束的原始問題轉化為無約束的對偶問題(因為是非負,故約束前添加負號):

利用梯度下降求解(W、H為復數的情況不考慮):

其中:

 

將梯度下降的結果變形為:

利用KKT條件,上式就是:

這個式子求解出的W和H,就是局部最優解。雖然是兩個式子,兩個未知數,看似直接求解,其實不行。這里有個問題:知道W可以解出H,知道H可以解出W,又是一個雞生蛋蛋生雞的問題。是不是很熟悉?在分析EM的時候,就是這個問題,所有才有E(expectation)、M(maximize)問題。不過這里用不到EM,因為EM算法的核心是Q函數,而不是兩步走問題,任何最大似然估計,參數互相滲透,都有兩步走問題呀,這類問題分析過,詳細可以參考之前的文章,這里只說說兩步走。

參數如何求解呢?接着思路往下走。

  C-參數求解

說是兩步走,其實就是這么個思路:

將糾纏不清的問題,轉化為:按迭代次序依次推進。這跟之前EM算法一文中的硬幣第三拋問題很像,對應的解法就是那篇文中說的山寨版EM算法。給出結果:

有時為了簡便,將迭代次數(t)、(t+1)略去:

這不就是乘法算法?至於收斂性,證明與之前一致就可以了。還是拉格朗日乘子法比較直觀,用着按部就班就能得出結果來。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM