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