天天看點

《深度學習導論及案例分析》一2.13玻耳茲曼機的學習

#### 本節書摘來自華章出版社《深度學習導論及案例分析》一書中的第2章,第2.13節,作者李玉鑑 張婷,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

在馬爾可夫網絡中,有一種稱為玻耳茲曼機(boltzmann machine,bm)的特殊結構,如圖2.16所示。玻耳茲曼機是一種由随機神經元全連接配接組成的神經

《深度學習導論及案例分析》一2.13玻耳茲曼機的學習

(頂層表示一個随機二值隐含特征,底層表示一個随機二值可視變量)

網絡模型,在結構上具有對稱性和無自回報的特點。玻耳茲曼機的神經元可以劃分為兩個層次,即可視層和隐含層。可視層的神經元稱為可視節點,隐含層的神經元稱為隐含節點。在标準玻耳茲曼機的情況下,每個節點不論是可視節點,還是隐含節點,都隻取0或者1兩種狀态,其中1表示激活狀态,0表示未激活狀态。

如果一個标準玻耳茲曼機的可視節點v∈{0,1}n,隐含節點h∈{0,1}m,那麼根據hammersleyclifford定理,它的能量函數可以定義為二次形式:

其中θ={w,l,j}是模型的參數(注意,這裡忽略了單點團),w表示可視節點與隐含節點之間的權值,l表示可視節點之間的權值,j表示隐含節點之間的權值。可視連接配接矩陣l和隐含連接配接矩陣j的對角元素取為0。根據這個模型得到的可視節點的機率為:

其中,p*表示未歸一化的機率,z(θ)表示配分函數。此外,可視節點和隐含節點的條件分布分别為:

其中σ(x)=1/(1+exp(-x))是sigmoid函數,又稱為logistic函數。h-j表示從h中去掉第j個隐含節點,v-i表示從v中去掉第i個可視節點。

在玻耳茲曼機的學習訓練階段,所有可視節點都被鉗制在環境決定的特定狀态下。但隐含神經元總是自由運作的,它們用來解釋環境輸入向量包含的固有限制。如果玻耳茲曼機在一組特定的權值下導出的可視節點的機率分布與可視節點被環境輸入向量所鉗制時的狀态機率分布完全一樣,就說它構造了環境結構的一個完整模型。一般情況下,除非隐含節點數目是可視節點數目的指數,否則不可能得到完整模型。但是在具有規則結構的環境中,利用較少的隐含節點也可以建立一個較好的環境比對模型。

玻耳茲曼機學習的目标是最大化似然函數或等價的對數似然函數。如果訓練集s={v(l),1≤l≤n},那麼對數似然函數的定義如下:

lbm(θ)=log∏nl=1p(v(l);θ)=∑nl=1logp(v(l);θ)(2.119)

利用梯度上升算法,不難推導出玻耳茲曼機的學習規則[65],即權值的更新量:

其中η>0是學習率,pdata(v)=1n∑nl=1δ(v-v(l))是資料的經驗分布(empirical distribution);epdata[•]表示對完全資料分布pdata(h,v;θ)=p(hv;θ)pdata(v)求期望,又稱為資料依賴期望(the datadependent expectation);epmod el[•]表示對模型分布求期望,又稱為模型期望(the model’s expectation)或者資料獨立期望(the dataindependent expectation)。

對玻耳茲曼機來說,精确的極大似然估計是難解的,因為資料依賴期望和模型期望的精确計算時間是隐含節點的指數函數。hinton和sejnowski曾提出利用吉布斯采樣的近似計算方案[128],其中需要運作一個馬爾可夫鍊逼近資料依賴期望,另一個馬爾可夫鍊逼近模型期望。但是這種方案很難達到穩态分布,特别是在對真實世界的資料分布進行模組化時。更有效的方案是,采用持續馬爾可夫鍊(persistent markov chain)估計模型期望,而采用變分學習方法(variational learning approach)估計資料依賴期望。

持續馬爾可夫鍊是通過一種随機逼近程式(stochastic approximation procedure,sap)産生的,其特點是從随機樣本開始進行吉布斯采樣,而不是從訓練樣本開始采樣。sap是一種屬于robbinsmonro類型的随機逼近算法[129134],其背後的思想是非常簡單、直接的。如果用θt和xt表示目前的參數和狀态,那麼sap對xt和θt的疊代更新過程見算法2.2。

算法2.2模型期望估計

在算法2.2中,轉移機率函數p(xt+1xt;θt)可以用公式(2.117)和公式(2.118)來定義。此外,學習率要求滿足的一個必要條件是ηt單調下降、∑∞t=0ηt=∞且∑∞t=0η2t<∞。比如,可選ηt=1/t。算法2.2能夠有效工作的原因在于:當學習率與馬爾可夫鍊的混合率相比變得充分小時,這個“持續”鍊将總是會非常接近穩态分布,即使每個參數的估計隻運作了幾次狀态采樣的更新。持續鍊中的狀态(或樣本)又稱為幻想粒子(fantasy pariticle)。

用變分學習方法估計資料依賴期望的基本思想是,對于每一個給定的訓練向量v,都把隐含變量的真實後驗分布p(hv;θ)用一個近似後驗q(hv;μ)來替代,并按照對數似然函數lnp(v;θ)的一個下界lm的梯度更新參數。下界lm定義為如下不等式的右邊:

其中,h(•)是熵泛函(entropy functional)。

根據公式(2.121)易知,在試圖最大化訓練資料的對數似然函數時,同時也會試圖最小化近似後驗q(hv;μ)和真實後驗p(hv;θ)之間的kl散度。為了簡化計算過程,令q(hj=1)=μj,采用樸素平均場方法(nave meanfield approach),選擇一個完全分解的分布q(hv;μ)=∏mj=1q(hj)(m為隐含節點的數目),去逼近真實後驗分布。進而,可以得到下界lm的具體形式:

變分學習的具體過程就是對固定的參數θ,通過調整變分參數μ最大化這個下界,相應的平均場不動點方程為

μj←σ∑iwijvi+∑m\jjmjμm(2.123)

綜上所述,玻耳茲曼機的學習過程可以總結為算法2.3。

算法2.3玻耳茲曼機的學習過程

輸入:訓練集s={vl,1≤l≤n}、網絡結構

輸出:權值w、l、j

3.結束

在玻耳茲曼機中,如果令可視連接配接矩陣l=0、隐含連接配接矩陣j=0,就可以得到深度學習的一種基本模型,即受限玻耳茲曼機。與一般的玻耳茲曼機不同,受限玻耳茲曼機的推理可以是精确的。雖然在受限玻耳茲曼機中進行精确的極大似然學習仍然是難解的,但是利用k步對比散度(kstep contrastive divergence,cdk)算法可以使其學習過程變得非常高效[141]。cdk算法在2006年前後曾經對深度學習的創立和發展起過舉足輕重的作用。

繼續閱讀