RBM的理解

前言

  對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的圖結構
  如上圖,G=(V,E) ,對每個節點v ,節點狀態Xv 都可以表示爲隨機變量。
  2)圖G爲MRF 與 圖聯合分佈爲Gibbs分佈 的關係–>等價:
  圖的隨機變量條件獨立 與 圖的聯合分佈可分解 是等價的,MRF的聯合分佈可以被分解[32, 29](Hammersley-Clifford Theorem)。(分解的好處,就是方便表示和計算啊)
  無向圖G爲MFR:
  

這裏寫圖片描述

  無向圖G聯合分佈可分解:
  
這裏寫圖片描述

  上述兩個定義是等價的(有興趣的童鞋一定要看看等價關係的證明[2],很妙~),因此,對於RBM滿足MRF條件,則其聯合概率分佈可以分解爲p(X)=1ZcCGϕc(Xc)
  3)RBM的聯合分佈
  通過definiton2可以看到,對定義在圖G的極大團集上的正值函數ϕ ,都可以表示成Gibbs分佈的形式。那麼在RBM中,我們指定一個函數定義ϕ(xi,j)=p(vi,vj)=ewi,jhivj+cihi+bjvj ,其中{i,j}=c,c{maxmialclique}G ,該函數定義在所有極大團上且ϕ>0 ,進一步得到RBM的聯合分佈
  
p(v,h)=1Zvi,hj{c}ϕ(vi,vj)=1Zvi,hj{c}ewi,jhivj+cihi+bjvj=1Zei=[1,n],j=[1,m]wi,jhivj+cihi+bjvj

  化簡爲向量形式:
p(v,h)=1Zehwv+ch+bv=1ZeE(v,h)

  Z=v,heE(v,h)E(v,h)=hwvchbv
  OK,現在弄明白RBM的聯合概率分佈是怎麼來的了~
  補充:也可以從另外的方向化簡,結果一樣,如下。
  p(x)=1Zψ(xc)=1Zelnψ(xc)=p(v,h)=1ZeE(v,h)=1ZehWv+bv+hc

最大似然與梯度下降

  已知分佈形式,剩下的就是根據輸入數據調參了,最爲常見的就是最大似然方法了。
  但是,我們對RBM的邊緣分佈p(v) 更感興趣,p(v)=hp(v,h)=1ZheE(v,h) 。下面對其採用最大似然的思路嘗試優化。
  最大化L(θ|Data) ,從而求得最優參數。

L(θ|Data)=lnimp(vi|θ)=imlnp(vi|θ)

  單個樣本的的似然函數如下:
L(θ|v)=lnp(v|θ)=ln1ZheE(v,h)=lnheE(v,h)lnv,heE(v,h)

  其梯度如下:
L(θ|v)θ=hp(h|v)E(v,h)θ+v,hp(v,h)E(v,h)θ

  難點:期望難求,需要遍歷所有可能。前半部分是在概率p(h|v) 下的隨機變量E(v,h)θ 期望取負,後半部分是在概率p(v,h) 下的隨機變量E(v,h)θ 的期望。
  進一步分開參數θ={wij,bj,ci}E(v,h)=hwvchbv 化簡,都存在類似計算problem。
L(θ|v)w=hp(h|v)hvv,hp(v,h)hvL(θ|v)b=hp(h|v)vv,hp(v,h)vL(θ|v)c=hp(h|v)hv,hp(v,h)h =>L(θ|v)w=E[hv]|p(h|v)E[hv]|p(v,h)L(θ|v)b=E[v]|p(h|v)E[v]|p(v,h)L(θ|v)c=E[h]|p(h|v)E[h]|p(v,h)
  我想,大神們應該是從這裏受到啓發,開始搞梯度的估計的思路的~RBM滿足MRF爲自身MC的gibbs採樣提供了期望採樣的可能。
  有沒有發現,單樣本下涉及了期望,如果對多個樣本,豈不是可以用採樣集的均值作爲樣本期望了,樣本均值估計總體期望,是常見思路。RBM的開創大神們將這條路走到底,進一步將樣本集部分加進來~如下~
