常見的五種神經網絡(4)-深度信念網絡(上)篇之玻爾茲曼機和受限玻爾茲曼機

引言

常見的五種神經網絡系列第三篇,主要介紹深度信念網絡。內容分爲上下兩篇進行介紹,本文主要是深度信念網絡(上)篇,主要介紹以下內容:

  • 背景
  • 玻爾茲曼機
  • 受限玻爾茲曼機

該系列的其他文章:

背景

對於一個複雜的數據分佈,我們往往只能觀測到有限的局部特徵,並且這些特徵通常會包含一定的噪聲。如果要對這個數據分佈進行建模,就需要挖掘出可觀測變量之間複雜的依賴關係,以及可觀測變量背後隱藏的內部表示。

而深度信念網絡可以有效的學習變量之間複雜的依賴關係。深度信念網絡中包含很多層的隱變量,可以有效的學習數據的內部特徵表示,也可以作爲一種有效的非線性降維方法,這些學習到的內部特徵表示包含了數據的更高級的、有價值的信息,因此十分有助於後續的分類和迴歸等任務。

玻爾茲曼機是生成模型的一種基礎模型,和深度信念網絡的共同問題是推斷和學習,因爲這兩種模型都比較複雜,並且都包含隱變量,他們的推斷和學習一般通過MCMC方法來進行近似估計。這兩種模型和神經網絡有很強的對應關係,在一定程度上也稱爲隨機神經網絡(Stochastic Neural Network,SNN)。

因爲深度信念網絡是有多層玻爾茲曼機組成的,所以本篇文章我們先來了解一下玻爾茲曼機受限玻爾茲曼機

玻爾茲曼機

介紹

玻爾茲曼機(Boltzmann Machine)可以看作是一種隨機動力系統,每個變量的狀態都以一定的概率受到其他變量的影響。玻爾茲曼機可以用概率無向圖模型來描述,如下所示:

一個有六個變量的玻爾茲曼機

BM的三個性質:

  • 二值輸出:每個隨機變量可以用一個二值的隨機變量表示
  • 全連接:所有節點之間是全連接的
  • 權重對稱:每兩個變量之間的相互影響是對稱的

BM中的每個變量XX的聯合概率由玻爾茲曼分佈得到,即:
p(x)=1Zexp(E(x)T) p(x) = \frac{1}{Z} exp(\frac{-E(x)}{T})
其中ZZ爲配分函數,能量函數E(X)E(X)的定義爲:
E(x)=E(X=x)=(i<jwijxixj+ibixi) E(x) \overset{\bigtriangleup }{=} E(X=x) = -( \sum_{i<j } w_{ij}x_ix_j + \sum_{i} b_i x_i )

其中wijw_{ij}是兩個變量之間的連接權重,xi{0,1}x_i \in \{0,1\}表示狀態,bib_i是變量xix_i的偏置。

玻爾茲曼機可以用來解決兩類問題,一是搜索問題,當給定變量之間的連接權重,需要找到一組二值變量,使得整個網絡的能量最低。另一類是學習問題,當給定一部分變量的觀測值時,計算一組最優的權重。

生成模型

在玻爾茲曼機中配分函數ZZ通常難以計算,因此聯合概率分佈p(x)p(x)一般通過MCMC(馬爾科夫鏈蒙特卡羅,Markov Chain Monte Carlo)方法來近似,生成一組服從p(x)p(x)分佈的樣本。這裏介紹基於吉布斯採樣的樣本生成方法。

1. 全條件概率
吉布斯採樣需要計算每個變量XiX_i的全條件概率p(xixi)p(x_i|x_{\setminus i}),其中xix_{\setminus i}表示除了XiX_i外其它變量的取值。

對於玻爾茲曼機中的一個變量XiX_i,當給定其他變量xix_{\setminus i}時,全條件概率公式p(xixi)p(x_i|x_{\setminus i})爲:
p(xi=1xi)=σ(jwijxj+biT)p(xi=0xi)=1p(xi=1xi) p(x_i=1|x_{\setminus i}) = \sigma( \frac{ \sum_{j} w_{ij}x_j +b_i }{T} ) \\ p(x_i=0|x_{\setminus i}) = 1- p(x_i=1|x_{\setminus i})
其中σ(.)\sigma(.)爲sigmoid函數。

2. 吉布斯採樣

