神經網絡與深度學習概述 第六章 受限波爾茲曼機

機器學習 深度學習 教育 小AI諮詢 小AI諮詢 2017-09-30

受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)。這一章側重於介紹受限波爾茲曼機的相關概念以及簡單理解,具體的公式推導可能涉及的比較少,如果有同學看完後覺得還不過癮的話,可以到網上找一找一些大牛寫得具體的推導過程,希望這篇文章對你理解具體的公式推導有所幫助。

生成模型和概率模型

  • 決策函數和條件概率分佈

前面已經介紹過有監督學習的概念,就是數據都是有標籤的,模型的輸出會和標籤進行比對,然後指導整個參數的學習過程。

有監督學習從有標籤的數據中學習一個模型,然後輸入 X 時,就可以根據模型得到其對應的預測值或者分類值 Y ,這個模型的一般形式為 Y = f (X) 或者條件概率分佈 P(Y|X)

決策函數

輸入一個 X,決策函數輸出一個 Y,然後將 Y 與閾值比較,大於閾值 X 就屬於類別 1,小於閾值就屬於類別 2 。這就是利用決策函數來得到 X 屬於什麼類別。

條件概率分佈

輸入一個 X,通過比較其所屬類的概率輸出概率最大的那個作為該 X 所對應的類別。例如計算條件概率 P(w1|X) 和 P(w2|X) 的值,如果P(w1|X) > P(w2|X),則 X 屬於類別w1。

概率分佈和決策函數是可以相互轉化的。

  • 概率分佈決策函數都可以實現給定輸入 X 預測出相應 Y 的功能。實際上,通過條件概率 P(Y|X) 進行預測也是隱含著表達成決策函數 Y=f (X) 的形式的。例如,分為兩類 w1 和 w2,求出 P(w1|X) 和 P(w2|X) 後,那麼實際上判別函數就是 Y = f (X) = P(w1|X) / P(w2|X),如果 Y > 1,則屬於類別 w1,否則屬於類別 w2。

  • 一般決策函數 Y=f (X) 是通過學習算法使得預測和訓練數據之間的誤差平方和最小,雖然整個過程沒有顯示地運用貝葉斯或者以某種形式計算概率,但它實際上也是在隱含地輸出極大似然假設

分類器的設計有時候就是在給定訓練數據的基礎上估計其概率模型 P(Y|X),如果可以估計出來則可以分類,但是一般概率模型是比較難估計的,如果可以不依賴概率模型,直接設計分類器,問題就會簡化很多,這時決策函數就可以發揮作用了,分類器就是一個決策函數(決策面),如果能夠從要解決的問題和訓練樣本出發直接求出判別函數,就可以不用估計概率函數了,例如,支持向量機 SVM,我們已經知道它的分類面(決策函數)是線性的,那麼就可以把決策函數表示成 Y = WX + b 的形式,通過訓練樣本來學習得到 W 和 b 的值就可以確定 Y = f(X) 了。

生成方法和判別方法

監督學習方法又分為生成方法(Generative Approach)判別方法(Discriminative Approach),所學到的模型分別稱為生成模型(Generative Model)判別模型(Discriminative Model)

  • 判別方法

判別方法,由數據直接學習決策函數 Y = f(X) 或者條件概率分佈 P(Y|X) 作為預測的模型,即判別模型。基本思想是在有限樣本條件下建立判別函數,不考慮樣本的產生模型,直接研究預測模型。典型的判別模型包括 k 近鄰,感知機、決策樹支持向量機等。

  • 生成方法

生成方法,從數據中學習聯合概率密度分佈 P(X,Y) ,然後求出條件概率分佈 P(Y|X) 作為預測的模型,即生成模型 P(Y|X) = P(X, Y) / P(X)。基本思想是先建立樣本的聯合概率密度模型 P(X,Y) 然後得到後驗概率 P(Y|X),再利用它進行分類。注意,生成方法是必須先求出 P(X,Y) 才得到 P(Y|X),然後這個過程還得要先求出 P(X)P(X) 就是訓練數據的概率分佈,注意只有當數據樣本足夠多的時候,求得的 P(X) 才能很好地描述訓練數據的真正分佈,比如擲硬幣,P(正面朝上) = 0.5,100次試驗,所求得的頻率比一定等於0.5,當次數達到100000甚至更多時頻率才會逐漸逼近概率。

這樣的方法之所以稱為生成方法,是因為模型表示了給定輸入 X 產生輸出 Y 的生成關係,用於隨機生成的觀察值建模,特別是在給定某些隱藏參數情況下。典型的生成模型有:樸素貝葉斯隱馬爾科夫模型等。

生成模型和判別模型的優缺點

