標籤:

受限玻爾茲曼機(RBM)學習筆記

本文主要對皮果提關於RBM學習筆記的總結,若有不妥之處,還望告知。

受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)是一種可用隨機神經網路(stochastic neural network)來解釋的概率圖模型(probabilistic graphical model)。RBM是Smolensky於1986年在波爾茲曼機(Boltzmann Machine,BM)基礎上提出的,所謂「隨機」是指網路中的神經元是隨機神經元,輸出狀態只有兩種(未激活和激活),狀態的具體取值根據概率統計法則來決定。RBM理論是Hinton在2006年提出基於RBM的(Deep Belief Network)模型,大量學者開始研究RBM的理論及其應用。

1. 預備知識

RBM模型需要一些預備知識,需要了解(參考:受限玻爾茲曼機(RBM)學習筆記(一)預備知識):

  • sigmiod函數,神經網路中常用的激活函數之一,sigmoid(x)=frac{1}{1+e^{-x}}
  • Bayes定理,P(A|B)=frac{P(A,B)}{P(B)}P(B|A)=frac{P(A,B)}{P(A)}推出P(A|B)=P(A)frac{P(B|A)}{P(B)}P(A)先驗概率(Prior probability)、P(A|B)後驗概率(Posterior probability),frac{P(B|A)}{P(B)}可能性函數(Likelyhood)。
  • 二分圖(bipartite graph),圖論中一種特殊模型,如果無向圖中頂點可分割為兩個互不相交的子集,而且圖中的每條邊關聯的兩個頂點分別屬於這兩個不同的頂點集。
  • MCMC,蒙特卡羅方法最初用於通過隨機化的方法計算積分,假設計算int_{a}^{b} h(x)dx,如果無法通過數學推導直接求出解析解,一般不可能對區間(a,b)上所有的x值進行枚舉,我們可以將h(x)分解為某個函數f(x)和一個定義在(a,b)上的概率密度函數p(x)的乘積,則整個積分可以寫成int_{a}^{b}h(x)dx=int_{a}^{b}f(x)p(x)dx=E_{p(x)}[f(x)],這樣原積分等同於f(x)在p(x)這個分布上的均值。這時,如果我們從分布p(x)上採集大量的樣本點,這些樣本符合分布p(x),即有frac{x_{i}}{sum_{i=1}^{n}x_{i}}approx p(x_{i})。那麼我們就可以通過這些樣本來逼近這個均值int_{a}^{b}h(x)dx=int_{a}^{b}f(x)p(x)dx=E_{p(x)}[f(x)]approx frac{1}{n}sum_{i=1}^{n}f(x_{i}),這就是蒙特卡羅方法的基本思想。蒙特卡羅方法的核心問題是如何從分布上隨機採集樣本,一般採用馬爾可夫鏈蒙特卡羅方法(Markov Chain Monte Carlo,MCMC)產生指定分布下的樣本。
  • 馬爾可夫鏈,離散時間上隨機變數隨時間變化的轉移概率僅僅依賴於當前值的序列,MCMC建立的理論基礎:如果我們想在某個分布下採樣,只需要模擬以其為平穩分布的馬爾科夫過程,經過足夠多次轉移之後,我們的樣本分布就會充分接近於該平穩分布,也就意味著我們近似地採集目標分布下的樣本。
  • 正則分布,統計力學的一個基本結論:當系統與外界達到熱平衡時,系統處於狀態i的概率p_{i}具有以下形式p_{i}=frac{1}{Z_{T}} e^{-frac{E_{i}}{T}},其中Z_{T}=sum_{i}{e^{-frac{E_{i}}{T}}}被稱作歸一化常數,T為正數,表示系統所處的溫度,這種概率分布的形式叫做正則分布。

  • Metropolis-Hasting採樣,MCMC演算法中,為了在一個指定的分布上採樣,先從系統的任意一個狀態出發,然後模擬馬爾可夫過程,不斷進行狀態轉移,根據馬爾可夫的性質,經過足夠的轉移次數之後,我們所處的狀態即符合目標分布,此時的狀態就可以作為一個採集到的樣本。演算法的關鍵就是設計出合理的狀態轉移過程。Metropolist-Hastings是一個非常重要的MCMC採樣演算法,並且對於設計狀態轉移過程建立了統一的框架。

2. RBM的網路結構

參考:受限玻爾茲曼機(RBM)學習筆記(二)網路結構

RBM包含兩個層,可見層(visible layer)和隱藏層(hidden layer)。神經元之間的連接具有如下特點:層內無連接,層間全連接,顯然RBM對應的圖是一個二分圖。一般來說,可見層單元用來描述觀察數據的一個方面或一個特徵,而隱藏層單元的意義一般來說並不明確,可以看作特徵提取層。RBM和BM的不同之處在於,BM允許層內神經元之間有連接,而RBM則要求層內神經元之間沒有連接,因此RBM的性質:當給定可見層神經元的狀態時,各隱藏層神經元的激活條件獨立;反之當給定隱藏層神經元的狀態是,可見層神經元的激活也條件獨立

