受限制玻爾茲曼機(RBM)的能量函數及其梯度求解

在前面的一篇文章 受限制玻爾茲曼機(Restricted Bolzmann Machine)以及自編碼器(Autoencoder)中我們提到了RBM的能量函數這一概念以及對比散度(CD)的快速採樣的訓練方法,但我一直糾結與為何Hinton大神能夠從能量函數和Gibbs Sampling中獲得CD-k採樣演算法,兩個式子看似沒有關聯。於是我花了幾天的時間,終於對RBM這個結構有了更深一步的了解。


From: Ph0en1x Notebook

一、能量函數與概率分布

之前講到受限制玻爾茲曼機時,我們提到,RBM是由一個可見層(visible, v)與隱藏層(hiddenm, h)組成,如下圖,W在物理中表示系統內部能量轉換,比如分子間碰撞產生的能量傳遞,同時有a, b兩個偏置項,在物理中表示外來因素的影響,與外界的能量交換:

能量函數的定義是:

E(v,h)= - sum_i a_i v_i - sum_j b_j h_j - sum_i sum_j v_i w_{ij} h_j

用矩陣來表示就是

E(v,h)= -a ^ {mathrm {T}} v -b ^ {mathrm {T}} h -v ^ {mathrm {T}} W h

能量函數具體的含義涉及物理領域,在本文不會具體介紹,具體請閱讀Ising Model的相關文章,本文具體介紹如何從能量函數中推倒出Gibbs Sampling和CD-k

v, h聯合概率分布是

其中Z是所有[v, h]對對應的能量的總和,稱為歸一化因子或配分函數(Partition Function)

v與h的邊緣概率分布如下

條件分布

同理

由於RBM層內無連接,所以同一層內的變數還具有相互獨立性,即

P(v|h) = prod_{i=1}^m P(v_i|h)

P(h|v) = prod_{j=1}^n P(h_j|v)

二、對數似然函數

上面定義了那麼多,然而要開始正式的梯度優化,我們還差一個優化目標,現在就要正式地定義損失函數:

之前曾經提到過,受限制玻爾茲曼機的訓練目的是讓原始數據的分布得到最大的保留,用最大似然估計來表示就是讓P(v)最大。採用對數似然函數,則式子如下:

對參數求梯度:

所以只要能求得

就可以求出最終的梯度,RBM每層有W, a, b三個不同的參數,則需要分別對三個參數分別求導:

  • W

  • b與W的推導過程類似,結果為:

  • a的推導更加的簡單

把上面三個式子帶回到梯度的公式中,就可以得到

這就是Gibbs採樣和CD-k採樣的來源,只是採用了不同的估計方法來確定概率分布。


推薦閱讀:

人類壯陽簡史
我為什麼要寫《自然規律的探索之旅》
地心溫度為什麼如此之高?
動物界這麼多同性戀 是雌雄比例懸殊導致的嗎?
八個宇宙秘密(最好的算命風水)

TAG:機器學習 | 神經網路 | 自然科學 |