1lvDL(θ|v)w=1lvD[E[hv]|p(h|v)E[hv]|p(v,h)]1lvDL(θ|v)b=1lvD[E[v]|p(h|v)E[v]|pv,h]1lvDL(θ|v)c=1lvD[E[h]|p(h|v)E[h]|p(v,h)]
==>ΔwL(θ|D)=hvp(h|v)p(v)hvp(v,h)ΔbL(θ|D)=vp(v)vp(v,h)ΔcL(θ|D)=hp(h|v)p(v)hp(v,h)
  其中p(v) 表示樣本分佈,於是得到各個參數的梯度:ΔwL(θ|D)=hvdatahvmodelΔbL(θ|D)=vdatavmodelΔcL(θ|D)=hdatahmodel 。其中, 表示均值。
  剩下的問題就是解決在參數θ 下模型的採樣均值問題。

Markov Chain 與 Gibbs Sampling

  前面有提到,RBM滿足MRF,即其非近鄰節點狀態互相條件獨立(Markov property)定義1剛好對RBM結構來說,可以將節點狀態的更新過程,轉化爲MC的更新過程,又感慨世界多奇妙了~而MC的穩態不依賴於初始值,只與系統本身有關,可以在穩態的基礎上採樣得到p(v,h|θ) 下的穩定系統樣本均值。完美地解決了模型穩態下樣本均值的計算(期望地估計)。

Markov Chain

  馬爾科夫鏈是離散時間隨機過程,系統下一狀態只依賴於當前狀態p(k)ij=p(x(k+1)=j|x(k)=i) 。Markov property: 當前節點狀態只依賴於近鄰;下一狀態只依賴於當前。是不是很相像,兩者本質是一樣的,這是將MC與基於RBM採樣聯繫到一起的關鍵。
  平穩分佈:如果分佈π 滿足,πT=πTP ,其中P=(pij)
  馬爾科夫鏈穩定的定義:
  u(0)=u(0)(i)|i        ku(k)=u(k)(i)|i=u(0)Pk       uk=ππ=πPP =>MCπ
  馬爾科夫鏈穩定的充分條件:π(i)pij=π(j)pji
  馬爾科夫鏈穩定的充分條件2:一個不可約且非週期,並且具有有限狀態的馬爾科夫鏈,一定能夠收斂到穩態。非常重要
  不可約:在狀態空間有限的情況下,一個狀態可以經過有限次數轉移到另外任意狀態。
  非週期:狀態不周期復現。
  收斂定理[3]: 假設一個狀態有限且不可約非週期的MC,的穩態分佈爲π ,轉移矩陣P ,對任意的起始概率u ,都會有
  

limkdV(uTPk,πT)=0

  其中,dV(α,β)=12|αβ|=12xΩ|α(x)β(x)| 描述兩個分佈αβ 在有限狀態空間Ω 的distance of variation。
  馬爾科夫鏈的收斂定理,爲我們對RBM下的似然函數的梯度裏的期望計算提供了理論依據。隨意初始RBM起始狀態,按照gibbs採樣足夠次數後,必然得到RBM聯合分佈下的樣本。
Gibbs Sampling

  RBM在Markov property下的不同時刻的狀態變化可以滿足狀態有限且不可約非週期的MC。證明見[1]的3.2節。
  因此,對RBM可以在輸入v 的情況下,多次採樣。
  採樣方法化簡後如下(這裏的採樣方法由於RBM的節點間條件獨立得以非常簡單):
    1. sample h given v
    2. sample v given h
  以此循環。將最後的v 作爲第k次採樣的系統v節點狀態,可以認爲是系統在當前參數下的穩態v節點狀態樣本。
  OK,到這裏,貌似就將梯度的估計搞定了,採樣計算均值。依稀覺得哪裏不對勁,是的,採樣需要進行足夠多次才能得到穩態分佈的樣本,這是個problem。那我如果採樣有限的次數,是不是也OK呢。下面就給出肯定答案,採樣一步就足夠了。

Constractive Divergence

  兩個分佈的不對稱性,可以用Kullback Leibler divergence 來衡量,當分佈一致時,其值爲0.
  

