1. 程式人生 > >受限玻爾茲曼機準備知識——MCMC方法和Gibbs取樣

受限玻爾茲曼機準備知識——MCMC方法和Gibbs取樣

先點明幾個名詞

MCMC方法:馬爾可夫鏈-蒙特卡洛方法  (千萬別叫成梅特羅波利斯蒙特卡羅方法了)

Metropolis-Hastings取樣:梅特羅波利斯-哈斯廷斯取樣

Gibbs取樣:吉布斯取樣

還是介紹一下學習MCMC和Gibbs取樣比較好的一個資料:隨機取樣方法與整理受限玻爾茲曼機(RBM)學習筆記(一)預備知識(資料挺好的,本文就差不多是這兩個資料的精簡版,主要圍繞啊MCMC和Gibbs講解)

蒙特卡洛方法

回憶一下前面一個文章蒙特卡洛方法,其中有一步驟就是用來計算積分的,轉換成一個函式乘以一個概率密度函式。說過一句話樣本的容量足夠大時,可以認為該事件的發生頻率即為其概率”。當n足夠大的時候,可以得到


也就是g(x)在p(x)分佈上的均值。然後就可以用均值近似積分的值


其實不難發現


還是拿那個用一個圓和其外接正方形理解,就相當於,我們做了N次試驗,每次試驗都是丟一堆點到這個正方形包圍區域,然後正方形內的點數(這個地方這樣想比較方便:點構成面,那麼我們就可以把正方形的面積想象成無數個點)也就是正方形近似的面積了,同理,被丟到圓內的點構成了圓的面積。回到那個用均值計算積分的累加式上,它就相當於我做了n次丟點的實驗,所有的點構成了樣本f(x),而1/p(x)就代表了點落在圓內的概率大小。

【注】概率密度函式:表示瞬時值落在某指定範圍內的概率,因此是幅值的函式,它隨所取範圍的幅值而變化。

馬爾可夫鏈蒙特卡洛方法(MCMC方法)

前面已經介紹過關於HMM的相關知識了,主要就是分別用何種方法解決哪三種問題。馬爾可夫鏈(通常我們說的就是一階的情況)闡述的是事物發生的當前狀態只與前面一個狀態有關,比如明天天氣狀態只與今天的天氣有關,與前天或者以前的天氣狀態無關。具體表述就是

代表的是第(t+1)時刻的狀態為 i 的概率為它的前一時刻 t 的所有可能狀態 k 乘以狀態 k 到狀態 i 的轉移概率。

舉個栗子哈~~還是天氣的那個以明天的天氣為起點,我們想預測後天的天氣為晴的概率多大,我們需要知道明天的天氣,但是明天天氣有很多種可能,由初始概率可以知道明天天氣分別為陰、晴、多雲等的概率,然後分別乘以陰天到晴天的概率、晴天到晴天的轉移概率、多雲到晴天的轉移概率等,然後相加就可以得到後天晴天的概率。在前面的文章有栗子,有需要可以去看看栗子就可以了。

然後出現了這樣一個理論:當我們一直進行狀態轉移,到達一定次數的時候,這個狀態發生的概率就會趨於穩定了,就比如,我們用天氣一直預測,今天的比如晴天,我預測明天天氣分別為陰、晴、多雲的概率,然後用明天可能出現的天氣情況預測後天的天氣情況,然後我們一直計算,假如計算到達今年12月份最後一天的天氣概率,就會發現這個概率跟12月份下旬的每天的天氣概率分佈情況差不多,差距很小。用數學的方法表示就是:

代表的就是我們以初始狀態的天氣概率,不斷的乘以這個轉移矩陣(乘一次就是轉移了一次,乘兩次就是轉移了兩次),當乘的次數越來越多的時候,概率分佈變化會逐漸趨近與穩定。就像前面MC中說過的,我們不斷的取樣,最終的狀態一定是一個穩定狀態,最接近樣本分佈的狀態。

上面這個情況稱為馬氏鏈定理:對於各態遍歷的馬爾可夫鏈(滿足兩個條件:非週期性,也就是狀態轉移不是按照某種規律迴圈,而是隨機轉移的;另一個條件是不可約,也就是每一個狀態都可有其它任何一種狀態轉移過來,不可能存在一種狀態轉移的概率為0),不管初始的概率如何取值,隨著轉移次數的增多,隨機變數的取值分佈最終會收斂於唯一的平穩分佈。這個就是MCMC理論的基礎。