玻爾茲曼機的吉布斯採樣過程爲:隨機選擇一個變量XiX_i,然後根據其全條件概率p(xixi)p(x_i|x_{\setminus i})來設置其狀態,即以p(xi=1xi)p(x_i=1|x_{\setminus i})的概率將變量XiX_i設爲1,否則全爲0。在固定溫度TT的情況下,在運動不夠時間之後,玻爾茲曼機會達到熱平衡。此時,任何全局狀態的概率服從玻爾茲曼分佈p(x)p(x),只與系統的能量有關,與初始狀態無關。

要使得玻爾茲曼機達到熱平衡,其收斂速度和溫度TT相關。當系統溫度非常高TT \rightarrow \infty時,p(xixi)0.5p(x_i|x_{\setminus i}) \rightarrow 0.5,即每個變量狀態的改變十分容易,每一種系統狀態都是一樣的,從而很快可以達到熱平衡。當系統溫度非常低T0T \rightarrow 0時,如果ΔEi(xi)>0\Delta E_i(x_{ \setminus i}) > 0,則p(xixi)1p(x_i|x_{\setminus i}) \rightarrow 1,如果ΔEi(xi)<0\Delta E_i(x_{ \setminus i}) < 0,則p(xixi)0p(x_i|x_{\setminus i}) \rightarrow 0,即:
xi={1ifjwijxj+bi00otherwise x_i = \left\{\begin{matrix} 1 & if \sum_{j}w_{ij}x_j + b_i \geq 0\\ 0 & otherwise \end{matrix}\right.

因此,當$ \rightarrow 0$時,隨機性方法變成了確定性方法,這時,玻爾茲曼機退化爲一個Hopfield網絡。Hopfield網絡是一種確定性的動力系統,每次的狀態更新都會使系統的能量降低;而玻爾茲曼機時一種隨機性動力系統,每次的狀態更新則以一定的概率使得系統的能力上升。

3. 能量最小化與模擬退火

要使得動力系統達到熱平衡,溫度TT的選擇十分關鍵。一個比較好的折中方法是讓系統剛開始在一個比較高的溫度下運行達到熱平衡,然後逐漸降低直到系統在一個比較低的溫度下達到熱平衡。這樣我們就能夠得到一個能量全局最小的分佈。這個過程被稱爲模擬退火(Simulated Annealing)。

模擬退火是一種尋找全局最優的近似方法。

受限玻爾茲曼機

介紹

全連接的玻爾茲曼機十分複雜,雖然基於採樣的方法提高了學習效率,但在權重更新的過程中仍十分低效。在實際應用中,使用比較廣泛的一種帶限制的版本,即受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)是一個二分圖結構的無向圖模型,如下所示。
一個有7個變量的受限玻爾茲曼機

首先玻爾茲曼機中的變量也分爲隱藏變量和可觀測變量。分別用可觀測層和隱藏層來表示這兩組變量。同一層中的節點之間沒有連接,而不同層一個層中的節點與另一層中的所有節點連接,這和兩層的全連接神經網絡結構相同。

一個受限玻爾茲曼機由m1m_1個可觀測變量和m2m_2個隱變量組成,其定義如下:

  • 可觀測的隨機向量v=[v1,...,vm1]Tv=[v_1, ..., v_{m_1}]^T
  • 隱藏的隨機向量 h=[h1,...,hm2]Th=[h_1, ... , h_{m_2}]^T
  • 權重矩陣WRm1m2W \in R^{m_1 * m_2},其中每個元素wijw_{ij}爲可觀測變量viv_i和隱變量hjh_j之間邊的權重
  • 偏置aRm1a \in R^{m_1}bRm2b \in R^{m_2},其中aia_i爲每個可觀測變量viv_i得偏置,bjb_j爲每個隱變量hjh_j得偏置

受限玻爾茲曼機得能量函數定義爲:
E(v,h)=iaivijbjhjijviwijhj=aTvbThvTWh E(v,h) = - \sum_{i} a_iv_i - \sum_{j}b_j h_j - \sum_{i}\sum_{j}v_i w_{ij}h_j = -a^Tv -b^Th - v^T W h
受限玻爾茲曼機得聯合概率分佈爲p(v,h)p(v,h)定義爲:
p(v,h)=1Zexp(E(v,h))=1Zexp(aTv)exp(bTh)exp(vTWh) p(v,h) = \frac{1}{Z} exp(-E(v,h)) = \frac{1}{Z} exp(a^Tv)exp(b^Th)exp(v^TWh)
其中Z=v,hexp(E(v,h))Z=\sum_{v,h}exp(-E(v,h))爲配分函數。

生成模型

受限玻爾茲曼機得聯合概率分佈p(v,h)一般也通過吉布斯採樣的方法來近似,生成一組服從p(v,h)p(v,h)分佈的樣本。

1. 全條件概率
吉布斯採樣需要計算每個變量ViV_iHjH_j的全條件概率。受限玻爾茲曼機中的同層的變量之間沒有連接。從無向圖的性質可知,在給定可觀測變量時,隱變量之間相互條件獨立,同樣在給定隱變量時,可觀測變量之間也相互條件獨立,即有:
p(vivi,h)=p(vih)p(hjv,hj)=p(hjv) p(v_i | v_{\setminus i},h) = p(v_i|h) \\ p(h_j | v,h_{\setminus j}) = p(h_j|v)
其中viv_{\setminus i}表示除變量ViV_i外其他可觀測變量得取值,hjh_{\setminus j}爲除變量HjH_j外其它隱變量的取值。因此,ViV_i的全條件概率只需要計算p(vih)p(v_i|h),而HjH_j的全條件概率只需要計算p(hjv)p(h_j|v)

在受限玻爾茲曼機中,每個可觀測變量和隱變量的條件概率爲:
p(vi=1h)=σ(ai+jwijhj)p(hj=1v)=σ(bj+iwijvi) p(v_i=1|h) = \sigma (a_i + \sum_{j}w_{ij} h_j) \\ p(h_j=1|v) = \sigma (b_j + \sum_{i}w_{ij} v_i)

其中σ\sigma爲sigmoid函數。

2. RBM中得吉布斯採樣
受限玻爾茲曼機得采樣過程如下:

  • (給定)或隨機初始化一個可觀測的向量v0v_0,計算隱變量得概率,並從中採樣一個隱向量h0h_0
  • 基於h0h_0,計算可觀測變量得概率,並從中採樣一個個可觀測的向量v1v_1
  • 重複tt次後,獲得(vt,ht)(v_t, h_t)
  • tt \rightarrow \infty時,(vt,ht)(v_t,h_t)的採樣服從p(v,h)p(v,h)分佈

下圖爲上述採樣過程的示例:
受限玻爾茲曼機得采樣過程

3. 對比散度學習算法

由於首先玻爾茲曼機得特殊結構,因此可以使用一種比吉布斯採樣更高效的學習算法,即對比散度(Contrastive Divergence)。對比散度算法僅需k步吉布斯採樣。

爲了提高效率,對比散度算法用一個訓練樣本作爲可觀測向量的初始值,然後交替對可觀測向量和隱藏向量進行吉布斯採用,不需要等到收斂,只需要k步就行了。這就是CD-k算法,通常,k=1就可以學得很好。對比散度得流程如下所示:
單步對比散度算法

4. 受限玻爾茲曼機得類型
在具體的不同任務中,需要處理得數據類型不一定是二值得,也可能時連續值,爲了能夠處理這些數據,就需要根據輸入或輸出得數據類型來設計新的能量函數。一般來說受限玻爾茲曼機有以下三種:

  • “伯努利-伯努利”受限玻爾茲曼機:即上面介紹得可觀測變量喝隱變量都爲二值類型得受限玻爾茲曼機
  • “高斯-伯努利”受限玻爾茲曼機:假設可觀測變量爲高斯分佈,隱變量爲伯努利分佈,其能量函數定義爲:
    E(v,h)=i(viμi)22σi2jbjhjijviσiwijhj E(v,h) = \sum_{i} \frac{(v_i - \mu_i)^2}{2 \sigma_i^2} - \sum{j} b_jh_j - \sum_{i}\sum{j} \frac{v_i}{\sigma_i}w_ijh_j
    其中每個可觀測變量viv_i服從(μi,σi)(\mu_i, \sigma_i)的高斯分佈。
  • “伯努利-高斯”受限玻爾茲曼機:假設可觀測變量爲伯努利分佈,隱變量爲高斯分佈,其能量函數定義爲:
    E(v,h)=iaivjj(hjuj)22σj2ijviwijhjσj E(v,h)=\sum_{i}a_i v_j - \sum_{j} \frac{(h_j-u_j)^2}{2\sigma_j^2} - \sum_{i}\sum_{j}v_iw_{ij}\frac{h_j}{\sigma_j}
    其中每個隱變量hjh_j服從(μj,σj)(\mu_j, \sigma_j)的高斯分佈

【技術服務】,詳情點擊查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg

掃一掃 關注微信公衆號!號主 專注於搜索和推薦系統,嘗試使用算法去更好的服務於用戶,包括但不侷限於機器學習,深度學習,強化學習,自然語言理解,知識圖譜,還不定時分享技術,資料,思考等文章!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章