1.受限波爾茨曼機的learning問題利用了CD-k算法
2.它對每個觀測樣本進行一次Gibbs採樣,在k-step得到採樣樣本
3.最終得到跟訓練集樣本數大小的的M個採樣樣本,然後執行梯度下降法
在受限波爾茨曼機(RBM)一文中,我們介紹了RBM的聯合分布表達式,以及Inference問題,當時我們遺漏了它的Learning問題,求解RBM的學習問題要基於CD-Learning的思想,我們這一篇就介紹RBM的參數估計解法。
開始之前,先回顧一下RBM的概率圖模型表示:
以及其聯合分布形式:
給定訓練數據集S,其樣本個數是M,能觀測的變量是v:
那麼對觀測變量的對數似然函數為:
對似然函數化簡的等號右邊第一項求導有:
對等號右邊第二項求導有:
所以,對數似然函數的梯度可以化為:
其中要求解的參數θ是:
有了對數似然函數的梯度,我們利用梯度法求解RMB的參數θ.
先看邊的權重參數w。根據能量函數表達式有:
於是:
等號右邊第一項可以化簡:
註:RBM的隱狀態取值0或1
等號右邊第二項化簡為:
於是得到對p(v)對邊權重w的梯度表達式:
按照上面的化簡思路,p(v)對α,β的梯度表達式更加容易得到,這裡不再贅述。我們重點關注的是對於梯度的第二個式子:
它很難直接求解,我們得利用CD-Learning的思路構造梯度進行近似推斷求解。
我們觀察上一節梯度的第二個式子,它其實是p(v0下的期望:
那麼我們就可以利用MCMC採樣思想,得到其期望。採取Gibbs的k-step算法(即CD-k)進行採樣:
它的採樣過程如下圖所示:
對每個樣本都會進行一次Gibbs採樣過程,最終會得到M個採樣樣本,從而最終得到邊權重wij的梯度:
然後執行梯度法即可!