如圖給出了一個RBM網路結構示意圖。其中:n_{v},n_{h}分別表示可見層和隱藏層中包含神經元的數目,下標v,h代表visible和hidden;v=(v_{1},v_{2},...,v_{n_{v}},)^{T}表示可見層的狀態向量;h=(h_{1},h_{2},...,h_{n_{h}},)^{T}表示隱藏層的狀態向量;a=(a_{1},a_{2},...,a_{n_{v}},)^{T}表示可見層的偏置向量;b=(b_{1},b_{2},...,b_{n_{h}},)^{T}表示隱藏層的偏置向量;W=(w_{i,j})in Re ^{n_{h}	imes n_{v}}表示隱藏層和可見層之間的權值矩陣,w_{i,j}表示隱藏層中第i個神經元與可見層中第j個神經元之間的連接權重。記	heta =(W,a,b)表示RBM中的參數,可將其視為把W,a,b中的所有分量拼接起來得到的長向量。

3. 能量函數和概率分布

參考:受限玻爾茲曼機(RBM)學習筆記(三)能量函數和概率分布

RBM模型是基於能量的模型,需要為其定義一個能量函數,並利用能量函數引入一系列相關的概率分布函數。對於一組給定的狀態(v,h),可定義能量函數:E_	heta(v,h)=-sum_{i=1}^{n_{v}}a_{i}v_{i}-sum_{j=1}^{n_{h}}b_{j}h_{j}-sum_{i=1}^{n_{v}}sum_{j=1}^{n_{h}}h_{j}w_{j,i}v_{i}

其矩陣向量形式E_	heta(v,h)=-a^{T}v-b^{T}h-h^{T}Wv

利用能量函數給出狀態(v,h)的聯合概率分布P_	heta(v,h)=frac{1}{Z_	heta}e^{-E_	heta(v,h)}

其中,Z_	heta=sum_{v,h}e^{-E_	heta(v,h)}稱作歸一化因子,也稱作配分函數(Partition Function)。

對於實際問題,我們最關心的是觀測數據v的概率分布P_{	heta}(v),對應於P_{	heta}(v,h)的邊緣分布,也稱作似然函數(likelihood function):P_{	heta}(v)=sum_{h}P_{	heta}(v,h)=frac{1}{Z_	heta}sum_{h}e^{-E_{	heta}(v,h)}。類似地,我們同樣可以得到P_{	heta}(h)=sum_{v}P_{	heta}(v,h)=frac{1}{Z_	heta}sum_{v}e^{-E_{	heta}(v,h)}。對於Z_	heta的計算包含2^{n_{v}+n_{h}}項,其計算複雜度非常高,無法直接計算,需要一些數學推導來簡化計算量。

4. 對數似然函數

參考:受限玻爾茲曼機(RBM)學習筆記(四)對數似然函數

給定訓練樣本,RBM的訓練意味著調整參數	heta,從而擬合給定的訓練樣本,使得參數條件下對應RBM表示的概率分布儘可能符合訓練數據。

假定訓練樣本集合為S={v_1,v_2,...,v^{n_s}},其中n_s為訓練樣本的數目,v^i=(v_1^i,v_2^i,...,v_{n_v}^i)^T,i=1,2,...,n_s,它們是獨立同分布的,則訓練RBM的目標就是最大化如下似然L_{	heta,S}=prod_{i=1}^{n_s}P(v^i) ,一般通過對數轉化為連加的形式,其等價形式:lnL_{	heta,S}=lnprod_{i=1}^{n_s}P(v^i) =sum_{i=1}^{n_s}lnP(v^i) 。簡潔起見,將L_{	heta,S}簡記為L_S

5. 梯度計算

參考:受限玻爾茲曼機(RBM)學習筆記(五)梯度計算公式 受限玻爾茲曼機(RBM)學習筆記(六)對比散度演算法 受限玻爾茲曼機(RBM)學習筆記(七)RBM 訓練演算法 受限玻爾茲曼機(RBM)學習筆記(八)RBM 的評估

最大化L_S常用的數值方法是梯度上升法(Gradient Ascent),通過迭代的方法進行逼近,迭代形式:	heta:=	heta+etafrac{partial lnL_S}{partial	heta},其中eta>0表示學習速率。其關鍵就是計算梯度frac{partial lnL_S}{partial	heta}lnL_S關於各個參數的偏導數frac{partial lnL_S}{partial w_{i,j}}frac{partial lnL_S}{partial a_i},frac{partial lnL_S}{partial b_i})。一般採用MCMC採樣來估計,但由於常規的MCMC需要經過許多步的狀態轉移才能保證採集到的樣本符合目標分布。若我們以訓練樣本作為起點,就可以僅需要很少次的狀態轉移抵達RBM的分布。Hinton教授2002年基於這個上想法發明了對比散度(Contrastive Divergence,CD)演算法,目前已經成為訓練RBM的標準演算法。


推薦閱讀:

Michael Nielsen對交叉熵的解釋(三)
使用py-faster-rcnn進行目標檢測(object detect)
神經網路的參數計算
李飛飛最新論文:構建好奇心驅動的神經網路,複製嬰兒學習能力
先睹為快:神經網路頂會ICLR 2018論文接受結果速覽

TAG:神經網路 |