生成模型:主要是對聯合概率建模,從統計的角度表示數據的分佈情況,能夠反映同類數據本身的相似度。

  • 優點:由於生成方法可以在聯合分佈空間插入變量、不變量、獨立性、先驗分佈等關係的知識。因此,在聯合分佈空間,通用性(或稱多面性)是其本質。這包括了系統中的未知的、觀察到的、輸入或輸出變量,這就使得產生式概率分佈成為一個非常靈活的建模工具。

  • 缺點:產生式分類器需產生的所有變量的聯合概率分佈僅僅是分類任務的中間目標,對該中間目標優化的過程,犧牲了最終分類判別任務上的資源和性能,影響了最終的分類性能


判別模型:又可以稱為條件模型,或條件概率模型。估計的是條件概率分佈(conditional distribution)

判別式方法並不對系統中變量和特徵的基本分佈建模,僅僅對輸入到輸出之間映射的最優化感興趣。因此,僅需調整由此產生的分類邊界,沒有形成可對系統中變量建模的生成器的中間目標,可以得到準確率更高的分類器。

主要特點:尋找不同類別之間的最優分類面,反映的是異類數據之間的差異。

  • 優點:相比純概率方法或產生式模型,分類邊界更靈活;能清晰的分辨出多類或某一類與其他類之間的差異特徵,適用於較多類別的識別判別模型的性能比產生模型要簡單,比較容易學習。

  • 缺點:不能反映訓練數據本身的特性。可以告訴你分類類別是 1 還是 2,但沒有辦法把整個場景描述出來;判別式方法在訓練時需要考慮所有的數據元組,當數據量很大時,該方法的效率並不高;缺乏靈活的建模工具和插入先驗知識的方法。因此,判別式技術就像一個黑匣子變量之間的關係不像在生成式模型中那樣清晰可見。

生成模型和判別模型的關係

生成模型學習聯合概率分佈 P(X, Y),而判別模型學習條件概率分佈 P(Y|X)。因此由生成模型可以得到判別模型,但由判別模型得不到生成模型。假設我們有以下 (x,y) 形式的數據: (1,0), (1,0), (2,0), (2, 1)。

神經網絡與深度學習概述 第六章 受限波爾茲曼機

生成模型可以得到判別模型,但由判別模型得不到生成模型

能量模型

能量模型(Energy Based Model),源於熱動力學,也就是分子在高溫中劇烈運動後最終會排列出有規律的結構,即低能量狀態,也就是穩態

統計力學的結論表明,任何概率分佈都可以轉變為基於能量的模型,而且很多分佈都可以利用能量模型的特有性質和學習過程,有些甚至可以從能量模型中找到通用的方法。在 RBM 中引進能量函數的概念後,可以把求穩態變成一個求極值與優化的問題

能量模型需要做的事就是先定義一個合適的能量函數,然後基於這個能量函數得到變量的概率分佈,最後就是基於概率分佈求解一個目標函數(如最大似然)。

RBM的基本概念

波爾茲曼機(Boltzmann Machine,BM)是源於物理學的能量函數的建模方法,能夠描述變量的高層相互作用。波爾茲曼網絡是一種隨機網絡

描述一個隨機網絡,總結起來主要有兩個結構算法

  • 第一,概率分佈函數。由於網絡節點的取值狀態是隨機的,從貝葉斯網絡的觀點來看,要描述整個網絡,需要三種概率分佈來描述系統,即聯合概率分佈、邊緣概率分佈條件概率分佈。要搞清楚這三種不同的概率分佈,是理解隨機網絡的關鍵。

  • 第二,能量函數。隨機神經網絡是根植於統計力學的,受統計力學中能量函數的啟發,引入了能量函數。能量函數是描述整個系統狀態的一種測度,系統越有序或者概率分佈越集中,系統的能量越小。反之,系統越無序或者概率分佈越趨於均勻分佈,則系統的能量越大。能量函數的最小值,對應於系統的最穩定狀態,一般情況下,我們就是要找到系統最穩定的狀態。

RBM的結構

受限玻爾茲曼機包括隱層可見層偏置層,與前饋神經網絡不一樣,RBM在可見層和隱層之間的連接方向是不固定的(值可以進行雙向傳播,也就是隱層 可見層和可見層 隱層),並且是完全連接的

RBMBM 的不同之處在於,BM 允許層內神經元之間有連接,而 RBM 則要求層內神經元之間沒有連接,這就是之所以稱為受限的原因。

在標準的RBM中,隱層和可見層的神經元都是二進制表示(即神經元的激活值只能是服從伯努利 Bernoullii 分佈的0或1),不過也存在其他非線性的變種。