KL(p1||p2)=p1lnp1p2=p1lnp1p1lnp2

  前面有博客最大似然與交叉熵的一致性講過,在樣本類別唯一時,最大化最大似然與最小化交叉熵是等價的,也等價於 最小化KL-divergence。
  根據收斂定理,gibb採樣分佈pk 比初始數據分佈p0 更接近穩態分佈p 。接下來的思路有兩個,一個顯得很樸素便於理解,一個繞個大圈子顯得逼格很高的樣子。
  超樸素的思路一:既然pk 更爲靠近p ,那麼採樣有限的幾步也是可以提供梯度的方向的,雖然並不精準。但是我們只需要是朝着大概正確的方向前進即可,大不了多迭代幾次嘛。這個想法,跟凸優化裏面的次梯度下降法有異曲同工之妙,只要朝着梯度下降的方向就好。OK,那麼選擇k=1 也可以估計梯度了,完畢。
  高逼格的思路二:最小化KL(p0||p) 作用 等效於 最小化距離的距離:CD(p0|pk)=KL(p0||p)KL(pk||p)
  對CD求導:CD(p0|pk)θ=lnp(v|θ)θp0p(vk|θ)θpk+KL(pk||p)pkpkθ
  估計上式:CD(p0|pk)θlnp(v|θ)θp0p(vk|θ)θpk
  再次估計:CD(p0|pk)θCD(p0|p1)θlnp(v|θ)θp0p(v1|θ)θp1
  於是得到:Δθ|CD(p0|p)lnp(v|θ)θp0p(v1|θ)θp1
  哈哈,得到CD下的梯度估計了(有專門就CD估計的bias的分析文章[5])。這個時候,是不是看着跟最大似然的梯度很相近,當然一致了。這裏在對最大似然與交叉熵和KL散度的一致性說明下:
  最大似然的優化函數:lnL(v|θ)=lnp(v|θ)T[y]
  交叉熵的優化函數:CE(p,y)=T[y]lnp(v|θ) 化積爲和。
  KL-散度的優化函數:KL(y||p)=ylnyylnp(v|θ) ,交叉熵的部分。
  CD-的優化函數:CD(y|y1)=ylnp(v|θ)+ylnp(v1|θ)
  優化函數,在連續性和一致性上都沒有本質變化,那麼梯度也必然是共通的(拋開正負方向)。
  思考:
  CD這塊看着很無用的樣子,但是給出了梯度估計的理論支撐。再往深處想一下,會發現Grdient Boost的想法也隱含其中,GB藉助函數空間的導數給出了下一個函數構建時的方向,這裏數據-GibbsSampling給出了模型與預期之間的差距,也相當於給出了理想更新模型狀態的方向。不同的是,前者剛好提供了理想與現實間的差距,後者則是剛好提供了梯度的估計。
  估計,則是在大體方向正確的前提下的簡化。

補充知識

1) 隨機變量

  

這裏寫圖片描述

2) 圖的相關概念

  主要是圖結構定義,圖markov-property,maxmial-clique,maxmium-clique
  

這裏寫圖片描述

  圖描述:G=(V,E) ,頂點集V ,邊集E
  團(clique):子圖,其中所有節點成對連接。一個圖G中含有多個團。
  極大團(maximal-clique):不能再加入任何一個頂點,使之仍爲團。一個圖G可以有多個極大團。
  最大團(maximum-clique):子圖,含頂點最多的極大團。一個圖G可以有多個最大團。
  對極大團的尋找,方法很多,經典的是Bron-Kerbosch方法。
  Markov-Property:對圖G的頂點v 定義一個隨機變量Xv ,使之取有限狀態空間Λv
  Local-Markov-Property:
    Xvp(xv|xGv)=p(xv|xNv) 。換句話,頂點狀態,given其近鄰狀態,條件獨立於其他頂點狀態。
  在圖的聯合分佈概率嚴格爲正時,有兩個等價的Markov-property。
  1)任意子圖AB被S分割,其中XAXBgivenXS 是條件獨立的。(global-MP)
  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》主要處理連續值的情況。

發佈了81 篇原創文章 · 獲贊 134 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章