Boltzmann Machine 入门(1)
根據(jù)我的第一篇關(guān)于DBM的博文,明白了一個道理,1. v 和h 互相能推測出彼此,表示同一組特征的兩種形式,就像時域頻域一樣。接下來又看了 http://www.cnblogs.com/tianchi/archive/2013/03/14/2959716.html 以熱力學(xué)分子隨機取值變化對整體能量影響的概念理解DBM中能量函數(shù)的概念。理解為 2. 整體的能量被各個隨機節(jié)點以一定的概率朝著某個方向走而帶來變化但仍然不理解這個能量函數(shù)和訓(xùn)練中似然函數(shù)該怎樣使用,于是又看了解釋能量函數(shù)和Gibbs采樣的 http://m.blog.csdn.net/article/details?id=7768833
?http://www.cnblogs.com/tornadomeet/archive/2013/03/26/2982694.html
隨機模擬問題的Gibbs采樣上面講的還不是很清楚,于是參照
http://blog.163.com/lipse_huang/blog/static/191657545201341021645737/
幾個可以學(xué)習(xí)gibbs sampling的方法
1,讀Bishop的Pattern Recognition and Machine Learning,講的很清楚,但是我記得好像沒有例子。
2,讀artificial Intelligence,2、3版,都有。但是我沒讀過。
3,最方便的,查wiki,這個說的最清楚。
這里通俗點的解釋一下。首先,什么是sampling。sampling就是以一定的概率分布,看發(fā)生什么事件。舉一個例子。甲只能E:吃飯、學(xué)習(xí)、打球,時間T:上午、下午、晚上,天氣W:晴朗、刮風(fēng)、下雨。現(xiàn)在要一個sample,這個sample可以是:打球+下午+晴朗。。。
問題是我們不知道p(E,T,W),或者說,不知道三件事的聯(lián)合分布。當(dāng)然,如果知道的話,就沒有必要用gibbs sampling了。但是,我們知道三件事的conditional distribution。也就是說,p(E|T,W),p(T|E,W),p(W|E,T)。現(xiàn)在要做的就是通過這三個已知的條件分布,再用gibbs sampling的方法,得到j(luò)oint distribution。
具體方法。首先隨便初始化一個組合,i.e. 學(xué)習(xí)+晚上+刮風(fēng),然后依條件概率改變其中的一個變量。具體說,假設(shè)我們知道晚上+刮風(fēng),我們給E生成一個變量,比如,學(xué)習(xí)-》吃飯。我們再依條件概率改下一個變量,根據(jù)學(xué)習(xí)+刮風(fēng),把晚上變成上午。類似地,把刮風(fēng)變成刮風(fēng)(當(dāng)然可以變成相同的變量)。這樣學(xué)習(xí)+晚上+刮風(fēng)-》吃飯+上午+刮風(fēng)。
同樣的方法,得到一個序列,每個單元包含三個變量,也就是一個馬爾可夫鏈。然后跳過初始的一定數(shù)量的單元(比如100個),然后隔一定的數(shù)量取一個單元(比如隔20個取1個)。這樣sample到的單元,是逼近聯(lián)合分布的。
詳細:http://en.wikipedia.org/wiki/Gibbs_sampling 相關(guān):1.slicing sampling:?http://en.wikipedia.org/wiki/Slice_sampling;? ? ? ? ? ? ? ? ? ? 2.?Adaptive rejection sampling?for Gibbs?sampling;http://www.jstor.org/stable/2347565? seq=1#page_scan_tab_contents ? ? ? ? ? 3.?Markov chain Monte Carlo?https://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo ? ? ? ? ? 4.?
MCMC算法簡介,一個很好的“百度貼吧”帖子
總結(jié)
以上是生活随笔為你收集整理的Boltzmann Machine 入门(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。