1. 程式人生 > >Restricted Boltzmann Machine(限制玻爾茲曼機)

Restricted Boltzmann Machine(限制玻爾茲曼機)

RBM原理:

這裡寫圖片描述

玻爾茲曼機最初是作為一種廣義的“聯結主義”引入,用來學習向量上的任意概率分佈。聯結主義(connectionism)的中心思想是,當網路將大量簡單計算單元連線在一起時可以實現智慧的行為。分散式表示(distributed representation)認為系統每個輸入應該由許多特徵表示的,並且每個特徵應參與多個可能輸入的表示。
特別在不是所有變數都能被觀察到時,具有隱藏單元的玻爾茲曼機不再侷限於線性關係會十分強大,用處在於學習一組資料的“內在表示”,因此可以看到它沒有輸出層的概念。其實玻爾茲曼機也很符合大腦神經的工作,比如連線兩個隨機變數的軸突和樹突只能通過觀察他們物理上實際接觸的細胞的激發模式來學習,而且經常被同時啟用的兩個單元之間的連線會被加強。

這裡寫圖片描述

玻爾茲曼機也是這樣,如上圖所示,RBM由兩層組成,一層是可視層,一層是隱藏層。此時假設所有的節點都是隨機二值變數節點(只能取0或1),而且對於向量v,h假設全概率分佈基於能量Boltzmann分佈:

E(v,h)=aTvbThhTWv
其中a,b是偏倚係數,而W是權重矩陣。有了能量函式,v,h的聯合概率分佈為:
P(v,h)=1ZeE(v,h)
其中Z是被稱為配分函式的歸一化常數:
Z=v,heE(v,h)
由於 配分函式Z的難以處理,所以必須使用最大似然梯度來近似。首先從聯合分佈中匯出條件分佈:
P(h|v)=P(h,v)P(v)=1P(v)1Zexp{aTv+bTh+hTWv}

為了推導方便將無關值歸於Z’中:
P(h|v)=1Zexp{bTh+hTWv}=1Zexp{j=1nh(bTjhj+hTjW:,jvj)}=1Zj=1nhexp{bTjhj+hTjW:,jvj}
可以容易的得到在給定可視層v的基礎上,隱層第j個節點為1或者為0的概率為:
P(hj=1|v)=P(hj=1|v)P(hj=1|v)+P(hj=0|v)=exp{bj+W:,jvj}exp{0}+exp{bj+W:,jvj}=11+exp{(bj+W:,jvj)}=sigmoid(bj+W:,jvj)
可以看到就是相當於使用了 sigmoid啟用函式,現在可以寫出關於隱藏層的完全條件分佈:
P(vj=1|h)=sigmoid(aj+W:,jhj)
基於此可以得到RBM的對數損失函式: L(W,a,b)=i=1mln(P(v(i)))
然後求導可得:
(ln(P(v)))bi=vP(v)P(hi=1|v)P(hi=1|v)
(ln(P(v)))Wij=vP(v)P(h