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