前言
對RBM(Restricted Boltzmann Machine)的理解進行簡單的總結。
主要涉及RBM的圖結構,爲什麼場能E(v,h)要如此定義,優化的思路到底是怎麼來的,MRF與MC在優化時起到怎麼樣的作用,CD的意義,RBM的實現。
RBM
RBM是個兩層的網絡,層間連接,而層內無連接(restricted的由來)。可以理解爲是個表示了概率分佈的參數模型(概率圖模型),也可以認爲是個神經網絡。基本結構如下:
RBM的目標
BM是層內也連接的RBM,最終狀態是能夠學習得到訓練集的分佈。RBM對層內的限制是爲了減少計算困難,並提供條件獨立的基本結構。
圖、MRF、Gibbs分佈、RBM
爲了能夠簡潔地描述RBM所表示的分佈,對節點狀態之間的依賴關係作以下假設,節點狀態與其他節點狀態條件獨立與該節點的近鄰節點狀態(MRF markov random field)。然後,可以證明RBM結構下的MRF的聯合分佈可分解爲Gibbs分佈。簡直好的不要不要的~
1)RBM的圖結構
如上圖,
2)圖G爲MRF 與 圖聯合分佈爲Gibbs分佈 的關係–>等價:
圖的隨機變量條件獨立 與 圖的聯合分佈可分解 是等價的,MRF的聯合分佈可以被分解[32, 29](Hammersley-Clifford Theorem)。(分解的好處,就是方便表示和計算啊)
無向圖G爲MFR:
無向圖G聯合分佈可分解:
上述兩個定義是等價的(有興趣的童鞋一定要看看等價關係的證明[2],很妙~),因此,對於RBM滿足MRF條件,則其聯合概率分佈可以分解爲
3)RBM的聯合分佈
通過definiton2可以看到,對定義在圖G的極大團集上的正值函數
化簡爲向量形式:
OK,現在弄明白RBM的聯合概率分佈是怎麼來的了~
補充:也可以從另外的方向化簡,結果一樣,如下。
最大似然與梯度下降
已知分佈形式,剩下的就是根據輸入數據調參了,最爲常見的就是最大似然方法了。
但是,我們對RBM的邊緣分佈
最大化
單個樣本的的似然函數如下:
其梯度如下:
難點:期望難求,需要遍歷所有可能。前半部分是在概率
進一步分開參數
我想,大神們應該是從這裏受到啓發,開始搞梯度的估計的思路的~RBM滿足MRF爲自身MC的gibbs採樣提供了期望採樣的可能。
有沒有發現,單樣本下涉及了期望,如果對多個樣本,豈不是可以用採樣集的均值作爲樣本期望了,樣本均值估計總體期望,是常見思路。RBM的開創大神們將這條路走到底,進一步將樣本集部分加進來~如下~
其中
剩下的問題就是解決在參數
Markov Chain 與 Gibbs Sampling
前面有提到,RBM滿足MRF,即其非近鄰節點狀態互相條件獨立(Markov property)定義1剛好對RBM結構來說,可以將節點狀態的更新過程,轉化爲MC的更新過程,又感慨世界多奇妙了~而MC的穩態不依賴於初始值,只與系統本身有關,可以在穩態的基礎上採樣得到
Markov Chain
馬爾科夫鏈是離散時間隨機過程,系統下一狀態只依賴於當前狀態
平穩分佈:如果分佈
馬爾科夫鏈穩定的定義:
馬爾科夫鏈穩定的充分條件:
馬爾科夫鏈穩定的充分條件2:一個不可約且非週期,並且具有有限狀態的馬爾科夫鏈,一定能夠收斂到穩態。非常重要
不可約:在狀態空間有限的情況下,一個狀態可以經過有限次數轉移到另外任意狀態。
非週期:狀態不周期復現。
收斂定理[3]: 假設一個狀態有限且不可約非週期的MC,的穩態分佈爲
其中,
馬爾科夫鏈的收斂定理,爲我們對RBM下的似然函數的梯度裏的期望計算提供了理論依據。隨意初始RBM起始狀態,按照gibbs採樣足夠次數後,必然得到RBM聯合分佈下的樣本。
Gibbs Sampling
RBM在Markov property下的不同時刻的狀態變化可以滿足狀態有限且不可約非週期的MC。證明見[1]的3.2節。
因此,對RBM可以在輸入
採樣方法化簡後如下(這裏的採樣方法由於RBM的節點間條件獨立得以非常簡單):
1. sample h given v
2. sample v given h
以此循環。將最後的
OK,到這裏,貌似就將梯度的估計搞定了,採樣計算均值。依稀覺得哪裏不對勁,是的,採樣需要進行足夠多次才能得到穩態分佈的樣本,這是個problem。那我如果採樣有限的次數,是不是也OK呢。下面就給出肯定答案,採樣一步就足夠了。
Constractive Divergence
兩個分佈的不對稱性,可以用
前面有博客最大似然與交叉熵的一致性講過,在樣本類別唯一時,最大化最大似然與最小化交叉熵是等價的,也等價於 最小化KL-divergence。
根據收斂定理,gibb採樣分佈
超樸素的思路一:既然
高逼格的思路二:最小化
對CD求導:
估計上式:
再次估計:
於是得到:
哈哈,得到CD下的梯度估計了(有專門就CD估計的bias的分析文章[5])。這個時候,是不是看着跟最大似然的梯度很相近,當然一致了。這裏在對最大似然與交叉熵和KL散度的一致性說明下:
最大似然的優化函數:
交叉熵的優化函數:
KL-散度的優化函數:
CD-的優化函數:
優化函數,在連續性和一致性上都沒有本質變化,那麼梯度也必然是共通的(拋開正負方向)。
思考:
CD這塊看着很無用的樣子,但是給出了梯度估計的理論支撐。再往深處想一下,會發現Grdient Boost的想法也隱含其中,GB藉助函數空間的導數給出了下一個函數構建時的方向,這裏數據-GibbsSampling給出了模型與預期之間的差距,也相當於給出了理想更新模型狀態的方向。不同的是,前者剛好提供了理想與現實間的差距,後者則是剛好提供了梯度的估計。
估計,則是在大體方向正確的前提下的簡化。
補充知識
1) 隨機變量
2) 圖的相關概念
主要是圖結構定義,圖markov-property,maxmial-clique,maxmium-clique
圖描述:
團(clique):子圖,其中所有節點成對連接。一個圖G中含有多個團。
極大團(maximal-clique):不能再加入任何一個頂點,使之仍爲團。一個圖G可以有多個極大團。
最大團(maximum-clique):子圖,含頂點最多的極大團。一個圖G可以有多個最大團。
對極大團的尋找,方法很多,經典的是Bron-Kerbosch方法。
Markov-Property:對圖G的頂點
Local-Markov-Property:
在圖的聯合分佈概率嚴格爲正時,有兩個等價的Markov-property。
1)任意子圖AB被S分割,其中
2)任意兩個不相連的隨機變量,given其他變量,是條件獨立的。(pair-MP)
3)RBM的實現
RBM在Gibbs採樣下的類,parallel-tempering未實現。
https://github.com/jxyyjm/test_nn/blob/master/src/mine_rbm_all.py
reference
1. 《Training Restricted Boltzmann Machines: An Introduction》
2. 《Proof of Hammersley-Clifford Theorem》
3. 《Markov Chains: Gibbs Fields, Monte Carlo Simulation, and Queues》
4. 《Training Products of Experts by Minimizing Contrastive Divergence》
5. 《On Contrastive Divergence Learning》
6. 《Fast Algorithms for the Maximum Clique Problem on Massive Sparse Graphs》最大團在大規模離散圖上的高效查找。
7. 《Continuous Restricted Boltzmann Machine with an implementable Training Algorithm》主要處理連續值的情況。