1. 程式人生 > >RBM系列1:預備知識

RBM系列1:預備知識

受限玻爾茲曼機是一種可用隨機神經網路來解釋的概率圖模型。它由Smolensky於1986年在玻爾茲曼機(BM)的基礎上提出,所謂“隨機”,是指這種網路中的神經元是隨機神經元,其輸出只有兩種狀態(啟用和未啟用),一般用二進位制的0和1來表示,而狀態的具體取值則根據概率統計法則來決定。

隨著計算機計算效能的迅速提高和快速演算法的不斷髮展,RBM在各種相關機器學習演算法中已經變得實際可行。尤其是,在Hinton於2006年提出了以RBM為基本構成模組的DBN模型之後,機器學習更是掀起了一股研究RBM理論及應用的熱潮。

本文首先講述RBM模型所涉及到的預備知識點:

1、sigmoid函式

sigmoid函式是神經網路中常用的啟用函式

之一,其定義為:


該函式的定義域為,值域為(0,1)。下圖為sigmoid函式的影象。


2、Bayes定理

貝葉斯定理是英國數學家貝葉斯提出來的,用來描述兩個條件概率之間的關係。若記P(A),P(B)分別表示事件A和B發生的概率,P(A|B)表示事件B發生的情況下事件A發生的概率,P(A,B)表示事件A、B同時發生的概率,則有


進一步推導可得:


這就是貝葉斯公式。上式中我們把P(A)稱為“先驗概率”(prior probability),即在事件B發生之前,我們對事件A發生概率的一個判斷。P(A|B)稱為“後驗概率”(Posterior probability),即在事件B發生之後,我們對事件A發生概率的重新評估。

稱為“可能性函式”(likelyhood),這是一個調整因子,使得預估概率更接近真實概率。

3、二分圖

二分圖又稱二部圖、雙分圖或偶圖,是圖論中的一種特殊模型。設是一個無向圖,如果頂點V可分割為兩個互不相交的子集V_1和V_2,並且圖中每條邊(i,j)所關聯的兩個頂點i和j分別屬於這兩個不同的頂點集,則稱圖G為一個二分圖。

4、MCMC方法

最早的蒙特卡羅方法是由物理學家發明的,旨在於通過隨機化的方法計算積分,假設給定函式h(x),我們想計算如下的積分:


如果我們無法通過數學推導直接求出解析解,那麼,為了避免對區間(a,b)上所有的x值進行列舉(多數情況下這也是不可能的),我們可以將h(x)分解為某個函式f(x)和一個定義在(a,b)上的概率密度函式p(x)的乘積。這樣整個積分就可以寫成


這樣一來原積分就等同於f(x)在p(x)這個分佈上的均值。這時,如果我們從分佈p(x)上採集大量的樣本點,這些樣本符合分佈p(x),即對所有的i,有


那麼,我們就可以通過這些樣本來逼近這個均值


這就是蒙特卡羅方法的思想。近年來,隨著隨機化模型的流行,蒙特卡羅方法在機器學習領域有著越來越廣泛的應用。

假如我們現在已經定義好分佈p(x),那麼,蒙特卡羅方法的一個核心問題是:如何從這個分佈上採集樣本?

一般來講,對於經典的分佈,例如對於均勻分佈和正態分佈等,都已經有比較成熟的演算法可以快速地直接生成該分佈下的無偏樣本。然而,對於任意的分佈,我們並不能做到這一點。那麼,如何在任意分佈下采樣?這就是馬爾科夫鏈蒙特卡羅方法(MCMC)需要解決的問題。

簡單來說,MCMC的思想就是利用馬爾科夫鏈來產生指定分佈下的樣本。為此,先簡單介紹一下馬爾科夫鏈的基本知識。

5、馬爾可夫鏈

設X_t表示隨機變數X在離散時間t時刻的取值。若該變數隨時間變化的轉移概率僅僅依賴於它的當前取值,即:


則稱這個變數為馬爾可夫變數,其中具有馬爾可夫性質的隨機過程稱為馬爾可夫過程。

由上式可知,對於一個馬爾可夫隨機變數,我們只需要知道其當前的取值,就足以充分預測其未來的變化趨勢。而所謂的馬爾可夫鏈就是指一段時間內隨機變數X的取值序列符合上式條件。

一般來說,一個馬爾可夫鏈可通過其對應的轉移概率來定義。所謂轉移概率,是指隨機變數從一個時刻到下一個時刻,從狀態s_i轉移到另一個狀態s_j的概率,即


若記表示隨機變數X在時刻t取值s_k的概率,則X在時刻t+1取值為s_i的概率為:


設狀態的數目為n,則有


上式也可以寫成矩陣向量形式


其中,為行向量,轉移概率矩陣

如果存在某個取值,從它出發轉移回自身所需要的轉移次數總是整數d(>1)的倍數,那麼這個馬爾可夫過程就具有週期性。如果任意兩個數值之間總是能以非0的概率的相互轉移,那麼該馬爾可夫過程就稱為不可約(“不可約”是指每一個狀態都可來自任意的其他狀態)。如果一個馬爾可夫過程既沒有周期性,又不可約,則稱它是各態遍歷的





6、正則分佈





其中:




7、Metropolis-Hastings取樣








8、Gibbs取樣