受限玻爾茲曼機(jī)是一種基于能量模型的神經(jīng)網(wǎng)絡(luò)架構(gòu),雖然不像通常的卷積神經(jīng)網(wǎng)絡(luò)一樣被人熟知,但近年來(lái)在推薦系統(tǒng)中受到了越來(lái)越多的關(guān)注,在協(xié)同過(guò)濾推薦等領(lǐng)域表現(xiàn)出越來(lái)越重要的作用。在這篇文章中,我們將從基礎(chǔ)理論和基本結(jié)構(gòu)方面梳理受限玻爾茲曼機(jī)的原理,以便對(duì)受限玻爾茲曼機(jī)(RBM: Restricted Boltzmann Machine)有更深的了解。
最典型的受限玻爾茲曼機(jī)如下圖所示,在兩層簡(jiǎn)單的結(jié)構(gòu)中分布式的輸入的可見層(visible layer)和隱含層結(jié)構(gòu)。
和通常的前饋神經(jīng)網(wǎng)絡(luò)不同的是,受限玻爾茲曼機(jī)可以通過(guò)可見層的狀態(tài)預(yù)測(cè)對(duì)應(yīng)隱含層的狀態(tài),相反亦可以由隱含層預(yù)測(cè)可見層對(duì)應(yīng)單元的狀態(tài)。同時(shí),它與玻爾茲曼機(jī)不同在于同一層內(nèi)的單元之間沒有相互連接。
能量模型
為了更好地理解RBM是如何工作的,我們需要引入基于能量的模型來(lái)進(jìn)行解釋。在重力場(chǎng)中,不同高度的物體具有不同的重力勢(shì)能,我們可以利用能量來(lái)描述物體所具有潛在做功的能力?;谶@樣的啟發(fā),科學(xué)家們將這一觀點(diǎn)應(yīng)用到深度學(xué)習(xí)中,來(lái)度量模型質(zhì)量。
深度學(xué)習(xí)模型的目的之一便是對(duì)變量之間的依賴關(guān)系進(jìn)行編碼,將變量組合與一個(gè)標(biāo)量能量聯(lián)系起來(lái),而這一能量就作為模型能力的度量。通常情況下,較小的能量意味著更加合理的變量組合。所以基于能量的模型在訓(xùn)練過(guò)程中會(huì)不斷最小化事先定義好的能量函數(shù)從而實(shí)現(xiàn)變量間的最優(yōu)組合,RBM的能量函數(shù)定義為如下的形式:
可以看到能量函數(shù)與可見層、隱含層的狀態(tài)以及對(duì)應(yīng)的權(quán)重和偏置都有關(guān)系。RBM的訓(xùn)練過(guò)程就是最小化這一能量函數(shù)的過(guò)程。
概率模型
RBM同時(shí)也是一種典型的概率模型,模型中的狀態(tài)通過(guò)概率來(lái)表示。在每一個(gè)時(shí)間點(diǎn)上受限玻爾茲曼機(jī)的狀態(tài)由可見層和隱含層單元決定,其可被觀測(cè)到的狀態(tài)可由以下聯(lián)合概率分布來(lái)表示:
其中p為可見層和隱藏層的聯(lián)合概率分布函數(shù),Z為配分函數(shù),用于表示系統(tǒng)所有可能的狀態(tài)。這一聯(lián)合概率分布在物理上就是著名的玻爾茲曼分布——在給定能量E上粒子在某個(gè)狀態(tài)上被觀測(cè)到的概率。但由于Z中h和v的組合情況十分龐大,使得這一聯(lián)合概率分布難以計(jì)算,但幸運(yùn)的是對(duì)于對(duì)于給定隱含層或者可見層狀態(tài)下的概率卻是更加容易計(jì)算的:
需要注意的是在RBM中每一個(gè)單元都是0/1的二值狀態(tài),實(shí)際使用中通常會(huì)計(jì)算出每個(gè)單元處于1,也就是被激活的概率。在給定可見層v的條件下,隱含層單元j被激活的概率可以寫成下圖的表示,同樣給定隱含層的狀態(tài)下,可見層單元i的概率也可以被寫成下面的表示形式。
上式通過(guò)前述的條件概率推導(dǎo)得到,求得的值為對(duì)應(yīng)單元取1激活的概率。其中σ是Sigmoid函數(shù)。
訓(xùn)練
RBM的訓(xùn)練與通常神經(jīng)網(wǎng)絡(luò)的訓(xùn)練有很大的區(qū)別,研究人員們使用了吉布斯采樣(GibbsSampling)和對(duì)比散度(Contrastive Divergence,CD)兩個(gè)數(shù)學(xué)手段來(lái)對(duì)訓(xùn)練過(guò)程進(jìn)行處理。簡(jiǎn)單來(lái)說(shuō)吉布斯采樣利用了上述的條件概率公式,通過(guò)輸入v可以計(jì)算得到隱含層的條件概率h,隨后根據(jù)這一h反過(guò)來(lái)預(yù)測(cè)輸入層的值v,經(jīng)過(guò)k次迭代后的輸出vk分布將會(huì)收斂于v0的分布,從而得到了可見層的聯(lián)合概率。
為了更新權(quán)重,還需要計(jì)算出每次訓(xùn)練過(guò)后誤差,這時(shí)候就需要使用對(duì)比散度來(lái)進(jìn)行計(jì)算:
基于RBM的協(xié)同過(guò)濾系統(tǒng)
在推薦系統(tǒng)中RBM常常被用于識(shí)別數(shù)據(jù)的隱含因素。例如在電影推薦系統(tǒng)中,人們常常將不同的電影按照不同的潛在變量進(jìn)行分析,例如速度與激情會(huì)被歸并到動(dòng)作片里,而玩具總動(dòng)員和瓦力則會(huì)更多的包含皮克斯的因素。模型通過(guò)對(duì)用戶打分?jǐn)?shù)據(jù)進(jìn)行學(xué)習(xí),在多個(gè)循環(huán)后將得出用戶的個(gè)性化偏好以及用戶群體的整體偏好。
在電影推薦的例子中,受限玻爾茲曼機(jī)面對(duì)的數(shù)據(jù)是二進(jìn)制的0/1而不是連續(xù)的打分?jǐn)?shù)據(jù)。這意味著用于對(duì)于電影的評(píng)價(jià)要么是喜歡(1)要么是不喜歡(0)。這些評(píng)價(jià)值作為輸入層/可見層被送入模型。在給定的數(shù)據(jù)下,RBM會(huì)發(fā)掘數(shù)據(jù)中能解釋用戶偏好的隱含因素,并在隱含層中用不同的單元表示出來(lái)。
圖中是一個(gè)用戶對(duì)于幾部電影評(píng)分的簡(jiǎn)單例子,其中霍比特人由于用戶沒有評(píng)分,數(shù)據(jù)中使用-1來(lái)標(biāo)注,由于電影的數(shù)量龐大,某個(gè)用戶只對(duì)小部分電影進(jìn)行了評(píng)價(jià),需要告訴模型哪些是沒有用戶評(píng)價(jià)的輸入從而可以忽略這些因素的影響。
上圖就對(duì)應(yīng)了給定可見層狀態(tài),求出隱含層單元激活概率的情況。圖中可以看出只有Fantasy類型是被激活的,在給定用戶評(píng)分的情況下,RBM正確地識(shí)別出這一用戶喜歡的類型更多的偏向于科幻電影。
在另一種情況下,在知道了用戶的偏好后(hidden),如果要為用戶推薦電影(visible)就可以利用已知隱含層求得可見層單元被激活的條件概率,從而為用戶推薦偏好類型的電影。
上圖中可以看到,RBM計(jì)算出被激活的電影除了輸入數(shù)據(jù)中指環(huán)王和哈利波特,還為用戶推薦了原來(lái)沒有看過(guò)的霍比特人。模型認(rèn)為喜歡科幻的用戶很有可能也喜歡霍比特人。
總結(jié)來(lái)看,在推薦系統(tǒng)中使用RBM主要分為以下幾個(gè)步驟:
1.在所有用戶數(shù)據(jù)上訓(xùn)練模型;
2.使用特定用戶的數(shù)據(jù)來(lái)進(jìn)行預(yù)測(cè);
3.得到隱含層的激活情況;
4.基于隱含層的激活來(lái)計(jì)算輸出層的激活情況;
5.可見層的新激活單元表示了用戶對(duì)未看過(guò)的電影/節(jié)目/音樂(lè)的評(píng)價(jià),并選取其中大概率的激活單元向用戶推薦。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4773瀏覽量
100861 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5506瀏覽量
121255
原文標(biāo)題:簡(jiǎn)單明了地告訴你不明覺厲的「受限玻爾茲曼機(jī)」到底是個(gè)啥?
文章出處:【微信號(hào):thejiangmen,微信公眾號(hào):將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論