受限玻爾茲曼機(英語:restricted Boltzmann machine, RBM)是一種可通過輸入數據集學習概率分佈的隨機生成神經網絡。RBM最初由發明者保羅·斯模稜斯基於1986年命名為簧風琴(Harmonium)[1],但直到傑弗里·辛頓及其合作者在2000年代中葉發明快速學習算法後,受限玻茲曼機才變得知名。受限玻茲曼機在降維[2]、分類[3]、協同過濾[4]、特徵學習[5]和主題建模[6]中得到了應用。根據任務的不同,受限玻茲曼機可以使用監督學習或無監督學習的方法進行訓練。
正如名字所提示的那樣,受限玻茲曼機是一種玻茲曼機的變體,但限定模型必須為二分圖。模型中包含對應輸入參數的輸入(可見)單元和對應訓練結果的隱單元,圖中的每條邊必須連接一個可見單元和一個隱單元。(與此相對,「無限制」玻茲曼機包含隱單元間的邊,使之成為循環神經網絡。)這一限定使得相比一般玻茲曼機更高效的訓練算法成為可能,特別是基於梯度的對比分歧(contrastive divergence)算法[7]。
受限玻茲曼機也可被用於深度學習網絡。具體地,深度信念網絡可使用多個RBM堆疊而成,並可使用梯度下降法和反向傳播算法進行調優[8]。
結構
標準的受限玻爾茲曼機由二值(布爾/伯努利)隱層和可見層單元組成。權重矩陣中的每個元素指定了隱層單元和可見層單元之間邊的權重。此外對於每個可見層單元有偏置,對每個隱層單元有偏置。在這些定義下,一種受限玻爾茲曼機配置(即給定每個單元取值)的「能量」(v,h)被定義為
或者用矩陣的形式表示如下:
這一能量函數的形式與霍普菲爾德神經網絡相似。在一般的玻爾茲曼機中,隱層和可見層之間的聯合概率分佈由能量函數給出:[9]
其中,為配分函數,定義為在節點的所有可能取值下的和(亦即使得概率分佈和為1的歸一化常數)。類似地,可見層取值的邊緣分佈可通過對所有隱層配置求和得到:[9]
由於RBM為一個二分圖,層內沒有邊相連,因而隱層是否激活在給定可見層節點取值的情況下是條件獨立的。類似地,可見層節點的激活狀態在給定隱層取值的情況下也條件獨立[7]。亦即,對個可見層節點和個隱層節點,可見層的配置v對於隱層配置h的條件概率如下:
- .
類似地,h對於v的條件概率為
- .
其中,單個節點的激活概率為
- 和
其中代表邏輯函數。
訓練算法
受限玻爾茲曼機的訓練目標是針對某一訓練集,最大化概率的乘積。其中,被視為一矩陣,每個行向量作為一個可見單元向量:
訓練受限玻爾茲曼機,即最優化權重矩陣,最常用的算法是傑弗里·辛頓提出的對比分歧(contrastive divergence,CD)算法。這一算法最早被用於訓練辛頓提出的「專家積」模型[13]。這一算法在梯度下降的過程中使用吉布斯採樣完成對權重的更新,與訓練前饋神經網絡中利用反向傳播算法類似。
基本的針對一個樣本的單步對比分歧(CD-1)步驟可被總結如下:
- 取一個訓練樣本v,計算隱層節點的概率,在此基礎上從這一概率分佈中獲取一個隱層節點激活向量的樣本h;
- 計算v和h的外積,稱為「正梯度」;
- 從h獲取一個重構的可見層節點的激活向量樣本v',此後從v'再次獲得一個隱層節點的激活向量樣本h';
- 計算v'和h'的外積,稱為「負梯度」;
- 使用正梯度和負梯度的差以一定的學習率更新權重:。
偏置a和b也可以使用類似的方法更新。
參見
參考資料
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.