現在的問題就是這個轉移概率矩陣去怎麼選擇,讓我們的初始狀態沿著馬爾可夫鏈按照這個轉移概率矩陣去轉移,最終得到的平穩分佈正好是我們需要的概率分佈。取樣的時候,我們直接按照這個概率轉移幾次,達到我們需要的概率分佈的時候,便去取樣就可以了。隨之便出現了下一個方法:梅特羅波利斯哈斯廷斯取樣。

梅特羅波利斯哈斯廷斯取樣

首先有一個概念需要知道叫做細緻平穩條件:

如果非週期的馬氏轉移矩陣P和分佈π(x)滿足那麼就成π(x)是馬氏鏈的平穩分佈。式子被稱為細緻平穩條件。也就是我們從狀態 i 轉移到狀態 j 的時候損失的概率質量,剛好可以用從 j 到 i 狀態轉移增加的概率質量補回來。

但是這個細緻平穩條件我們一般是達不到的。隨後就有大牛想到加入了一個變數叫做轉移提議分佈Q(j;i)表示當前狀態 i 提議轉移到 j 狀態,用它來建議下一步是個什麼狀態,然後用一個概率去接受它。就跟相親一樣,老爸老媽給你建議某個妹子的概率是多少,但是這還不夠,你還得有一個接受她的概率才能和她結婚。

這個就是接受概率。到底接不接受呢?我們產生一個隨機的[0,1] 範圍的數,如果α 大於這個數就接受,小於就拒絕轉移,保持原狀態。

然後細指平穩條件就成了下面醬紫


然後推理一步

可以輕鬆發現,π(x)分佈下的π(j)狀態,經過轉移,達到的狀態依舊是滿足π(x)分佈,為π(i)。

所以梅特羅波利斯哈斯廷斯取樣的精髓在於(自我感覺哈),提出了一個轉移提議分佈,讓細緻平穩條件成為可能。此時新的轉移矩陣為



那麼問題又來了,這裡面有一個隨機數和接受概率的比較,兩個東西都比較隨機,造成了這種方法的不穩定性,如果接受概率一直灰常小,那麼我每次都拒絕了,這狀態還咋轉移。於是,大牛又來了~~~

吉布斯取樣(Gibbs取樣)

條件概率的計算公式複習一下先

然後看一個比較有意思的式子推導


可以很清晰的發現,兩個狀態的相互轉移概率其實是相等的,也就是滿足細緻平穩條件。也就是說,我們固定一個,按照x這個方向去轉移狀態,到達下一個狀態,這個過程是滿足細緻平穩分佈的。

用其它文章的話來說就是


這跟上面的梅特羅波利斯蒙特卡洛方法有什麼關係呢?其實關鍵就在於,Gibbs規定了轉移方向,在這個方向是,你的接受概率必須為1,其它方向必須為0,這便消除了隨機性的影響。


最後再舉一個栗子串一下,還是相親的栗子。剛開始的時候是滿世界找物件,世界上每個妹子在你面前出現的概率叫做初始概率,然後你在世界上行走去每個地方概率為轉移概率,然後不斷地走,走遍大江南北,世界各地,不斷的轉移狀態,你就會發現,每個地方的妹子的屬性(身高、年紀、性格等)分佈差不多,給你一個新地方,你不去就能猜到那邊妹子的平均身高,平均年齡等特徵,這時候,妹子們的狀態分佈就會趨於一種平穩狀態。除非你改變去每個地方的概率,或者世界上突然被外星人抓走了一種型別妹子,這時候就會處於另一種穩態。這種就叫做馬爾可夫鏈蒙特卡洛方法。

然後有的人就很聰明瞭,他想,我到處嚇跑幹啥,累死了,走遍各地,讓妹子的分佈達到穩態,這還不得老了。接著父母就開始忙活了,父母幫兒子找媳婦,父母每次給兒子按照某種提議分佈去建議兒子娶這個,娶那個,兒子每看到一個妹子就以一定的接受概率去接受它,這種方法就是梅特羅波利斯哈斯廷斯取樣。

