受限玻爾茲曼機(英語:restricted Boltzmann machine, RBM)是一種可通過輸入數據集學習概率分佈的隨機生成神經網絡。RBM最初由發明者保羅·斯模稜斯基英語Paul Smolensky於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的條件概率為

.

其中,單個節點的激活概率為

其中代表邏輯函數

與其他模型的關係

受限玻爾茲曼機是玻爾茲曼機和馬爾科夫隨機場的一種特例[10][11]。這些概率圖模型可以對應到因子分析[12]

訓練算法

受限玻爾茲曼機的訓練目標是針對某一訓練集,最大化概率的乘積。其中,被視為一矩陣,每個行向量作為一個可見單元向量

或者,等價地,最大化對數概率期望[10][11]

訓練受限玻爾茲曼機,即最優化權重矩陣,最常用的算法是傑弗里·辛頓提出的對比分歧(contrastive divergence,CD)算法。這一算法最早被用於訓練辛頓提出的「專家積」模型[13]。這一算法在梯度下降的過程中使用吉布斯採樣完成對權重的更新,與訓練前饋神經網絡中利用反向傳播算法類似。

基本的針對一個樣本的單步對比分歧(CD-1)步驟可被總結如下:

  1. 取一個訓練樣本v,計算隱層節點的概率,在此基礎上從這一概率分佈中獲取一個隱層節點激活向量的樣本h
  2. 計算vh外積,稱為「正梯度」;
  3. h獲取一個重構的可見層節點的激活向量樣本v',此後從v'再次獲得一個隱層節點的激活向量樣本h'
  4. 計算v'h'的外積,稱為「負梯度」;
  5. 使用正梯度和負梯度的差以一定的學習率更新權重

偏置ab也可以使用類似的方法更新。

參見

參考資料

外部連結

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.