要學習rbm需要的一些基本的統計學習基礎,包括貝葉斯定理,隨機取樣方法(gibbs sampling)等。這些可以翻閱我之前寫的一些博文可以看到相關的介紹,在本文中就不具體展開了。總體來說rbm還是相對比較獨立的乙個演算法,不需要依賴太多的先驗知識。
受限玻爾茲曼機(restricted boltzmann machine,rbm)是g.hinton教授的一寶。hinton教授是深度學習的開山鼻祖,也正是他在2023年的關於深度信念網路dbn的工作,以及逐層預訓練的訓練方法,開啟了深度學習的序章。其中,dbn中在層間的預訓練就採用了rbm演算法模型。rbm是一種無向圖模型,也是一種神經網路模型。
rbm具有兩層:可見層(v層),以及隱藏層(h層),網路上比較常見的一張圖是[1]:
可以看到,兩層神經元之間都是全連線的,但是每一層各自的神經元之間並沒有連線,也就是說,rbm的圖結構是一種二分圖(bipartite graph)。正是這個特點,才叫受限玻爾茲曼及,玻爾茲曼機是允許同一層之間的神經元相連的。rbm其實是一種簡化了的bm模型。
還有乙個特點,rbm中的神經元都是二值化的,也就是說只有啟用和不啟用兩種狀態,也就是0或者1;可見層和隱藏層之間的邊的權重可以用
w來表示,
w是乙個|v
|×|h
|大小的實數矩陣。後面一篇講rbm求解的時候可以看到,演算法難點主要就是對
w求導(當然還有bias引數),用於梯度下降的更新;但是因為v和h都是二值化的,沒有連續的可導函式去計算,實際中採用的sampling的方法來計算,這裡面就可以用比如gibbs sampling的方法,當然,hinton提出了對比散度cd方法,比gibbs方法更快,已經成為求解rbm的標準解法。rbm求解部分將在下一小篇中具體介紹。
ok,第一篇就到這裡。
參考資料
[1]
[2] 張春霞,受限波爾茲曼機簡介
[3]
[4]
[5] asja fischer, and christian igel,an introduction to rbm
[6] g.hinton, a practical guide to training restricted boltzmann machines
[7]
[8] g.hinton, training products of experts by minimizing contrastive divergence, 2002.
[9] bengio, learning deep architectures for ai, 2009
受限玻爾茲曼機二
限制波爾茲曼機rbm使用方法 限制波爾茲曼機rbm能量模型 從能量模型到概率 求解極大似然 用到的抽樣方法 馬爾科夫蒙特卡羅簡介 參考文獻 利用上面的公式得到的是某個單元狀態為1的輸出概率。那麼怎樣才能確定這個單元的狀態是1呢?它通過產生乙個0 1的隨機,如果這個隨機數小於上面得到的概率值,這個單元...
受限玻爾茲曼機二
博主falao beiliu寫的一篇非常好的文章。這裡為方便自己以後速查,做個導航。原文目錄 限制波爾茲曼機rbm使用方法 限制波爾茲曼機rbm能量模型 從能量模型到概率 求解極大似然 用到的抽樣方法 馬爾科夫蒙特卡羅簡介 參考文獻 利用上面的公式得到的是某個單元狀態為1的輸出概率。那麼怎樣才能確定...
受限玻爾茲曼基
受限波爾茲曼網路rbm是乙個雙層網路 可見層和隱含層。前面描述的神經網路模型是一種確定的結構。而波爾茲曼網路是一種隨機網路。如何來描述乙個隨機網路呢?很多書上有大量的篇幅介紹其原理。這裡把它總結為以下兩點。第一,概率分布函式。由於網路節點的取值狀態是隨機的,從貝葉斯網的觀點來看,要描述整個網路,需要...