Gibbs Sampling

問題來源:

論文 Shape and Material from Sound NIPS 2017

4.Inference 中 4.1 Models

Unsupervised Given an audio clip S, we would like to recover the latent variables x to make the reproduced sound g(x) most similar to S. Let L(·,·) be a likelihood function that measures the perceptual distance between two sounds, then our goal is to maximize L(g(x),S). We denote L(g(x),S) as p(x) for brevity. In order to find x that maximizes p(x), p(x) can be treated as an distribution pˆ(x) scaled by an unknown partition function Z. Since we do not have an exact form for p(·), nor pˆ(x), we apply Gibbs sampling to draw samples from p(x). Specifically, at sweep round t, we update each variable xi by drawing samples from     

                                         

            Such conditional probabilities are straightforward to approximate. For example, to sample Young's modulus conditioned on other variables, we can use the spectrogram as a feature and measure the l2 distance between the spectrograms of two sounds, because Young's modulus will only affect the frequency at each collision. Indeed, we can use the spectrogram as features for all variables except height. Since the height can be inferred from the time of the first collision, a simple likelihood function can be designed as measuring the time difference between the first impact in two sounds. Note that this is only an approximate measure: object's shape and orientation also affect, although only slightly, the time of first impact.

       貝葉斯網絡(Baysian Network)是統計推斷中的重要工具。簡單地說,貝葉斯網就是對於由一系列待估計量作爲自變量的聯合分佈的一種描述。即貝葉斯網描述瞭如下的後驗分佈p(\mathbf{\theta}|\mathbf{x}),其中\theta代表一個待估計變量構成的向量,\mathbf{x}爲一系列的已知測量量。原則上講,如果我們能夠寫出p(\mathbf{\theta}|\mathbf{x})的具體表達式,我們就能給出關於\theta的統計特徵的描述,從而直接求解這一統計推斷問題。如果必要,在貝葉斯的框架下,我們可以將這一後驗概率進一步展開爲

                                                               p(\mathbf{\theta}|\mathbf{x})=p(\mathbf{\theta})p(\mathbf{x}|\mathbf{\theta})
        即先驗概率p(\mathbf{\theta})和似然函數p(\mathbf{x}|\mathbf{\theta})的乘積。如果我們有後驗概率的具體表達式,原則上我們可以對待估計變量\theta的統計特徵進行直接估計。然而現實並不那麼美好,如果\theta的維度很高,而且後驗概率形式特別複雜,往往導致在對\theta的某個分量求解邊緣分佈時的積分無法簡單直接求得。例如,求某個分量的期望就必然涉及對後驗概率的積分。蒙特卡羅積分法對於高維度的積分問題而言是一種可行的解決方案,基於這一原理,我們就能用基於抽樣的方法來解決這一問題(這裏的抽樣是指按照給定的聯合分佈產生一個符合該分佈的樣本,而不是指從一個總體中抽取出一個樣本)。

       如果我們能夠對後驗概率進行採樣,即根據後驗概率獲得一系列 \theta的實現樣本,我們就能夠對這個樣本進行直接的統計,從而獲得對\theta的估計。那麼如何完成對p(\mathbf{\theta}|\mathbf{x})的採樣呢?這時候我們便要請出吉布斯(Gibbs)採樣算法了吉布斯採樣算法是一種對多元分佈進行採樣的算法。吉布斯採樣算法的基本思想很直接,就是依次對\theta的各個分量進行採樣,在採樣某一個分量的時候,認爲其他分量固定。這就將多維採樣問題轉換爲了對一維分佈進行採樣,而這能夠用拒絕算法(或者自適應拒絕算法)、切片法等等解決。本來故事到這裏已經可以結束,從而沒有貝葉斯網什麼事情了,但是實踐中,我發現(當然不可能是我首先發現的),直接對後驗概率進行吉布斯採樣,雖然能湊合着用,但是效率有時候堪憂,貝葉斯網的出現可以顯著改善採樣的效率。如果我們能夠把後驗概率進行分解, 把各個參量之間的關係捋順,在對某一具體分量進行採集的時候,只需要計算和它相關的量,就能大大降低計算複雜性,從而提高效率。

算法(機器學習:p334):

假定x={x1,x2......xn},目標分佈爲p(x),在初始化x的初值後,通過循環執行以下步驟來完成採樣:

(1)隨機或以某個次序選取變量xi

(2)根據x中除xi外的變量的現有取值,計算條件概率p(xi|xi-),其中xi-={x1,x2,x3.....xi-1,xi,xi+1,....xn}

(3)根據p(xi|xi-)對變量xi採樣,用採樣值代替原值


算法(機器學習:p161

令Q={Q1,Q2....Qn},表示待查詢變量E={E1,E2,...Ek}爲證據變量,已知其取值爲e={e1,e2,...ek},目標是計算後驗概率P(Q=q|E=e),其中q={q1,q2,....qn}是待查詢變量的一組取值,以西瓜問題爲例,待查詢變量爲Q={好瓜,甜度},證據變量爲E={色澤,敲聲,根蒂},且已知其取值爲e={青綠,濁響,蜷縮},查詢的目標值是q={是,高},即這是好瓜且甜度高的概率有多大。

吉布斯採樣算法先隨機產生一個與證據E=e一致的樣本q0作爲初始點,然後每步從當前樣本出發,產生下一個樣本,具體來說,在第t次採樣中,算法先假設qt=qt-1,然後對非證據變量逐個採樣改變其取值,採樣概率根據貝葉斯網B和其他變量的當前取值(即Z=z)計算獲得,假設經過T次採樣得到的與q一致的樣本共有nq個,則可近似估算出後驗概率

 P(Q=q|E=e)~—nq/T

參考:<機器學習> 周志華

        https://zhuanlan.zhihu.com/p/20753438

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章