Boltzmann Machine 玻爾茲曼機入門

2022-01-10 00:54:20 字數 2835 閱讀 2501

生成模型幫助我們生成新的item,而不只是儲存和提取之前的item。boltzmann machine就是generative models的一種。

boltzmann distribution是一種在狀態空間上的概率分布,公式如下:

\[p(x) = \frac}}

\]通常情況下,直接計算partition function很複雜。但是我們可以利用相鄰狀態的相對概率通過迭代過程從分布中取樣。

參考部落格:

假設我們有乙個影象x,對於所有的元素\(x_i=1\)。每一次操作,我們只將乙個\(x_i\)變為0,其他的不變,從而得到乙個新的影象。

我們用如下的公式來表示兩個影象之間的energy function的差:

我們可以得到新影象的boltzmann distribution,如下:

因此,對於所有固定的元素,\(x_i\)取得1或者0的概率如下所示:

boltzmann machine的操作和hopfield network很像,只是再更新神經元的步驟上又差別!boltzmann machine在神經元更新的時候有隨機性。

在hopfield network中, \(x_i\)的變化使得energy function永遠不會增大。但是在boltzmann machine中,我們用乙個概率來令\(x_i=1\):

換句話說,這個概率有可能讓energy function的值變大。所以:

boltzmann machine的侷限性在於,每個單元的概率必須是周圍單元的線性可分函式。所以,我們可以考慮到的解決辦法就是增加隱藏層,將可見的單元和隱藏的單元分開。類似於前饋神經網路中的輸入層和隱藏層。目的就是讓隱藏單元學習一些隱藏的特徵或者潛在的變數,從而幫助系統去對輸入進行建模。結構如下圖所示:

如果我們讓所有的可見單元之間和隱藏單元之間互相存在連線,訓練網路要花非常長的時間。所以,我們通常限制boltzmannn machine只在可見單元和隱藏單元之間存在連線,如下圖所示:

這樣的網路就被稱作restricted boltzmann machine,受限玻爾茲曼機。主要特徵是:

沒有vis-to-vis或者hidden-to-hidden連線

所有可見單元連線到所有隱藏單元,公式如下:\(e(v, h) = -(\sum_i b_i v_i + \sum_j c_j h_j + \sum_ v_i w_h_j)\)

訓練使資料的期望對數概率最大化

因為輸入單位和隱藏單位是解耦的,我們可以計算h在v下的條件分布,反之亦然。

於是,

在boltzmann machine中我們可以從boltzmann distribution中進行如下抽樣:

通過對比真實和虛假的進行訓練,優先選擇真實的

從訓練資料中選擇乙個或者多個positive samples \) }

對於每乙個\(v^\),從\(p(h|v(k))\)中抽樣乙個隱藏向量\(h^\)

通過alternating gibbs sampling 生成乙個fake樣本\)}

對於每乙個\(v'^\),從\(p(h|v'^)\)中抽樣乙個隱藏向量\(h'^\)

更新\(\),\(c_j\),\(w_\)去增大\(log\ p(v^, h^) - log\ p(v'^, h'^)\)

在2000『s的時候,研究人員注意到,這個過程可以通過只取乙個額外的樣本來加速,而不是執行多次迭代。

從實數開始,生成隱藏單元,生成假(重構)數字,並分別作為正樣本和負樣本進行訓練

和boltzmann machine是相同的方法,但是可以迭代的應用於多層網路。

首先訓練輸入到第一層的權重。然後保持這些權重不變,繼續訓練第一層到第二層之間的權重,以此類推。

deep boltzmann machine的乙個主要應用是greedy unsupervised layerwise pretraining(貪婪無監督逐層與訓練)。

連續的對每一對layers進行訓練,訓練成rbm。

當模型訓練完成之後,權重和偏差會被儲存下來,在下一次進行類似的任務時會被當做前饋神經網路的初始權重和偏差,然後再根據當前任務資料進行反向傳播訓練。

對於sigmoid或者tanh啟用函式,這一類的預訓練能夠比直接進行隨機初始化權重然後訓練取得更好的結果。

玻爾茲曼機

結構 兩層的神經網路 可視層與隱藏層 雙向全連線 即可視層作為輸入用於啟用隱藏層單元,隱藏層作為輸入用於啟用可視層單元 輸入資訊重構 目的 輸入向量v 與輸出向量 h 隱藏層的輸出 盡可能一一對應。即 h進可能是 v的編碼。只有h與 v一一對應,重構資訊才能與v與 v 誤差盡可能小。構造乙個 v,h...

玻爾茲曼機

受限玻爾茲曼機 rbm 是一種用於降維 分類 回歸 特徵學習 協同濾波 主題建模的演算法。注釋 1.在機器學習和統計學習領域,降維是指在某些特定條件下,降低隨機變數的個數,得到一組不相關主變數的過程。降維可分為特徵選擇和特徵提取兩大方法 特徵選擇假定資料中包含大量冗餘或者無關變數 或稱特徵 屬性 指...

玻爾茲曼機

我將嘗試介紹有關受限玻爾茲曼機器的直覺及其工作方式。什麼是玻爾茲曼機?玻爾茲曼機器是能夠學習內部表示的隨機生成的神經網路,能夠表示和 給定足夠的時間 解決困難的組合問題。玻爾茲曼機如何工作?玻爾茲曼機如下所示 boltzmann機是僅有兩種型別的節點 隱藏節點和可見節點 的非確定性 或隨機 生成型深...