日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        歡迎訪問 生活随笔!

        生活随笔

        當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

        pytorch

        深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling

        發(fā)布時間:2023/12/10 pytorch 46 豆豆
        生活随笔 收集整理的這篇文章主要介紹了 深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

        歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明:本文出自Bin的專欄blog.csdn.net/xbinworld。
        技術(shù)交流QQ群:433250724,歡迎對算法、技術(shù)、應(yīng)用感興趣的同學(xué)加入。

        接下來重點(diǎn)講一下RBM模型求解方法,其實(shí)用的依然是梯度優(yōu)化方法,但是求解需要用到隨機(jī)采樣的方法,常見的有:Gibbs Sampling和對比散度(contrastive divergence, CD[8])算法。

        RBM目標(biāo)函數(shù)

        假設(shè)給定的訓(xùn)練集合是S={vi},總數(shù)是ns,其中每個樣本表示為vi=(vi1,vi2,,vinv),且都是獨(dú)立同分布i.i.d的。RBM采用最大似然估計(jì),即最大化

        lnLS=lni=1nsP(vi)=i=1nslnP(vi)

        參數(shù)表示為θ=(W,a,b),因此統(tǒng)一的參數(shù)更新表達(dá)式為:

        θ=θ+η?lnLS?θ
        其中,η表示學(xué)習(xí)速率。因此,很明顯,只要我們可以求解出參數(shù)的梯度,我們就可以求解RMB模型了。我們先考慮任意單個訓(xùn)練樣本(v0)的情況,即
        LS=lnP(v0)=ln(1Zhe?E(v0,h))=lnhe?E(v0,h)?lnv,he?E(v,h)
        其中v表示任意的訓(xùn)練樣本,而v0則表示一個特定的樣本。

        ?LS?θ=?lnP(v0)?θ=??θ(lnhe?E(v0,h))???θ(lnv,he?E(v,h))=?1he?E(v0,h)he?E(v0,h)?E(v0,h)?θ+1v,he?E(v,h)v,he?E(v,h)?E(v,h)?θ=?hP(h|v0)?E(v0,h)?θ+v,hP(h,v)?E(v,h)?θ
        (其中第3個等式左邊內(nèi)條件概率P(h|v0),因?yàn)?span id="ozvdkddzhkzd" class="MathJax_Preview">e?E(v0,h)he?E(v0,h)=e?E(v0,h)/Zhe?E(v0,h)/Z=P(v0,h)P(v0)=P(h|v0)

        上面式子的兩個部分的含義是期望——左邊是梯度?E(v0,h)?θ在條件概率分布P(h|v0)下的期望;右邊是梯度?E(v,h)?θ在聯(lián)合概率分布P(h,v)下的期望。要求前面的條件概率是比較容易一些的,而要求后面的聯(lián)合概率分布是非常困難的,因?yàn)樗藲w一化因子Z(對所有可能的取值求和,連續(xù)的情況下是積分),因此我們采用一些隨機(jī)采樣來近似求解。把上面式子再推導(dǎo)一步,可以得到,

        ?LS?θ=?hP(h|v0)?E(v0,h)?θ+vP(v)hP(h|v)?E(v,h)?θ

        因此,我們重點(diǎn)就是需要就算hP(h|v)?E(v,h)?θ,特別的,針對參數(shù)W,a,b來說,有

        hP(h|v)?E(v,h)?wij=?hP(h|v)hivj=?hP(hi|v)P(h?i|v)hivj=?hiP(hi|v)h?iP(h?i|v)hivj=?hiP(hi|v)hivj=?(P(hi=1|v)?1?vj+P(hi=0|v)?0?vj)=?P(hi=1|v)vj

        類似的,我們可以很容易得到:

        hP(h|v)?E(v,h)?ai=?vi

        hP(h|v)?E(v,h)?bj=?P(hi=1|v)

        于是,我們很容易得到,

        ?lnP(v0)?wij=?hP(h|v0)?E(v0,h)?wij+vP(v)hP(h|v)?E(v,h)?wij=P(hi=1|v0)v0j?vP(v)P(hi=1|v)vj

        ?lnP(v0)?ai=v0i?vP(v)vi

        ?lnP(v0)?bi=P(hi=1|v0)?vP(v)P(hi=1|v)

        上面求出了一個樣本的梯度,對于ns個樣本有

        ?LS?wij=m=1ns[P(hi=1|vm)vmj?vP(v)P(hi=1|v)vj]

        ?LS?ai=m=1ns[vmi?vP(v)vi]

        ?LS?bi=m=1ns[P(hi=1|vm)?vP(v)P(hi=1|v)]

        到這里就比較明確了,主要就是要求出上面三個梯度;但是因?yàn)椴缓弥苯忧蟾怕史植?span id="ozvdkddzhkzd" class="MathJax_Preview">P(v),前面分析過,計(jì)算復(fù)雜度非常大,因此采用一些隨機(jī)采樣的方法來得到近似的解。看這三個梯度的第二項(xiàng)實(shí)際上都是求期望,而我們知道,樣本的均值是隨機(jī)變量期望的無偏估計(jì)。

        Gibbs Sampling

        很多資料都有提到RBM可以用Gibbs Sampling來做,但是具體怎么做不講(是不是有點(diǎn)蛋疼?),可能很多人也不清楚到底怎么做。下面稍微介紹一下。

        吉布斯采樣(Gibbs sampling),是MCMC方法的一種,具體可以看我前面整理的隨機(jī)采樣MCMC的文章。總的來說,Gibbs采樣可以從一個復(fù)雜概率分布P(X)下生成數(shù)據(jù),只要我們知道它每一個分量的相對于其他分量的條件概率P(Xk|X?k),就可以對其進(jìn)行采樣。而RBM模型的特殊性,隱藏層神經(jīng)元的狀態(tài)只受可見層影響(反之亦然),而且同一層神經(jīng)元之間是相互獨(dú)立的,那么就可以根據(jù)如下方法依次采樣:

        也就是說hi是以概率P(hi|v0)為1,其他的都類似。這樣當(dāng)我們迭代足夠次以后,我們就可以得到滿足聯(lián)合概率分布P(v,h)下的樣本(v,h),其中樣本(v)可以近似認(rèn)為是P(v)下的樣本,下圖也說明了這個迭代采樣的過程:

        有了樣本(v)就可以求出上面寫到的三個梯度(?LS?wij,?LS?ai,?LS?bi)了,用梯度上升就可以對參數(shù)進(jìn)行更新了。(實(shí)際中,可以在k次迭代以后,得到樣本集合{v},比如迭代100次取后面一半,帶入上面梯度公式的后半部分計(jì)算平均值。)

        看起來很簡單是不是?但是問題是,每一次gibbs采樣過程都需要反復(fù)迭代很多次以保證馬爾科夫鏈?zhǔn)諗?#xff0c;而這只是一次梯度更新,多次梯度更新需要反復(fù)使用gibbs采樣,使得算法運(yùn)行效率非常低。為了加速RBM的訓(xùn)練過程,Hinton等人提出了對比散度(Contrastive Divergence)方法,大大加快了RBM的訓(xùn)練速度,將在下一篇重點(diǎn)講一下。

        OK,本篇先到這里。平時工作比較忙,加班什么的(IT的都這樣),晚上回到家比較晚,每天只能擠一點(diǎn)點(diǎn)時間寫,寫的比較慢,見諒。RBM這一塊可以看的資料很多,網(wǎng)上一搜一大堆,還包括hinton的一些論文和Bengio的綜述[9],不過具體手寫出來的思路還是借鑒了[7],看歸看,我會自己推導(dǎo)并用自己的語言寫出來,大家有什么問題都可以留言討論。下一篇最后講一下CD算法,后面有時間再拿code出來剖析一下。


        覺得有一點(diǎn)點(diǎn)價(jià)值,就支持一下哈!花了很多時間手打公式的說~更多內(nèi)容請關(guān)注Bin的專欄


        參考資料
        [1] http://www.chawenti.com/articles/17243.html
        [2] 張春霞,受限波爾茲曼機(jī)簡介
        [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

        轉(zhuǎn)載于:https://www.cnblogs.com/yihaha/p/7265316.html

        總結(jié)

        以上是生活随笔為你收集整理的深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

        如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。