天天看點

《深度學習導論及案例分析》一3.2受限玻耳茲曼機的學習算法

受限玻耳茲曼機的學習就是對模型參數集θ進行計算,常用的方法是最大似然估計,其基本思想在于采用梯度上升算法最大化總體對數似然函數。在給定可視向量訓練集s={v(l),1≤l≤n}時,受限玻耳茲曼機的對數似然函數定義為

由于

是以,受限玻耳茲曼機的對數似然梯度為

其中,ep(•)表示求關于分布p的數學期望,p(hv(l),θ)表示在可視向量為v(l)時,隐含向量的條件機率分布。

根據公式(3.13)可得對數似然梯度關于各個參數的偏導為

顯然,直接利用公式(3.14)~公式(3.16)計算上述偏導值的效率是非常低的,因為在計算ep(v,h|θ)[hivj]、ep(v,h|θ)[vj]和ep(v,h|θ)[hi]的期望值時,需要進行具有指數複雜度的求和運算。

為了快速計算受限玻耳茲曼機的對數似然梯度,可以采用一類稱為對比散度(contrastive divergence,cd)的近似算法[146,147]。其中常用的是k步對比散度算法(kstep contrastive divergence,cdk),詳見算法3.1。注意,算法3.1并未加入學習率等預設參數,與網上下載下傳的實作代碼可能略有不同。

算法3.1k步對比散度(cd-k)

不難看出,cdk算法的核心是一種特殊的吉布斯采樣,稱為交錯吉布斯采樣(alternating gibbs sampling)或者分塊吉布斯采樣(blocked gibbs sampling)[145],如圖3.3所示。吉布斯采樣是一種mcmc算法,在直接采樣困難的情況下,可以用來生成一個吉布斯蒙特卡羅馬爾可夫鍊或吉布斯鍊[148,149],用以近似一個給定多變量分布的樣本。交錯吉布斯采樣主要包括下面兩個關鍵步驟:

《深度學習導論及案例分析》一3.2受限玻耳茲曼機的學習算法

1)令t=0,用可視向量的訓練樣本v(l)初始化吉布斯鍊,得到g(t)=(g(t)1,g(t)2,…,g(t)m)t=v(l)。

2)通過疊代依次從p(hg(t),θ)采樣h(t)=(h(t)1,h(t)2,…,h(t)n),從p(vh(t),θ)采樣g(t+1),直到t+1=k。

對每一個可視向量樣本v(l),都可以利用交錯吉布斯采樣生成一個k步吉布斯鍊,g(l,0)=v(l),h(l,0),g(l,1),…,h(l,k),g(l,k+1)。根據這個吉布斯鍊,就可以近似計算在訓練樣本僅為v(l)時的對數似然梯度如下:

cdk=kl(p0p∞)-kl(pkp∞)

=1nlogn-1n∑nl=1logp(g(l,0)|θ)-1nlogn-1n∑nl=1logp(g(l,k)|θ)

=1n∑nl=1(logp(g(l,0)|θ)-logp(g(l,k)|θ))(3.20)

其中,p0(vθ)=1n∑nl=1δ(v-v(l))=1n∑nl=1δ(v-g(l,0))

θ(t+1)=θ(t)+ηlrbm(θ(t))θ-λθ(t)+νΔθ(t-1):=Δθ(t)(3.21)

繼續閱讀