1. 程式人生 > >直觀理解概率圖模型中的取樣(sampling)技術

直觀理解概率圖模型中的取樣(sampling)技術

我們都知道,在概率圖模型的推斷中,精確推斷方法通常需要很大的計算開銷。因此,在現實應用中近似推斷方法更為常用。這類方法一般分為2類:通過使用隨機化方法完成近似,比如MCMC(Markov Chain Monte Carlo);使用確定性近似完成近似推斷,比如變分推斷。本文主要討論取樣技術,基本思想是直接計算或逼近某個變數的期望往往比推斷概率分佈更加容易。西瓜書裡舉了一個非常直觀的例子,假定我們的目標是計算函式f(x)在概率密度函式p(x)下的期望:

Ep[f]=f(x)p(x),

為了有效的計算期望,我們可根據p(x)抽取一組樣本

{x1,,xN},然後計算f(x)在這些樣本上的均值

f^=1Ni=1Nf(xi),

來逼近目標期望E[f]。若樣本獨立,基於大數定律,這種通過大量取樣的方法就能獲得較高的近似精度。
講到這裡,我們對取樣技術有了一個直觀的理解。目前有許對的關於取樣的教程,來完整的講述MCMC(構造一條馬爾科夫鏈,收斂至平穩分佈),MH(Metropolis-Hastings, 基於拒絕取樣來逼近平穩分佈),吉布斯取樣(Gibbs sampling, 馬爾科夫鏈的平穩分佈也是取樣的目標分佈)。但是這些教程大多都是介紹其理論或者簡單的羅列各個取樣的步驟,並沒有展示如何實現它們,如何運用到概率圖模型的推斷中;閱讀後讀者然後感到困惑,不知從何入手。本文的目標就是解決這些困惑,以一個實際中的視覺問題進行展開,直觀的理解整個建模過程和近似推斷。
我們考慮影象去噪,假設噪聲影象為

X,待還原的乾淨影象Y。那麼我們的建模過程為p(Y|X)。也許看到這,我們都聯想到了條件隨機場(Conditinal random field, CRF)。CRF是給定一組隨機變數條件下另一組輸出隨機變數的條件概率分佈模型,其特點是假設輸出隨機變數構成馬爾科夫隨機場。即輸出變數之間存在成對馬爾科夫性,區域性馬爾可夫性和全域性馬爾可夫性。這裡不做詳細介紹,可參考條件隨機場(Conditinal random field)。為了套用CRF,一個基本假設影象中的畫素只與它的直接相鄰畫素有聯絡(即具備條件獨立性質),我們就可以得到一個具備區域性馬爾可夫性質(Local Markov property)的圖模型:
這裡寫圖片描述

從該模型可知,影象中兩兩相鄰畫素間構成最大團。p(Y|X)的定義為:

p(Y|X)=1Zexp{E(Y|X)}

Z為歸一化因子,E(Y|X)為勢函式或能量函式。為了定義勢函式,我們一方面期望相鄰畫素間的值比較接近,另一方面期望還原的畫素值與原噪聲畫素值比較接近。另外,我們考慮兩種情況,當y為離散變數時,即影象為二值影象(取值0/1);當y為連續變數時,即影象為灰度影象。勢函式分別定義為:

E(Y|X)=wp{i,j}N1(yiyj)+wli1(yixi)
E(Y|X)=wp{i,j}N(yiyj)2+wli(yixi)2

上式中,當相鄰畫素間的值比較接近,且還原的畫素值與原噪聲畫素值比較接近時,勢函式最小。對Y的求解,我們可以採用很多演算法,比如基於貪心策略的 Iterated Conditional Modes(ICM)。這裡我們採用Gibbs sampling,步驟如下:

  1. 隨機或以某個次序選取變數yi
  2. 根據Y中除yi外的變數的現有取值,計算條件概率p(yi|Yi¯)
  3. 根據p概率分佈對變數