RBM用到了能量模型。html
簡單的歸納一下能量模型。假設一個孤立系統(總能量$E$必定,粒子個數$N$必定),溫度恆定爲1,每一個粒子有$m$個可能的狀態,每一個狀態對應一個能量$e_i$。那麼,在這個系統中隨機選出一個粒子,這個粒子處在狀態$k$的機率,或者說具備狀態$k$的粒子所佔的比例爲:網絡
$$p(state=k)=\frac{e^{-e_k}}{Z}$$函數
其中$Z=\sum e^{-e_i}$稱爲配分函數。優化
擴展開來,在一個正則系綜中,系統$i$處在狀態$S_i$的機率爲:ui
$$P(state=i)=\frac{e^{-E_i}}{\sum e^{-E_i}}$$.net
當這個系統有個宏觀的狀態,對應的宏觀測量值爲$Q$,狀態是微觀狀態的集合$S_Q=\{s_1,s_4,...\}$,則該宏觀狀態出現的機率爲htm
$$P(S_Q)=\frac{\sum_{k\in S_Q} e^{-e_k}}{Z}$$blog
比照粒子,咱們定義一個宏觀狀態對應的能量爲$E_Q$,改寫上式爲ip
$$P(S_Q)=\frac{e^{-E_Q}}{Z}~~where~~Z=\sum_Q e^{-E_Q}$$擴展
與微觀態的關係爲
$$E_Q=-ln\sum_{k\in S_Q} e^{-e_k}$$
受限玻爾茲曼機是這麼一個系統,系統結構爲一個二分網絡。一種節點類型爲可視節點,另外一種爲隱含節點,全部節點都爲二值節點(0,1)。以下圖。
定義該系統的能量爲
$$E=-(\sum a_iv_i+\sum w_{i,j}v_i h_j+\sum b_ih_j)~~where~~w_{i,j}=w_{j,i} ~~~~~~~~~(1)$$
即系統能量爲各節點能量與耦合能量(邊能量)之和。系統處在狀態${V,H}$的機率爲:
$$P(V,H)=\frac{e^{-E(V,H)}}{\sum_{V,H} e^{-E(V,H)}}=\frac{e^{-E(V,H)}}{Z}$$
$Z$爲配分函數。
可視層節點處在狀態$x$的機率爲:
$$P(V=x)=\frac{\sum _He^{-E(x,H)}}{Z} \equiv \frac{e^{-E_x}}{\sum e^{-E_x}}~~~~~~~~~~(2)$$
其中
$$E_x=-ln(\sum _He^{-E(x,H)})~~~~~~(3)$$
因爲同一類節點是不相連的,所以同類節點之間相互獨立,所以每一個隱含層節點以及與它相連的邊組成的一個小系統是一個獨立系統。當可視層狀態給定爲$x$時,該小系統只有兩個狀態(隱含節點爲0或者1),或者說具備兩個能階。
$$-E(h_i;x)=b_ih_i+\sum w_ix_ih_i=(b_i+\sum w_ix_i)h_i=B_ih_i~~where~~B_i=b_i+\sum w_ix_i$$
所以
$$E(h_i=0;x)=0,E(h_i=1;x)=-B_i$$
$$P(h_i=1;x)=\frac{e^{B_i}}{e^0+e^{B_i}}=sigmoid(B_i)$$
咱們重寫公式(1)的系統能量表示
$$E(x,h)=-(\sum a_iv_i+\sum B_jh_j)=-(A^Tx+B^Th)~~~(4)$$
而且得出
$$E_x=-ln(e^{A^Tx}\sum_h \prod_j e^{B_j h_j})=-A^Tx- ln\sum_h \prod_j e^{B_j h_j}=-A^Tx-ln \prod_j \sum_h e^{B_j h_j}=-A^Tx-\sum_j ln \sum_{h_j \in \{0,1\}} e^{B_j h_j}=-A^Tx-\sum_j ln(1+e^{B_j})$$
爲了計算方便,咱們要優化的目標函數是
$$J=-ln P(x)=E_x+ln Z$$
對某一參數 $\theta$,咱們得出
$$\frac{\partial J}{\partial \theta}=\frac{\partial E_x}{\partial \theta}-\sum_v P(v)\frac{\partial E_v}{\partial \theta}$$
參考文獻
http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine
http://deeplearning.net/tutorial/rbm.html