最後,有人就發現,有些型別的妹子我非常喜歡,有些不喜歡,有些又有點拿捏不定,怎麼辦?這時候,我不想麻煩了,不喜歡和拿捏不定的,我統統不要,我就要一種風格的妹子(妹子的各種屬性滿足某種分佈,幾分萌萌噠,幾分瘦,幾分年紀等),然後看到從樣本中找到第一個這樣風格的妹子,接下來按照上一個選中的妹子風格和我們希望的風格分佈,不斷取樣,找這種風格的妹子,當我找到數量足夠的妹子(即Gibbs裡面的n),這時候我就得到了我喜歡的風格的妹子們了(期望的樣本分佈)。

好吧,如果有什麼不對的,謝謝大家指正,我會不斷完善的~~~~謝謝啦~~~

相關推薦

受限準備知識——MCMC方法Gibbs取樣

先點明幾個名詞MCMC方法:馬爾可夫鏈-蒙特卡洛方法  (千萬別叫成梅特羅波利斯蒙特卡羅方法了)Metropolis-Hastings取樣:梅特羅波利斯-哈斯廷斯取樣Gibbs取樣:吉布斯取樣還是介紹一下學習MCMC和Gibbs取樣比較好的一個資料:隨機取樣方法與整理和受限玻

受限基礎教程

unit 單個 單元 閾值 導致 相關數 負責 權重 自動編碼器 定義與結構 受限玻爾茲曼機(RBM)由Geoff Hinton發明,是一種用於降維、分類、回歸、協同過濾、特征學習和主題建模的算法。(如需通過實例了解RBM等神經網絡的應用方法,請參閱應用案例)。

受限(RBM)原理總結

guid filter font list cuc spa 得到 aci dcb https://blog.csdn.net/l7H9JA4/article/details/81463954 授權轉發自:劉建平《受限玻爾茲曼機(RBM)原理總結》 地址:http://w

七.RBM受限

1、受限玻爾茲曼機    玻爾茲曼機是一大類的神經網路模型,但是在實際應用中使用最多的則是受限玻爾茲曼機(RBM)。   受限玻爾茲曼機(RBM)是一個隨機神經網路(即當網路的神經元節點被啟用時會有隨機行為,隨機取值)。它包含一層可視層和一層隱藏層。在同一層的神經元之間是相互獨立的,而

深度學習 --- 受限(馬科夫過程、馬科夫鏈)

        上一節我們詳細的探討了玻爾茲曼機,玻爾茲曼機的發明是為了解決Hopfield神經網路的偽吸引子的問題,因此把退火演算法、玻爾茲曼分佈和Hopfield神經網路結合在一起形成了玻爾茲曼機(隨機神經網路)。通過前面幾節我們知道玻爾茲曼機可以很好

達觀資料於敬:深度學習來一波,受限原理及在推薦系統中的應用

深度學習相關技術近年來在工程界可謂是風生水起,在自然語言處理、影象和視訊識別等領域得到極其廣泛的應用,並且在效果上更是碾壓傳統的機器學習。一方面相對傳統的機器學習,深度學習使用更多的資料可以進行更好的擴充套件,並且具有非常優異的自動提取抽象特徵的能力。 另外得益於GPU、SSD儲存、大

RBM(受限深層信念網絡(Deep Brief Network)

例如 sha 目標 監督學習 怎麽 繼續 定義 再次 rbm 目錄: 一、RBM 二、Deep Brief Network 三、Deep Autoencoder 一、RBM 1、定義【無監督學習】 RBM記住三個要訣:1)

RBM(受限深層信念網路(Deep Brief Network)

 目錄: 一、RBM 二、Deep Brief Network 三、Deep Autoencoder   一、RBM 1、定義【無監督學習】 RBM記住三個要訣:1)兩層結構圖,可視層和隱藏層;【沒輸出層】2)層內無連線,層間全連線;3)二值狀態值,

受限(RBM)原理分析以及在Tensorflow的實現

簡介 受限玻爾茲曼機是一種無監督,重構原始資料的一個簡單的神經網路。  受限玻爾茲曼機先把輸入轉為可以表示它們的一系列輸出;這些輸出可以反向重構這些輸入。通過前向和後向訓練,訓練好的網路能夠提取出輸入中最重要的特徵。 為什麼RBM很重要? 因為它能夠自動地從輸入中提

