Markov Chain Monte Carlo (MCMC) 介紹 Markov Chain Monte Carlo (MCMC),一種適用於複雜分佈上採樣的模型。
2024/09/15 介紹 若要對分佈採樣或計算期望值問題,可以透過 accept-reject method 等 Monte Carlo 方法;但對於複雜、多變量、變數不獨立的分佈,可以透過 Markov Chain Monte Carlo (MCMC) 方法。
假設一隨機變量 x ∈ X x \in X x ∈ X 帶有 pdf p ( x ) p (x) p ( x ) ,如何對 p ( x ) p (x) p ( x ) 採樣?MCMC 方法是找出一個 Markov chain X = { X 0 , X 1 , ⋯ , X t , ⋯ } X = \{ X_0, X_1, \cdots, X_t, \cdots \} X = { X 0 , X 1 , ⋯ , X t , ⋯ } 定義在狀態空間 S S S 上且滿足 ergodic theorem,則 X X X 的穩定分佈就會與採樣分佈 p p p 相同,接著在此 Markov chain 隨機採樣,當時間趨於無限大時,採樣就會收斂至穩定分佈。
因此核心問題就是如何建構此 Markov chain,一種方案是找出 transition function 並建構 reversible Markov chain 使其滿足 ergodic theorem,因此起始點就會與結果無關,最終都會收斂至唯一的穩定分佈,一般常用的方案有 Metropolis–Hastings algorithm 或 Gibbs sampling。
MCMC 在相鄰兩次的採樣是相關的,若需要獨立樣本可以考慮每隔數個週期後再接受結果,並且相對於 accept-reject method,並不需要找到已知且容易採樣的分佈進行拒絕,因為在高維度不容易尋找,一般而言 MCMC 方法的效率會高於 accept-reject method。
步驟 建構滿足 ergodic theorem 的 Markov chain,並使其穩定分佈與採樣目標 p ( x ) p (x) p ( x ) 相同 選定狀態空間中任意起始點 x 0 x_0 x 0 ,並透過 Markov chain 執行隨機漫步以獲取 { x 0 , x 1 , ⋯ , x t , ⋯ } \{ x_0, x_1, \cdots, x_t, \cdots \} { x 0 , x 1 , ⋯ , x t , ⋯ } 選定兩整數 m < n m < n m < n ,選取 { x m + 1 , x m + 2 , ⋯ , x n } \{ x_{m + 1}, x_{m + 2}, \cdots, x_n \} { x m + 1 , x m + 2 , ⋯ , x n } 作為採樣結果 然而有幾個點需要注意
如何定義 Markov chain 使其滿足 ergodic theorem 如何選取收斂步數 m m m 使結果不偏 如何選取迭代步數 n n n 使結果精確 MCMC 與機器學習 MCMC 能用於機器學習中的模型學習與推理,使其在機器學習中扮演重要角色,尤其在 Bayesian learning;考慮觀測到的資料為隨機變量 y ∈ Y y \in Y y ∈ Y 而模型參數為 x ∈ X x \in X x ∈ X ,Bayesian learning 會選取能使得 posterior 機率最大的參數,其中 posterior
p ( x ∣ y ) = p ( x ) p ( y ∣ x ) ∫ X P ( y ∣ x ′ ) p ( x ′ ) d x ′ \begin{align*}
p (x | y)
= \frac{p (x) p (y | x)}{\int_X P (y | x') p (x') dx'}
\end{align*} p ( x ∣ y ) = ∫ X P ( y ∣ x ′ ) p ( x ′ ) d x ′ p ( x ) p ( y ∣ x ) 在其中有 3 種能應用 MCMC 的場景
Normalization:
∫ X p ( y ∣ x ′ ) p ( x ′ ) d x ′ \begin{align*}
\int_X p (y | x') p (x') dx'
\end{align*} ∫ X p ( y ∣ x ′ ) p ( x ′ ) d x ′ Marginalization: 若存在隱藏變數 z ∈ Z z \in Z z ∈ Z ,則需計算
p ( x ∣ y ) = ∫ Z p ( x , z ∣ y ) d z \begin{align*}
p (x | y)
= \int_Z p (x, z | y) dz
\end{align*} p ( x ∣ y ) = ∫ Z p ( x , z ∣ y ) d z Expectation: 若需計算 f ( x ) f (x) f ( x ) 在分佈上的期望值
E p [ f ( X ) ] = ∫ X f ( x ) p ( x ∣ y ) d x \begin{align*}
E_p [f (X)]
= \int_X f (x) p (x | y) dx
\end{align*} E p [ f ( X )] = ∫ X f ( x ) p ( x ∣ y ) d x 上述任一情況如果模型複雜,則計算將會非常困難,但能用 MCMC 做一個通用且有效率的選項
Metropolis–Hasting Algorithm 這邊介紹 MCMC 方法中常用的一個方案 Metropolis–Hasting algorithm。給定 pdf p ( x ) p (x) p ( x ) 作為採樣目標,Metropolis–Hasting algorithm 建構一個 Markov chain 與 transition function p ( x , x ′ ) p (x, x') p ( x , x ′ )
p ( x , x ′ ) = q ( x , x ′ ) α ( x , x ′ ) \begin{align*}
p (x, x')
= q (x, x') \alpha (x, x')
\end{align*} p ( x , x ′ ) = q ( x , x ′ ) α ( x , x ′ ) 其中 q ( x , x ′ ) q (x, x') q ( x , x ′ ) 稱為 proposal distribution 提出狀態改變的可能,α ( x , x ′ ) \alpha (x, x') α ( x , x ′ ) 稱為 acceptance distribution,負責接受是否維持當前狀態或是改變狀態。Proposal distribution q ( x , x ′ ) q (x, x') q ( x , x ′ ) 是其他 irreducible Markov chain 的 transition function,一般會選擇容易採樣的分佈;acceptance distribution α ( x , x ′ ) \alpha (x, x') α ( x , x ′ ) 寫作
α ( x , x ′ ) = min { 1 , p ( x ′ ) q ( x ′ , x ) p ( x ) q ( x , x ′ ) } \begin{align*}
\alpha (x, x')
= \min \left\lbrace 1, \frac{p (x') q (x', x)}{p (x) q (x, x')} \right\rbrace
\end{align*} α ( x , x ′ ) = min { 1 , p ( x ) q ( x , x ′ ) p ( x ′ ) q ( x ′ , x ) } 使得
p ( x , x ′ ) = { q ( x , x ′ ) if p ( x ′ ) q ( x ′ , x ) ≥ p ( x ) q ( x , x ′ ) q ( x , x ′ ) p ( x ′ ) p ( x ) if p ( x ′ ) q ( x ′ , x ) > p ( x ) q ( x , x ′ ) \begin{align*}
p (x, x')
= \begin{cases}
q (x, x') & \text{if } p (x') q(x', x) \geq p (x) q (x, x') \\
q (x, x') \frac{p (x')}{p (x)} & \text{if } p (x') q(x', x) > p (x) q (x, x')
\end{cases}
\end{align*} p ( x , x ′ ) = { q ( x , x ′ ) q ( x , x ′ ) p ( x ) p ( x ′ ) if p ( x ′ ) q ( x ′ , x ) ≥ p ( x ) q ( x , x ′ ) if p ( x ′ ) q ( x ′ , x ) > p ( x ) q ( x , x ′ ) 而在 Markov chain p ( x , x ′ ) p (x, x') p ( x , x ′ ) 上的隨機漫步,是依照下列方式:在時間 t − 1 t - 1 t − 1 時為狀態 x x x ,設 x t − 1 = x x_{t - 1} = x x t − 1 = x ,接著根據 q ( x , x ′ ) q (x, x') q ( x , x ′ ) 生成出下一時間點候選的狀態 x ′ x' x ′ ,接著有 α ( x , x ′ ) \alpha (x, x') α ( x , x ′ ) 的機率接受此提案,若通過則設 x t = x ′ x_t = x' x t = x ′ ;反之則拒絕此提案,維持原狀態 x t = x x_t = x x t = x 。
透過此方式建構的 p ( x , x ′ ) p (x, x') p ( x , x ′ ) 是 reversible Markov chain,即滿足 ergodic theorem,使得 p ( x , x ′ ) p (x, x') p ( x , x ′ ) 的穩定分佈即為採樣目標 p ( x ) p (x) p ( x ) 。
演算法 在 Markov chain p ( x , x ′ ) p (x, x') p ( x , x ′ ) 上的隨機漫步 Metropolis–Hasting algorithm,是依照下列方式
選定起始點 x 0 x_0 x 0 對 i = 1 , 2 , ⋯ , n i = \conti{n} i = 1 , 2 , ⋯ , n 執行設定狀態 x i − 1 = x x_{i - 1} = x x i − 1 = x ,依據 q ( x , x ′ ) q (x, x') q ( x , x ′ ) 生成出下一時間點候選的狀態 x ′ x' x ′ 計算接受機率 α ( x , x ′ ) \alpha (x, x') α ( x , x ′ ) 採樣 u ∼ Unif ( 0 , 1 ) u \sim \unif (0, 1) u ∼ Unif ( 0 , 1 ) ,若 u ≤ α ( x , x ′ ) u \leq \alpha (x, x') u ≤ α ( x , x ′ ) 設 x i = x ′ x_i = x' x i = x ′ ;反之設 x i = x x_i = x x i = x 獲取採樣集合 { x m + 1 , x m + 2 , ⋯ , x n } \{ x_{m + 1}, x_{m + 2}, \cdots, x_n \} { x m + 1 , x m + 2 , ⋯ , x n } Proposal Distribution 選取 Proposal Distribution q ( x , x ′ ) q (x, x') q ( x , x ′ ) 一般選取容易採樣的分佈,且建議選取兩種類型的
對稱 (symmetic) 的,即 q ( x , x ′ ) = q ( x ′ , x ) q (x, x') = q (x', x) q ( x , x ′ ) = q ( x ′ , x ) 獨立 (independent) 的,即 q ( x , x ′ ) = q ( x ′ ) q (x, x') = q (x') q ( x , x ′ ) = q ( x ′ ) 若選取對稱分佈,即 q ( x , x ′ ) = q ( x ′ , x ) q (x, x') = q (x', x) q ( x , x ′ ) = q ( x ′ , x ) ,則 acceptance distribution 能被簡化成
α ( x , x ′ ) = { 1 , p ( x ′ ) p ( x ) } \begin{align*}
\alpha (x, x')
= \left\lbrace 1, \frac{p (x')}{p (x)} \right\rbrace
\end{align*} α ( x , x ′ ) = { 1 , p ( x ) p ( x ′ ) } 此選取稱為 Metropolis selection;在這中有個特例,設定 q ( x , x ′ ) = q ( ∣ x − x ′ ∣ ) q (x, x') = q ( |x - x'|) q ( x , x ′ ) = q ( ∣ x − x ′ ∣ ) ,這種設定被稱為 random walk Metropolis algorithm,這種選取傾向於選擇靠近 x x x 的 x ′ x' x ′ ,例如
q ( x , x ′ ) ∝ exp [ − ( x − x ′ ) 2 2 ] \begin{align*}
q (x, x')
\propto \exp \left[ - \frac{(x - x')^2}{2} \right]
\end{align*} q ( x , x ′ ) ∝ exp [ − 2 ( x − x ′ ) 2 ] 若選擇獨立分佈,即 q ( x , x ′ ) = q ( x ′ ) q (x, x') = q (x') q ( x , x ′ ) = q ( x ′ ) ,則
α ( x , x ′ ) = { 1 , p ( x ′ ) / q ( x ′ ) p ( x ) / q ( x ) } \begin{align*}
\alpha (x, x')
= \left\lbrace 1, \frac{p (x') / q(x')}{p (x) / q (x)} \right\rbrace
\end{align*} α ( x , x ′ ) = { 1 , p ( x ) / q ( x ) p ( x ′ ) / q ( x ′ ) } 這種抽樣方式簡單易實現,但收斂速度較慢,且一般 q ( x ) q (x) q ( x ) 會選取較靠近目標分佈 p ( x ) p (x) p ( x )
Full Conditional Distribution 若採樣目標為 k k k 維度變量,x = ( x 1 , x 2 , ⋯ , x k ) T x = (\contia{x}{k})^T x = ( x 1 , x 2 , ⋯ , x k ) T ,若選 I ⊂ K = { 1 , 2 , ⋯ , k } I \subset K = \{ \conti{k} \} I ⊂ K = { 1 , 2 , ⋯ , k } ,則 full conditional distribution 可以被寫為 p ( x I ∣ x − I ) p (x_{I} | x_{-I}) p ( x I ∣ x − I ) ,其中 x I = { x i ∣ i ∈ I } x_{I} = \{ x_i | i \in I \} x I = { x i ∣ i ∈ I } ,x − I = { x i ∣ i ∉ I } x_{-I} = \{ x_i | i \not\in I \} x − I = { x i ∣ i ∈ I } 。
Full conditional distribution 擁有以下性質
p ( x I ∣ x − I ) = p ( x ) ∫ p ( x ) d x I ∝ p ( x ) \begin{align*}
p (x_I | x_{-I})
= \frac{p (x)}{\int p (x) dx_I}
\propto p (x)
\end{align*} p ( x I ∣ x − I ) = ∫ p ( x ) d x I p ( x ) ∝ p ( x ) 而任意兩 x , x ′ x, x' x , x ′ 的 Full conditional distribution 擁有以下性質
p ( x I ′ ∣ x − I ′ ) p ( x I ∣ x − I ) = p ( x ′ ) p ( x ) \begin{align*}
\frac{p (x_I' | x_{-I}') }{p (x_I | x_{-I}) }
= \frac{p (x')}{p (x)}
\end{align*} p ( x I ∣ x − I ) p ( x I ′ ∣ x − I ′ ) = p ( x ) p ( x ′ ) 這項性質被用於改進 Metropolis–Hasting Algorithm,其中計算 p ( x ′ ) p ( x ) \frac{p (x')}{p (x)} p ( x ) p ( x ′ ) 會以 p ( x I ′ ∣ x − I ′ ) p ( x I ∣ x − I ) \frac{p (x_I' | x_{-I}') }{p (x_I | x_{-I}) } p ( x I ∣ x − I ) p ( x I ′ ∣ x − I ′ ) 取代。
Single-Component Metropolis–Hastings Algorithm 在 Metropolis–Hastings Algorithm 需對多變量分佈採樣,有時這種採樣非常困難,因此轉而對單一變數的條件分佈採樣,並遍歷所有變數以此簡化問題,這種方式被稱為 single-component Metropolis–Hastings algorithm
設採樣目標為 k k k 維度分佈 x = ( x 1 , x 2 , ⋯ , x k ) T x = (\contia{x}{k})^T x = ( x 1 , x 2 , ⋯ , x k ) T ,其中 x j x_j x j 是 x x x 的第 j j j 個變數。設 Markov chain 在時間 i i i 採樣結果為
x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯ , x k ( i ) ) T \begin{align*}
x^{(i)}
= (x_1^{(i)}, x_2^{(i)}, \cdots, x_k^{(i)})^T
\end{align*} x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯ , x k ( i ) ) T 其中 x j ( i ) x_{j}^{(i)} x j ( i ) 為時間 i i i 下採樣 x x x 的第 j j j 個變數。
為了獲取採樣結果 { x ( 1 ) , x ( 2 ) , ⋯ , x ( n ) } \{ x^{(1)}, x^{(2)}, \cdots, x^{(n)} \} { x ( 1 ) , x ( 2 ) , ⋯ , x ( n ) } ,在第 i − 1 i - 1 i − 1 迭代結束時,第 j j j 個變數為 x j ( i − 1 ) x_j^{(i - 1)} x j ( i − 1 ) ,接著在第 i i i 次迭代的第 j j j 步會生成 x j ′ ( i ) x_j'^{(i)} x j ′ ( i ) ,其生成採樣自 proposed distribution q ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) q (x_j^{(i - 1)}, x_j'^{(i)} | x_{-j}^{(i)}) q ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) ,其中 x − j ( i ) x_{-j}^{(i)} x − j ( i ) 為移除第 j j j 項的 x ( i ) x^{(i)} x ( i ) ,且前 j − 1 j - 1 j − 1 項為更新後結果,即
x − j ( i ) = ( x 1 ( i ) , ⋯ , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯ , x k ( i − 1 ) ) T \begin{align*}
x_{-j}^{(i)}
= (x_1^{(i)}, \cdots, x_{j - 1}^{(i)}, x_{j + 1}^{(i - 1)}, \cdots, x_{k}^{(i - 1)})^T
\end{align*} x − j ( i ) = ( x 1 ( i ) , ⋯ , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯ , x k ( i − 1 ) ) T 接著決定是否接受此次更新,即
α ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) = min { 1 , p ( x j ′ ( i ) ∣ x − j ( i ) ) q ( x j ′ ( i ) , x j ( i − 1 ) ∣ x − j ( i ) ) p ( x j ( i − 1 ) ∣ x − j ( i ) ) q ( x j ( i − 1 ) , x j ( i ) ∣ x − j ( i ) ) } \begin{align*}
\alpha (x_{j}^{(i - 1)}, x_{j}'^{(i)} | x_{-j}^{(i)} )
= \min \left\lbrace 1, \frac{p (x_j'^{(i)} | x_{-j}^{(i)}) q (x_j'^{(i)}, x_j^{(i - 1)} | x_{-j}^{(i)})}{p (x_j^{(i - 1)} | x_{-j}^{(i)}) q (x_j^{(i - 1)}, x_j^{(i)} | x_{-j}^{(i)})} \right\rbrace
\end{align*} α ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) = min { 1 , p ( x j ( i − 1 ) ∣ x − j ( i ) ) q ( x j ( i − 1 ) , x j ( i ) ∣ x − j ( i ) ) p ( x j ′ ( i ) ∣ x − j ( i ) ) q ( x j ′ ( i ) , x j ( i − 1 ) ∣ x − j ( i ) ) } 若接受此採樣,則 x j ( i ) = x j ′ ( i ) x_j^{(i)} = x_j'^{(i)} x j ( i ) = x j ′ ( i ) ;反之則拒絕此採樣,維持 x j ( i ) = x j ( i − 1 ) x_j^{(i)} = x_{j}^{(i - 1)} x j ( i ) = x j ( i − 1 )
Gibbs Sampling Gibbs sampling 是一種 MCMC 常用的方式,是 single-component Metropolis–Hastings algorithm 的一種特例,但更容易實現,常用於估計多變量參數。其概念是從 joint probability distribution 定義 full conditional distribution,並在其中採樣。
給定 k k k 維度多變量分佈的 pdf p ( x 1 , x 2 , ⋯ , x k ) p (\contia{x}{k}) p ( x 1 , x 2 , ⋯ , x k ) ,從起始點 x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯ , x k ( 0 ) ) T x^{(0)} = (x_1^{(0)}, x_2^{(0)}, \cdots, x_k^{(0)})^T x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯ , x k ( 0 ) ) T ,並在第 i i i 次迭代的第 j j j 步驟採樣 x j ( i ) x_j^{(i)} x j ( i ) 自 p ( x j ∣ x − j ( i ) ) p (x_j | x_{-j}^{(i)}) p ( x j ∣ x − j ( i ) ) ,其中
p ( x j ∣ x − j ( i ) ) = p ( x j ∣ x 1 ( i ) , ⋯ , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯ , x k ( i − 1 ) ) \begin{align*}
p (x_j | x_{- j}^{(i)})
= p (x_j | x_1^{(i)}, \cdots, x_{j - 1}^{(i)}, x_{j + 1}^{(i - 1)}, \cdots, x_{k}^{(i - 1)})
\end{align*} p ( x j ∣ x − j ( i ) ) = p ( x j ∣ x 1 ( i ) , ⋯ , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯ , x k ( i − 1 ) ) 其中定義 proposed distribution 是 full conditional distribution,即
q ( x , x ′ ) = p ( x j ′ ∣ x − j ) \begin{align*}
q (x, x')
= p (x_j' | x_{-j})
\end{align*} q ( x , x ′ ) = p ( x j ′ ∣ x − j ) 透過這個轉換使得 α ( x , x ′ ) = 1 \alpha (x, x') = 1 α ( x , x ′ ) = 1 ,即接受所有採樣,這也是 Gibbs sampling 與 single-component Metropolis–Hastings algorithm 最大的差異,Gibbs sampling 接受所有的採樣,使得每次採樣會保持移動,而非拒絕採樣使得鄰近採樣不會移動。
Gibbs sampling 適用於 full conditional distribution 容易採樣,因此能提高採樣效率;single-component Metropolis–Hastings algorithm 即便 full conditional distribution 不易採樣也適用,但效率較低。
演算法 目標:給定 pdf p ( x ) p (x) p ( x ) 與函數 f ( x ) f (x) f ( x ) ,回傳採樣結果 x m + 1 , x m + 2 , ⋯ , x n x_{m + 1}, x_{m + 2}, \cdots, x_n x m + 1 , x m + 2 , ⋯ , x n 與樣本平均 f m n f_{mn} f mn 輸入:pdf p ( x ) p (x) p ( x ) 、函數 f ( x ) f (x) f ( x ) 、收斂次數 m m m 、迭代次數 n n n 輸出:採樣結果 x m + 1 , x m + 2 , ⋯ , x n x_{m + 1}, x_{m + 2}, \cdots, x_n x m + 1 , x m + 2 , ⋯ , x n 與樣本平均 f m n f_{mn} f mn 設定起始點 x ( 0 ) = ( x 1 ( 0 ) , , x 2 ( 0 ) , ⋯ , x k ( 0 ) ) T x^{(0)} = (x_1^{(0)}, ,x_2^{(0)}, \cdots, x_k^{(0)})^T x ( 0 ) = ( x 1 ( 0 ) ,, x 2 ( 0 ) , ⋯ , x k ( 0 ) ) T
設 i = 1 , 2 , ⋯ , n i = \conti{n} i = 1 , 2 , ⋯ , n
採樣 x 1 ( i ) x_1^{(i)} x 1 ( i ) 自 p ( x 1 ∣ x 2 ( i − 1 ) , x 3 ( i − 1 ) , ⋯ , x k ( i − 1 ) ) p (x_1 | x_2^{(i - 1)}, x_3^{(i - 1)}, \cdots, x_k^{(i - 1)}) p ( x 1 ∣ x 2 ( i − 1 ) , x 3 ( i − 1 ) , ⋯ , x k ( i − 1 ) ) … 採樣 x j ( i ) x_j^{(i)} x j ( i ) 自 p ( x j ∣ x 1 ( i ) , ⋯ , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯ , x k ( i − 1 ) ) p (x_j | x_1^{(i)}, \cdots, x_{j - 1}^{(i)}, x_{j + 1}^{(i - 1)}, \cdots, x_k^{(i - 1)}) p ( x j ∣ x 1 ( i ) , ⋯ , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯ , x k ( i − 1 ) ) … 採樣 x k ( i ) x_k^{(i)} x k ( i ) 自 p ( x k ∣ x 1 ( i ) , x 2 ( i ) , ⋯ , x k − 1 ( i ) ) p (x_k | x_1^{(i)}, x_2^{(i)}, \cdots, x_{k - 1}^{(i)}) p ( x k ∣ x 1 ( i ) , x 2 ( i ) , ⋯ , x k − 1 ( i ) ) 獲取採樣集合 { x ( m + 1 ) , x ( m + 2 ) , ⋯ , x ( n ) } \{ x^{(m + 1)}, x^{(m + 2)}, \cdots, x^{(n)} \} { x ( m + 1 ) , x ( m + 2 ) , ⋯ , x ( n ) }
計算樣本平均
f m n = 1 n − m ∑ i = m + 1 n f ( x ( i ) ) \begin{align*}
f_{mn}
= \frac{1}{n - m} \sum_{i = m + 1}^{n} f (x^{(i)})
\end{align*} f mn = n − m 1 i = m + 1 ∑ n f ( x ( i ) ) 範例 用 Gibbs sampling 對二元常態分佈取樣,設
X = ( X 1 , X 2 ) T ∼ N ( ( 0 0 ) , ( 1 ρ ρ 1 ) ) \begin{align*}
X
= (X_1, X_2)^T
\sim N \left( \begin{pmatrix}
0 \\
0
\end{pmatrix}, \begin{pmatrix}
1 & \rho \\
\rho & 1
\end{pmatrix} \right)
\end{align*} X = ( X 1 , X 2 ) T ∼ N ( ( 0 0 ) , ( 1 ρ ρ 1 ) ) 則 full conditional distribution 為
X 1 ∣ X 2 ∼ N ( ρ X 1 , ( 1 − ρ 2 ) ) X 2 ∣ X 1 ∼ N ( ρ X 2 , ( 1 − ρ 2 ) ) \begin{align*}
X_1 | X_2
& \sim N (\rho X_1, (1 - \rho^2)) \\
X_2 | X_1
& \sim N (\rho X_2, (1 - \rho^2))
\end{align*} X 1 ∣ X 2 X 2 ∣ X 1 ∼ N ( ρ X 1 , ( 1 − ρ 2 )) ∼ N ( ρ X 2 , ( 1 − ρ 2 )) 接著可透過 Gibbs sampling 採樣,設起始狀態 x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) ) T x^{(0)} = (x_1^{(0)}, x_2^{(0)})^T x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) ) T ,接著迭代
第 1 次迭代:x 1 ( 1 ) ∼ N ( ρ x 2 ( 0 ) , ( 1 − ρ 2 ) ) x_1^{(1)} \sim N (\rho x_2^{(0)}, (1 - \rho^2)) x 1 ( 1 ) ∼ N ( ρ x 2 ( 0 ) , ( 1 − ρ 2 )) x 2 ( 1 ) ∼ N ( ρ x 1 ( 1 ) , ( 1 − ρ 2 ) ) x_2^{(1)} \sim N (\rho x_1^{(1)}, (1 - \rho^2)) x 2 ( 1 ) ∼ N ( ρ x 1 ( 1 ) , ( 1 − ρ 2 )) … 第 i i i 次迭代:x 1 ( i ) ∼ N ( ρ x 2 ( i − 1 ) , ( 1 − ρ 2 ) ) x_1^{(i)} \sim N (\rho x_2^{(i - 1)}, (1 - \rho^2)) x 1 ( i ) ∼ N ( ρ x 2 ( i − 1 ) , ( 1 − ρ 2 )) x 2 ( i ) ∼ N ( ρ x 1 ( i ) , ( 1 − ρ 2 ) ) x_2^{(i)} \sim N (\rho x_1^{(i)}, (1 - \rho^2)) x 2 ( i ) ∼ N ( ρ x 1 ( i ) , ( 1 − ρ 2 )) … 第 i i i 次迭代:x 1 ( n ) ∼ N ( ρ x 2 ( n − 1 ) , ( 1 − ρ 2 ) ) x_1^{(n)} \sim N (\rho x_2^{(n - 1)}, (1 - \rho^2)) x 1 ( n ) ∼ N ( ρ x 2 ( n − 1 ) , ( 1 − ρ 2 )) x 2 ( n ) ∼ N ( ρ x 1 ( n ) , ( 1 − ρ 2 ) ) x_2^{(n)} \sim N (\rho x_1^{(n)}, (1 - \rho^2)) x 2 ( n ) ∼ N ( ρ x 1 ( n ) , ( 1 − ρ 2 )) 選定收斂次數 m m m 與迭代次數 n n n 後,{ x ( m + 1 ) , x ( m + 2 ) , ⋯ , x ( n ) } \{ x^{(m + 1)}, x^{(m + 2)}, \cdots, x^{(n)} \} { x ( m + 1 ) , x ( m + 2 ) , ⋯ , x ( n ) } 即為採樣結果
採樣計算 在 Gibbs sampling 須對 full conditional distribution 進行多次採樣,因此能透過分佈的特徵來改進或加速採樣效率。以 Bayesian learning 作為範例,設 y y y 為觀測資料,x = ( α , θ , z ) x = (\alpha, \theta, z) x = ( α , θ , z ) 為參數,其中 α \alpha α 為超參數 (hyperparameters),θ \theta θ 為模型參數,z z z 是未觀測資料。Bayesian learning 目的在於最大化 posterior 機率,如下
p ( x ∣ y ) = p ( α , θ , z ∣ y ) ∝ p ( z , y ∣ θ ) p ( θ ∣ α ) p ( α ) \begin{align*}
p (x | y)
= p (\alpha, \theta, z | y)
\propto p (z, y | \theta) p (\theta | \alpha) p (\alpha)
\end{align*} p ( x ∣ y ) = p ( α , θ , z ∣ y ) ∝ p ( z , y ∣ θ ) p ( θ ∣ α ) p ( α ) 其中 p ( z , y ∣ θ ) p (z, y | \theta) p ( z , y ∣ θ ) 是完整資料的分佈,p ( θ ∣ α ) p (\theta | \alpha) p ( θ ∣ α ) 是 prior 分佈,p ( α ) p (\alpha) p ( α ) 是 hyperparameter 分佈。而 Gibbs sampling 估計 p ( x ∣ y ) p (x | y) p ( x ∣ y ) 擁有以下特徵
p ( α i ∣ α − i , θ , z , y ) ∝ p ( θ ∣ α ) p ( α ) p ( θ j ∣ θ − j , α , θ , z , y ) ∝ p ( z , y ∣ θ ) p ( θ ∣ α ) p ( z k ∣ z − k , α , θ , y ) ∝ p ( z , y ∣ θ ) \begin{align*}
p (\alpha_i | \alpha_{-i}, \theta, z, y)
& \propto p (\theta | \alpha) p (\alpha) \\
p (\theta_j | \theta_{-j}, \alpha, \theta, z, y)
& \propto p (z, y | \theta) p (\theta | \alpha) \\
p (z_k | z_{-k}, \alpha, \theta, y)
& \propto p (z, y | \theta)
\end{align*} p ( α i ∣ α − i , θ , z , y ) p ( θ j ∣ θ − j , α , θ , z , y ) p ( z k ∣ z − k , α , θ , y ) ∝ p ( θ ∣ α ) p ( α ) ∝ p ( z , y ∣ θ ) p ( θ ∣ α ) ∝ p ( z , y ∣ θ ) full conditional probability 是多個 conditional probability 相乘,每個機率分佈僅與少數變數相關,因此對 full conditional probability 可以僅透過數個 conditional probability 的採樣來執行,以此降低運算複雜度
參考資料 LI, Hang. Machine Learning Methods. Springer Nature, 2023. Lange, Kenneth, J. Chambers, and W. Eddy. Numerical analysis for statisticians. Vol. 1. New York: springer, 2010.