RBM 網絡結構有 m 個可視節點n 個隱藏節點,如果假設所有的節點都是隨機二進制變量節點(只能取0或者1值),同時假設全概率分佈 p(v,h) 滿足 Boltzmann 分佈,則我們稱這個模型是 RBM 模型

RBM網絡有3個參數,一個是可視層與隱藏層之間的權重矩陣 Wn×m,一個是可視節點的偏移量 b=(b1,b2⋯bn),一個是隱藏節點的偏移量 c=(c1,c2⋯cm),這幾個參數決定了 RBM 網絡將一個 n 維的樣本編碼成一個什麼樣的 m 維的樣本。

神經網絡與深度學習概述 第六章 受限波爾茲曼機

RBM網絡結構

RBM模型的學習

  • RBM 可以被視為一個無向圖模型v可見層,用於表示觀測數據h隱層,可視為一些特徵提取器W 為兩層之間的連接權重。假設所有的可見單元和隱單元均為二值變量,即:

神經網絡與深度學習概述 第六章 受限波爾茲曼機

RBM模型的隱層與可見層

  • 如果一個 RBM 有 n 個可見單元m 個隱單元,用向量 vh 分別表示可見單元和隱單元的狀態。其中,vi 表示第 i 個可見單元的狀態,hj 表示第 j 個隱單元的狀態。對於一組給定的狀態 (v; h), RBM 作為一個系統所具備的能量定義為:

神經網絡與深度學習概述 第六章 受限波爾茲曼機

能量函數

神經網絡與深度學習概述 第六章 受限波爾茲曼機

參數

其中 θ 是RBM的參數 {W, a, b}, W 為可見單元和隱藏單元之間的邊的權重,a 和 b 分別為可見單元和隱藏單元的偏置(bias)

  • 當參數確定時,基於該能量函數,我們可以得到 (v; h) 的聯合概率分佈:

神經網絡與深度學習概述 第六章 受限波爾茲曼機

(v; h)的聯合概率分佈

  • 對於一個實際問題,我們最關心的是由 RBM 所定義的關於觀測數據 v 的分佈,即聯合概率分佈的邊際分佈,也稱為似然函數:

神經網絡與深度學習概述 第六章 受限波爾茲曼機

似然函數

  • 由 RBM 的特殊結構 (即層間有連接,層內無連接)可知:當給定可見單元的狀態時,各隱單元的激活狀態之間是條件獨立的。此時,第 j 個隱單元的激活概率為:

神經網絡與深度學習概述 第六章 受限波爾茲曼機

第 j 個隱單元的激活概率

  • RBM的結構是對稱的,當給定隱單元的狀態時,各可見單元的激活狀態之間也是條件獨立的,即第 i 個可見單元的激活概率為:

神經網絡與深度學習概述 第六章 受限波爾茲曼機

第 i 個可見單元的激活概率

  • RBM模型的學習方式

基於對比散度的RBM快速學習算法

學習 RBM 的任務是求出參數 θ 的值,以擬合給定的訓練數據。參數可以通過最大化 RBM 在訓練集(假設包含 T 個樣本)上的對數似然函數(likelihood function)學習得到,即:

神經網絡與深度學習概述 第六章 受限波爾茲曼機

學習RBM的任務是求出參數 θ 的值

神經網絡與深度學習概述 第六章 受限波爾茲曼機

對數似然函數

L(θ) 求導,然後利用梯度上升法(Gradient Ascent),通過迭代的方法進行逼近 L(θ) 的最大值

RBM的用途

RBM主要有兩種主要用途:

  • 第一,利用 RBM 對數據進行編碼,然後交給監督學習方法進行分類或迴歸,可以說是把它當作一種降維的方法來使用,這種方式類似於稀疏自編碼器機理

  • 第二,根據 RBM 得到權重矩陣偏移量,供BP神經網絡初始化訓練。神經網路進行訓練前往往需要對權重進行初始化,如果初始值選取不合理的話,很容易陷入局部最小解。實際應用結果表明,直接把 RBM 訓練得到的權重矩陣和偏移量作為 BP 神經網絡的初始值,得到結果會非常好。

RBM另外兩種用途為:

  • 第三,RBM 可以估計聯合概率 p(v,h) ,如果把 v 當作訓練樣本h 當作類別標籤,就可以利用貝葉斯公式求 p(h|v) ,就可以利用 RBM 進行分類。即,RBM可以作為一個生成模型來使用。

  • 第四,RBM 可以直接計算條件概率 p(h|v),如果如果把 v 當作訓練樣本,h 當作類別標籤,利用 RBM 直接就可以用來進行分類。即,RBM可以作為一個判別模型來使用。

相關推薦

推薦中...