from:http://blog.csdn.net/xbinworld/article/details/44901865
需要的背景知識
要學習RBM需要的一些基本的統計學習基礎,包括貝葉斯定理,隨機采樣方法(Gibbs sampling)等。這些可以翻閱我之前寫的一些博文可以看到相關的介紹,在本文中就不具體展開了。總體來說RBM還是相對比較獨立的一個算法,不需要依賴太多的先驗知識。
RBM基本概念
受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)是G.Hinton教授的一寶。Hinton教授是深度學習的開山鼻祖,也正是他在2006年的關於深度信念網絡DBN的工作,以及逐層預訓練的訓練方法,開啟了深度學習的序章。其中,DBN中在層間的預訓練就采用了RBM算法模型。RBM是一種無向圖模型,也是一種神經網絡模型。
RBM具有兩層:可見層(V層),以及隱藏層(H層),網絡上比較常見的一張圖是[1]:
可以看到,兩層神經元之間都是全連接的,但是每一層各自的神經元之間並沒有連接,也就是說,RBM的圖結構是一種二分圖(bipartite graph)。正是這個特點,才叫受限玻爾茲曼及,玻爾茲曼機是允許同一層之間的神經元相連的。RBM其實是一種簡化了的BM模型。
還有一個特點,RBM中的神經元都是二值化的,也就是說只有激活和不激活兩種狀態,也就是0或者1;可見層和隱藏層之間的邊的權重可以用WW來表示,WW是一個|V|×|H||V|×|H|大小的實數矩陣。后面一篇講RBM求解的時候可以看到,算法難點主要就是對WW求導(當然還有bias參數),用於梯度下降的更新;但是因為V和H都是二值化的,沒有連續的可導函數去計算,實際中采用的sampling的方法來計算,這里面就可以用比如gibbs sampling的方法,當然,Hinton提出了對比散度CD方法,比gibbs方法更快,已經成為求解RBM的標准解法。RBM求解部分將在下一小篇中具體介紹。
OK,第一篇就到這里。
覺得有一點點價值,就支持一下哈!花了很多時間手打公式的說~更多內容請關注Bin的專欄
參考資料
[1] http://www.chawenti.com/articles/17243.html
[2] 張春霞,受限波爾茲曼機簡介
[3] http://www.cnblogs.com/tornadomeet/archive/2013/03/27/2984725.html
[4] http://deeplearning.net/tutorial/rbm.html
[5] Asja Fischer, and Christian Igel,An Introduction to RBM
[6] G.Hinton, A Practical Guide to Training Restricted Boltzmann Machines
[7] http://blog.csdn.net/itplus/article/details/19168937
[8] G.Hinton, Training products of experts by minimizing contrastive divergence, 2002.
[9] Bengio, Learning Deep Architectures for AI, 2009