RBM--- (Restricted Boltzmann Machine,簡稱RBM : 受限 )

當讀論文Explaining and  Harnessing Adversarial Examples的時候,發現裡面有一個概念 pre-training 不懂,就立刻查詢一下,不巧的是,在解釋pre-training的時候,遇到了RBM,又不懂(他大爺,學點知識怎麼就那麼難

深度學習方法受限RBM(三)模型求解,Gibbs sampling

歡迎轉載,轉載請註明:本文出自Bin的專欄blog.csdn.net/xbinworld。  技術交流QQ群:433250724,歡迎對演算法、技術、應用感興趣的同學加入。 接下來重點講一下RBM模型求解方法,其實用的依然是梯度優化方法,但是求解需要用

RBM(受限)原理及程式碼

EBMs 的隱藏神經元 在很多情況下, 我們看不到部分的隱藏單元  , 或者我們要引入一些不可見的參量來增強模型的能力.所以我們考慮一些可見的神經元(依然表示為 ) 和 隱藏的部分 . 我們可以這樣寫我們的表示式:                                            

深度置信網路(DBN)受限(RBM)

原部落格於http://blog.163.com/silence_ellen/blog/static/176104222201431710264087/ 本篇非常簡要地介紹了深度信念網路的基本概念。文章先簡要介紹了深度信念網路(包括其應用例項)。接著分別講述了:(1)

一起讀懂傳說中的經典:受限

選自DL4J機器之心編譯參與:Nurhachu Null、思源儘管效能沒有流行的生成模型好,但受限玻爾茲曼機還是很多讀者都希望瞭解的內容。這不僅是因為深度學習的復興很大程度上是以它為前鋒,同時它那種逐層訓練與重構的思想也非常有意思。本文介紹了什麼是受限玻爾茲曼機,以及它的基本原理,並以非常簡單的語言描述了它的

受限RBM最通俗易懂的教程

本人來到CSDN已經有一段時間了,寫文章也寫了好幾篇了,本人最喜歡的風格就是用白話講解一些通俗易懂的東西,在之前,我講了不少東西,也不知道大家懂沒懂,但沒關係,你們愛懂不懂,哈哈哈哈哈哈哈哈哈哈。 但這次,我要講的東西我覺得你們都能懂,不懂我認作你爹,哈哈哈哈哈哈哈哈哈哈哈

受限——簡單證明

花了很久看了一下玻爾茲曼機,感覺水有點深,總之一步一步來嘛~~~~ 先說一下一個非常好的參考資料: 受限玻爾茲曼機(RBM)學習筆記 ,有興趣的可以再看看這篇文章的參考文獻或者部落格,寫的也非常好,本文就是基於這篇文章的理解,簡單證明一下RBM 接下來開證,不對之處歡迎指正

乾貨 | 受限基礎教程

定義與結構受限玻爾茲曼機(RBM)由Geoff Hinton發明,是一種用於降維、分類、迴歸、協

受限制(RBM)用於電影推薦小例

lips 開發 rec tran 必須 int png a* __init__ 原文章:http://blog.csdn.net/u010223750/article/details/61196549 1 #coding=‘utf-8‘ 2 """ 3 de

[深度信念網絡][] DBN (Deep Belief Network) RBM (Restricted Boltzmann Machine) 原理講解

mac 隨機 ted 圖片 程序 inf nbsp 深度 理論 主要講了玻爾茲曼機的推導以及二值RBM,這一部分程序很簡單但理論感覺不是很好講,涉及到挺多隨機過程和概率的知識。Bengio那篇文章其實講的很詳細,不過他是從自由能的角度講的,物理意義挺清楚但推導過程不如網上有

六.隨機神經網路Boltzmann(

Hopfield網路具有最優計算功能,然而網路只能嚴格按照能量函式遞減方式演化,很難避免偽狀態的出現,且權值容易陷入區域性極小值,無法收斂於全域性最優解。 如果反饋神經網路的迭代過程不是那麼死板,可以在一定程度上暫時接受能量函式變大的結果,就有可能跳出區域性極小值。隨機神經網路的核心思想就是在網路中加入概率