1.什么是受限玻爾茲曼機(jī)
玻爾茲曼機(jī)是一大類的神經(jīng)網(wǎng)絡(luò)模型,但是在 實(shí)際應(yīng)用中使用最多的則是受限玻爾茲曼機(jī)(RBM) 。受限玻爾茲曼機(jī)(RBM)是一個(gè)隨機(jī)神經(jīng)網(wǎng)絡(luò)(即當(dāng)網(wǎng)絡(luò)的神經(jīng)元節(jié)點(diǎn)被激活時(shí)會(huì)有隨機(jī)行為,隨機(jī)取值)。它包含 一層可視層 和 一層隱藏層 。在 同一層的神經(jīng)元之間是相互獨(dú)立的 ,而在不同的網(wǎng)絡(luò)層之間的神經(jīng)元是相互連接的(雙向連接)。在網(wǎng)絡(luò)進(jìn)行訓(xùn)練以及使用時(shí)信息會(huì)在兩個(gè)方向上流動(dòng),而且兩個(gè)方向上的 權(quán)值是相同的 。但是 偏置值是不同的 (偏置值的個(gè)數(shù)是和神經(jīng)元的個(gè)數(shù)相同的),受限玻爾茲曼機(jī)的結(jié)構(gòu)如下:
上圖中:h層為隱藏層,
為隱藏層的值,v層為可見層,
為可見層的值。連接權(quán)重可以用矩陣W表示。和DNN(深度神經(jīng)網(wǎng)絡(luò))的區(qū)別是,RBM不區(qū)分前向和反向,可見層(v)的狀態(tài)可以作用于隱藏層(h),而隱藏層(h)的狀態(tài)也可以作用于可見層(v)。隱藏層的偏執(zhí)項(xiàng)是向量b,而可見層的偏執(zhí)項(xiàng)是向量a。 常用的RBM一般是二值的 ,即不管是隱藏層還是可見層,它們的神經(jīng)元的取值只為0或者1。RBM模型結(jié)構(gòu)的結(jié)構(gòu):主要是權(quán)重矩陣W, 偏執(zhí)項(xiàng)向量a和b,隱藏層神經(jīng)元狀態(tài)向量h和可見層神經(jīng)元狀態(tài)向量v( 向量均為列向量 )。
2.能量函數(shù)(激活函數(shù))與概率分布
RBM是基于基于能量的概率分布模型。分為兩個(gè)部分:第一部分是能量函數(shù),第二部分是基于能量函數(shù)的概率分布函數(shù)。對(duì)于給定的狀態(tài)向量h和v,則 RBM當(dāng)前的能量函數(shù) 可以表示為:
![]()
?其中a,b是偏執(zhí)項(xiàng)系數(shù),W是權(quán)重矩陣,h,v為可見層與隱藏層的狀態(tài)向量。有了能量函數(shù), v,h的聯(lián)合概率分布 為:
?其中Z是被稱為 配分函數(shù)的歸一化常數(shù) (對(duì)于概率輸出一般都要做歸一化):
?由于 配分函數(shù)Z難以處理 ,所以必須使用最大似然梯度來(lái)近似。首先從聯(lián)合分布中導(dǎo)出條件分布:
為了推導(dǎo)方便將無(wú)關(guān)值歸于Z’中:?
?可以容易的得到 在給定可視層v的基礎(chǔ)上 ,隱層第j個(gè)節(jié)點(diǎn)為1或者為0的概率為( 可見層的完全條件分布 ):
?可以看到就是 相當(dāng)于使用了sigmoid激活函數(shù) ,現(xiàn)在可以寫出關(guān)于 隱藏層的完全條件分布 :
![]()
有了激活函數(shù),我們就可以從可見層和參數(shù)推導(dǎo)出隱藏層的神經(jīng)元的取值概率了。對(duì)于0,1取值的情況,則大于0.5即取值為1,小于0.5取值為0。從隱藏層和參數(shù)推導(dǎo)出可見的神經(jīng)元的取值方法也是一樣的。
3.RBM損失函數(shù)
RBM模型的關(guān)鍵就是求出我們模型中的參數(shù)W,a,b。首先我們得寫出損失函數(shù),RBM一般采用 對(duì)數(shù)損失函數(shù) ,即期望最小化下式(v為可見層狀態(tài)向量,m為迭代訓(xùn)練的次數(shù)):
后分別對(duì)w,a,b求偏導(dǎo)可得:
雖然說(shuō)梯度下降從理論上可以用來(lái)優(yōu)化RBM模型,但實(shí)際中是很難求得P(v)的概率分布的( P(v)表示可見層節(jié)點(diǎn)的聯(lián)合概率 )。計(jì)算復(fù)雜度非常大,因此采用一些隨機(jī)采樣的方法來(lái)得到近似的解。看這三個(gè)梯度的第二項(xiàng)實(shí)際上都是求期望,而我們知道,樣本的均值是隨機(jī)變量期望的無(wú)偏估計(jì)。因此一般都是基于對(duì)比散度方法來(lái)求解。
4.對(duì)比散度算法
CD算法大概思路是這樣的,從樣本集任意一個(gè)樣本v0開始,經(jīng)過k次Gibbs采樣(實(shí)際中k=1往往就足夠了),即每一步是:
?
得到樣本vk,然后對(duì)應(yīng)于上一篇三個(gè)單樣本的梯度,用vk去近似:
上述近似的含義是說(shuō),用一個(gè)采樣出來(lái)的樣本來(lái)近似期望的計(jì)算。下面給出CD-k的算法執(zhí)行流程。
具體RBM算法的流程:
?
5、深度玻爾茲曼機(jī)(DBM)
加深RBM的層數(shù)后,就變成了DBM,結(jié)構(gòu)圖如下:
此時(shí)的能量函數(shù)變?yōu)椋?
聯(lián)合概率變成:
其實(shí)DBM也可以看做是一個(gè)RBM,比如對(duì)上圖稍微加以變換就可以看做是一個(gè)RBM。
將可見層和偶數(shù)隱藏層放在一邊,將奇數(shù)隱藏層放在另一邊,我們就得到了RBM,和RBM的細(xì)微區(qū)別只是現(xiàn)在的RBM并不是全連接的,其實(shí)也可以看做部分權(quán)重為0的全連接RBM。RBM的算法思想可以在DBM上使用。只是此時(shí)我們的模型參數(shù)更加的多,而且迭代求解參數(shù)也更加復(fù)雜了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
