什么是吉布斯采样(Gibbs Sampling)


1 蒙特卡洛方法

介绍吉布斯采样前,我们先看一下蒙特卡洛方法。

1.1 蒙特卡洛方法的作用

有很多函数我们无法直接得到他的积分值,但我们可以利用蒙特卡洛方法来进行估计。
比如下面的积分:
∫ a b f ( x ) d x \int_a^b{f(x)}dx abf(x)dx
我们采样一个点作为函数 f ( x ) f(x) f(x)的均值对积分进行估计:
∫ a b f ( x ) d x ≈ f ( x 0 ) ( b − a ) \int_a^b{f(x)}dx\approx f(x_0)(b-a) abf(x)dxf(x0)(ba)
只采样一个点,误差比较大,我们可等间隔的采样n个点:
∫ a b f ( x ) d x ≈ b − a n ∑ i = 0 n − 1 f ( x i ) \int_a^b{f(x)}dx\approx\frac{b-a}{n}\sum_{i=0}^{n-1} f(x_i) abf(x)dxnbai=0n1f(xi)

1.2 非均匀分布采样

上述我们是等间隔采样,其实隐含着假设:x在(a,b)区间是均匀分布的。如果x在(a,b)区间不是均匀分布,而是按照概率p(x)分布的呢?此时利用采样点进行积分估计的结果如下所示:
∫ a b f ( x ) d x = ∫ a b f ( x ) p ( x ) p ( x ) d x ≈ 1 n ∑ i = 0 n − 1 f ( x i ) p ( x i ) \int_a^b{f(x)}dx=\int_a^b{\frac{f(x)}{p(x)}p(x)}dx\approx\frac{1}{n}\sum_{i=0}^{n-1} {\frac{f(x_i)}{p(x_i)}} abf(x)dx=abp(x)f(x)p(x)dxn1i=0n1p(xi)f(xi)
相当于我按照概率p(x)采样n个点,然后根据这n个点对应的 f ( x i ) f(x_i) f(xi) p ( x i ) p(x_i) p(xi)值来进行估计。均匀分布相当于一种特例。如下:
p ( x ) = 1 b − a p(x)=\frac{1}{b-a} p(x)=ba1
∫ a b f ( x ) d x ≈ 1 n ∑ i = 0 n − 1 f ( x i ) p ( x i ) = 1 n ∑ i = 0 n − 1 f ( x i ) 1 / ( b − a ) = b − a n ∑ i = 0 n − 1 f ( x i ) \int_a^b{f(x)}dx\approx\frac{1}{n}\sum_{i=0}^{n-1} {\frac{f(x_i)}{p(x_i)}}\\=\frac{1}{n}\sum_{i=0}^{n-1} {\frac{f(x_i)}{1/(b-a)}}\\=\frac{b-a}{n}\sum_{i=0}^{n-1} f(x_i) abf(x)dxn1i=0n1p(xi)f(xi)=n1i=0n11/(ba)f(xi)=nbai=0n1f(xi)

1.3 分布p(x)不好采样怎么办?

假设我们知道概率分布p(x),但是这个概率分布不常见,不知道怎么采样。我们可以借助容易采样的分布q(x)来对p(x)进行采样。方法如下:

  1. 首先选择一个k,使得 p ( x ) ⩽ k q ( x ) p(x)\leqslant kq(x) p(x)kq(x)
  2. 然后我们依照q(x)分布采样一个 x 0 x_0 x0
  3. 然后我们在均匀分布[0,kq(x_0)]区间随机选择一个点 z 0 z_0 z0
  4. z 0 ⩽ p ( x 0 ) z_0\leqslant p(x_0) z0p(x0),则接受这个采样点 x 0 x_0 x0,否则,就丢弃这个采样点;
  5. 重复上述步骤即可得到符合p(x)分布的样本点。

2 什么是吉布斯采样

如果一个分布,既无法直接采样,也无法借助上文中的方法进行采样呢?如下:

  1. 不知道分布 p ( x , y ) p(x,y) p(x,y),只知道其条件分布 p ( x ∣ y ) , p ( y ∣ x ) p(x|y),p(y|x) p(xy),p(yx),无法利用上面的方法得到符合 p ( x , y ) p(x,y) p(x,y)分布的样本点
  2. 高维的概率分布 p ( x 1 , x 2 , . . . , x n ) p(x_1,x_2,...,x_n) p(x1,x2,...,xn),找不到分布q满足 p ⩽ k q p\leqslant kq pkq

此时,我们就要引入马尔可夫链,借助马尔可夫链的一些特性来解决采样的问题。

2.1 马尔可夫链

2.1.1 什么是马尔可夫链呢?

简单来说就是一个状态转移过程,且当前状态只跟前一个状态有关。以股市为例,假设有牛市,熊市,横盘三种状态,牛市有0.3的概率保持牛市,有0.2的概率转为熊市,有0.5的概率横盘,这种转移过程就是马尔可夫链。
转移过程会有一个初始状态 π ( x o ) \pi (x_o) π(xo),会有一个状态空间,还有一个状态转移矩阵P。
转移过程中,若出现 π ( x n − 1 ) P = π ( x n ) = π ( x n − 1 ) \pi (x_{n-1}) P=\pi (x_{n})=\pi (x_{n-1}) π(xn1)P=π(xn)=π(xn1) ,即 π P = π \pi P=\pi πP=π,则称概率分布 π \pi π是状态转移矩阵P的平稳分布。也称其为平稳的马尔可夫链。
马尔可夫链还有一些比较好的性质:
性质:给定初始状态 π ( x 0 ) \pi (x_0) π(x0),给定转移矩阵P,n轮之后, π \pi π会收敛。且稳定后的 π \pi π与初始状态 π ( x 0 ) \pi (x_0) π(x0)无关。
性质:对于给定的转移矩阵 P P P, P n P^n Pn在n大于一定值的时候是确定的。

2.1.2 为什么我们要引入马尔可夫链?

其实马尔可夫链真正对我们有用的是这个公式: π P = π \pi P=\pi πP=π
其中 π \pi π是我们想要采样的分布,P是一个状态转移矩阵。
我们只要找到这样的P,就可以把对分布 π ( x ) \pi(x) π(x)进行采样,转化为一个转移过程,因为转移过程中生成的样本点,就是我们想要的符合 π ( x ) \pi(x) π(x)分布的样本点。

2.1.3 对给定的分布 π \pi π,怎么找到对应的P,使得其为平稳马尔可夫过程

有一个细致平稳条件:
π ( i ) P ( i , j ) = π ( j ) P ( j , i ) \pi (i)P(i,j)=\pi (j)P(j,i) π(i)P(i,j)=π(j)P(j,i)

由细致平稳条件,我们就能得到 π P = π \pi P=\pi πP=π,推导如下:
∑ i π ( i ) P ( i , j ) = ∑ i π ( j ) P ( j , i ) = π ( j ) ∑ i P ( j , i ) = π ( j ) \sum_i\pi (i)P(i,j)=\sum_i\pi (j)P(j,i)=\pi (j)\sum_iP(j,i)=\pi (j) iπ(i)P(i,j)=iπ(j)P(j,i)=π(j)iP(j,i)=π(j)
上式就是 π P = π \pi P=\pi πP=π 元素展开形式。

所以我们只要找到满足细致平稳条件的P,就能利用马尔可夫链对 π \pi π采样了。

2.2 MCMC采样

假设 π ( x ) \pi (x) π(x)为我们期望进行采样的目标分布, Q Q Q为状态转移矩阵,其不一定满足细致平稳条件 π ( i ) Q ( i , j ) = π ( j ) Q ( j , i ) \pi (i)Q(i,j)=\pi (j)Q(j,i) π(i)Q(i,j)=π(j)Q(j,i).

为了使其满足细致平稳条件,我们引入一个 α ( i , j ) \alpha(i,j) α(i,j),使得下式成立:
π ( i ) Q ( i , j ) α ( i , j ) = π ( j ) Q ( j , i ) α ( j , i ) \pi (i)Q(i,j)\alpha(i,j)=\pi (j)Q(j,i)\alpha(j,i) π(i)Q(i,j)α(i,j)=π(j)Q(j,i)α(j,i)
此时对应的 ,状态转移矩阵 P ( i , j ) = Q ( i , j ) α ( i , j ) P(i,j)=Q(i,j)\alpha(i,j) P(i,j)=Q(i,j)α(i,j)

怎么才能找到这样的 α ( i , j ) \alpha(i,j) α(i,j)呢?其实只要 α ( i , j ) \alpha(i,j) α(i,j)满足下面条件即可:
α ( i , j ) = π ( j ) Q ( j , i ) α ( j , i ) = π ( i ) Q ( i , j ) \alpha(i,j)=\pi (j)Q(j,i)\\ \alpha(j,i)=\pi (i)Q(i,j) α(i,j)=π(j)Q(j,i)α(j,i)=π(i)Q(i,j)
上面两个式子是等价的,我们只需直接令 α ( i , j ) = π ( j ) Q ( j , i ) \alpha(i,j)=\pi (j)Q(j,i) α(i,j)=π(j)Q(j,i)就行了。

其中, α ( i , j ) \alpha(i,j) α(i,j)我们称之为接受率。有点类似蒙特卡洛采样那里的接受-拒绝方法。

MCMC采样过程如下:

  1. 已知状态转移矩阵Q,分布 π ( x ) \pi (x) π(x)。设状态转移次数阈值为 n 1 n_1 n1,需要样本个数为 n 2 n_2 n2
  2. 从任意指定初始状态 x 0 x_0 x0,令 t = 0 t=0 t=0.
  3. while t < n 1 + n 2 t<n_1+n_2 t<n1+n2
    a. 从条件分布 Q ( x ∣ x t ) Q(x|x_t) Q(xxt)中采样得到样本 x ∗ x_* x
    b. 从[0,1]均匀分布采样得到u
    c. 若 u ≤ α ( x t , x ∗ ) = π ( x ∗ ) Q ( x ∗ , x t ) u\leq\alpha(x_t,x_*)=\pi (x_*)Q(x_*,x_t) uα(xt,x)=π(x)Q(x,xt), 则接受转移,即 x t + 1 = x ∗ x_{t+1}=x_* xt+1=x,t++
    d. 否则,不接受转移。t不变。
  4. 最后得到的样本集 x n 1 , x n 1 + 1 , . . . , x n 1 + n 2 − 1 x_{n_1},x_{n_1+1},...,x_{n_1+n_2-1} xn1,xn1+1,...,xn1+n21就是我们需要的采样结果。

2.3 M-H采样

M-H采样是Metropolis Hastings采样的简称。

MCMC已经解决了我们的采样问题,但是其样本接受率可能比较低,就是 α ( x t , x ∗ ) \alpha(x_t,x_*) α(xt,x)可能为0.1,0.001,这样采样次数就会比较多,浪费了很多时间。怎样提高接受率呢?
观察细致平稳条件
π ( i ) Q ( i , j ) α ( i , j ) = π ( j ) Q ( j , i ) α ( j , i ) , 其中 α ( i , j ) = π ( j ) Q ( j , i ) \pi (i)Q(i,j)\alpha(i,j)=\pi (j)Q(j,i)\alpha(j,i) , 其中\alpha(i,j)=\pi (j)Q(j,i) π(i)Q(i,j)α(i,j)=π(j)Q(j,i)α(j,i),其中α(i,j)=π(j)Q(j,i)
我们知道,在两边同时乘以一个数字,或者除以一个非0数字,细致平稳条件也是满足的。所以对上式两边同乘 min ⁡ { α ( j , i ) , α ( i , j ) } \min \{\alpha(j,i),\alpha(i,j)\} min{α(j,i),α(i,j)},可得下式:
π ( i ) Q ( i , j ) α ( i , j ) ∗ min ⁡ { α ( j , i ) , α ( i , j ) } = π ( j ) Q ( j , i ) α ( j , i ) ∗ min ⁡ { α ( j , i ) , α ( i , j ) } \pi (i)Q(i,j)\alpha(i,j)*\min \{\alpha(j,i),\alpha(i,j)\}=\pi (j)Q(j,i)\alpha(j,i) *\min \{\alpha(j,i),\alpha(i,j)\} π(i)Q(i,j)α(i,j)min{α(j,i),α(i,j)}=π(j)Q(j,i)α(j,i)min{α(j,i),α(i,j)}
然后两边再同时除以 α ( j , i ) ∗ α ( i , j ) \alpha(j,i)*\alpha(i,j) α(j,i)α(i,j),得:
π ( i ) Q ( i , j ) ∗ min ⁡ { 1 , α ( i , j ) α ( j , i ) } = π ( j ) Q ( j , i ) ∗ min ⁡ { α ( j , i ) α ( i , j ) , 1 } \pi (i)Q(i,j)*\min \{1,\frac{\alpha(i,j)}{\alpha(j,i)}\}=\pi (j)Q(j,i)*\min \{\frac{\alpha(j,i)}{\alpha(i,j)},1\} π(i)Q(i,j)min{1,α(j,i)α(i,j)}=π(j)Q(j,i)min{α(i,j)α(j,i),1}
所以我们得到:

α n e w ( i , j ) = min ⁡ { α ( i , j ) α ( j , i ) , 1 } = min ⁡ { π ( j ) Q ( j , i ) π ( i ) Q ( i , j ) , 1 } \alpha_{new}(i,j)=\min \{\frac{\alpha(i,j)}{\alpha(j,i)},1\}=\min \{ \frac{\pi (j)Q(j,i)}{\pi (i)Q(i,j)},1\} αnew(i,j)=min{α(j,i)α(i,j),1}=min{π(i)Q(i,j)π(j)Q(j,i),1}

如果转移矩阵Q是对称的,上式可简化为:
α n e w ( i , j ) = min ⁡ { π ( j ) π ( i ) , 1 } \alpha_{new}(i,j)=\min \{ \frac{\pi (j)}{\pi (i)},1\} αnew(i,j)=min{π(i)π(j),1}

M-H采样是对MCMC方法的改进,也属于MCMC采样。

2.4 吉布斯采样(Gibbs)

但是M-H采样也有一些问题,比如

  • 当特征比较多时, π ( j ) Q ( j , i ) / π ( i ) Q ( i , j ) \pi (j)Q(j,i)/\pi (i)Q(i,j) π(j)Q(j,i)/π(i)Q(i,j)的计算比较耗时。
  • 虽然 α n e w ( i , j ) \alpha_{new}(i,j) αnew(i,j)的接受率比较大,但还是小于1的,还是有很多辛苦计算的采样点被拒绝掉。
  • 此外,很多时候我们不知道其联合分布,只知道其条件分布,那么这种情况我们就无法对联合分布进行采样。

吉布斯采样主要就是为了解决了上述问题。

  • 吉布斯采样也是一种MCMC采样方法,可以看作是M-H算法的一个特例。
  • 吉布斯采样适用于联合分布未明确知道或难以直接抽样,但每个变量的条件分布是已知的,并且很容易(或者至少更容易)从中抽样的情况。
  • 吉布斯采样之所以被看作是M-H算法的一个特例,是因为它总是以1的概率接受抽样出的值。
  • 吉布斯采样要求数据至少是两维的。M-H采样无此要求。

2.4.1 吉布斯采样原理

在MCMC采样中,我们要寻找一个满足细致平稳条件 π ( i ) P ( i , j ) = π ( j ) P ( j , i ) \pi (i)P(i,j)=\pi (j)P(j,i) π(i)P(i,j)=π(j)P(j,i)的状态转移矩阵P。

下面,我们利用条件概率的变换,来寻找这样的P。首先我们以见到那的二维情况维例:

2.4.1.1 二维情况

假设我们有状态 A = ( x 1 1 , x 2 1 ) A=(x_1^1, x_2^1) A=(x11,x21), B = ( x 1 1 , x 2 2 ) B=(x_1^1, x_2^2) B=(x11,x22), C = ( x 1 2 , x 2 1 ) C=(x_1^2,x_2^1) C=(x12,x21), 则有:
π ( A ) π ( x 2 2 ∣ x 1 1 ) = π ( x 1 1 , x 2 1 ) π ( x 2 2 ∣ x 1 1 ) = π ( x 1 1 ) π ( x 2 1 ∣ x 1 1 ) π ( x 2 2 ∣ x 1 1 ) = π ( x 1 1 ) π ( x 2 2 ∣ x 1 1 ) π ( x 2 1 ∣ x 1 1 ) = π ( x 1 1 , x 2 2 ) π ( x 2 1 ∣ x 1 1 ) = π ( B ) π ( x 2 1 ∣ x 1 1 ) \pi (A)\pi(x_2^2|x_1^1)=\pi (x_1^1,x_2^1)\pi(x_2^2|x_1^1)\\ =\pi (x_1^1)\pi (x_2^1|x_1^1)\pi(x_2^2|x_1^1) \\ =\pi (x_1^1)\pi(x_2^2|x_1^1)\pi (x_2^1|x_1^1) \\ =\pi (x_1^1,x_2^2)\pi(x_2^1|x_1^1) \\ =\pi (B)\pi(x_2^1|x_1^1) π(A)π(x22x11)=π(x11,x21)π(x22x11)=π(x11)π(x21x11)π(x22x11)=π(x11)π(x22x11)π(x21x11)=π(x11,x22)π(x21x11)=π(B)π(x21x11)
π ( A ) π ( x 1 2 ∣ x 2 1 ) = π ( x 1 1 , x 2 1 ) π ( x 1 2 ∣ x 2 1 ) = π ( x 2 1 ) π ( x 1 1 ∣ x 2 1 ) π ( x 1 2 ∣ x 2 1 ) = π ( x 2 1 ) π ( x 1 2 ∣ x 2 1 ) π ( x 1 1 ∣ x 2 1 ) = π ( x 1 2 , x 2 1 ) π ( x 1 1 ∣ x 2 1 ) = π ( C ) π ( x 1 1 ∣ x 2 1 ) \pi (A)\pi(x_1^2|x_2^1)=\pi (x_1^1,x_2^1)\pi(x_1^2|x_2^1)\\ =\pi (x_2^1)\pi (x_1^1|x_2^1)\pi(x_1^2|x_2^1) \\ =\pi (x_2^1)\pi(x_1^2|x_2^1)\pi (x_1^1|x_2^1) \\ =\pi (x_1^2,x_2^1)\pi(x_1^1|x_2^1) \\ =\pi (C)\pi(x_1^1|x_2^1) π(A)π(x12x21)=π(x11,x21)π(x12x21)=π(x21)π(x11x21)π(x12x21)=π(x21)π(x12x21)π(x11x21)=π(x12,x21)π(x11x21)=π(C)π(x11x21)

如果我们令状态转移概率矩阵P为下式:

P ( A → B ) = π ( x 2 B ∣ x 1 1 ) ,若 x 1 A = x 1 B = x 1 1 P(A \rightarrow B)=\pi(x_2^B|x_1^{1}),若x_1^A= x_1^B= x_1^1 P(AB)=π(x2Bx11),若x1A=x1B=x11
P ( A → C ) = π ( x 1 C ∣ x 2 1 ) ,若 x 2 A = x 2 C = x 2 1 P(A \rightarrow C)=\pi(x_1^C|x_2^{1}),若x_2^A= x_2^C= x_2^1 P(AC)=π(x1Cx21),若x2A=x2C=x21
P ( A → D ) = 0 ,其他情况 P(A \rightarrow D)=0,其他情况 P(AD)=0,其他情况

那么对任意两点E,F, 将满足细致平稳条件。
π ( E ) P ( E → F ) = π ( F ) P ( F → E ) \pi(E)P(E\rightarrow F)=\pi(F)P(F\rightarrow E) π(E)P(EF)=π(F)P(FE)

证明如下:
因为满足
x 1 A = x 1 B = x 1 1 x_1^A= x_1^B= x_1^1 x1A=x1B=x11
所以
P ( A → B ) = π ( x 2 B ∣ x 1 1 ) = π ( x 2 2 ∣ x 1 1 ) P ( B → A ) = π ( x 2 A ∣ x 1 1 ) = π ( x 2 1 ∣ x 1 1 ) P(A \rightarrow B)=\pi(x_2^B|x_1^{1})=\pi(x_2^2|x_1^{1}) \\ P(B \rightarrow A)=\pi(x_2^A|x_1^{1})=\pi(x_2^1|x_1^{1}) P(AB)=π(x2Bx11)=π(x22x11)P(BA)=π(x2Ax11)=π(x21x11)
所以有:
π ( A ) P ( A → B ) = π ( A ) π ( x 2 2 ∣ x 1 1 ) = π ( B ) π ( x 2 1 ∣ x 1 1 ) = π ( B ) P ( B → A ) \pi(A)P(A\rightarrow B)=\pi (A)\pi(x_2^2|x_1^1) =\pi (B)\pi(x_2^1|x_1^1) =\pi(B)P(B\rightarrow A) π(A)P(AB)=π(A)π(x22x11)=π(B)π(x21x11)=π(B)P(BA)

因为满足
x 2 A = x 2 C = x 2 1 x_2^A= x_2^C= x_2^1 x2A=x2C=x21
所以
P ( A → C ) = π ( x 1 C ∣ x 2 1 ) = π ( x 1 2 ∣ x 2 1 ) P(A \rightarrow C)=\pi(x_1^C|x_2^{1})=\pi(x_1^2|x_2^{1}) P(AC)=π(x1Cx21)=π(x12x21)
P ( C → A ) = π ( x 1 A ∣ x 2 1 ) = π ( x 1 1 ∣ x 2 1 ) P(C \rightarrow A)=\pi(x_1^A|x_2^{1})=\pi(x_1^1|x_2^{1}) P(CA)=π(x1Ax21)=π(x11x21)
所以有:
π ( A ) P ( A → C ) = π ( A ) π ( x 1 2 ∣ x 2 1 ) = π ( C ) π ( x 1 1 ∣ x 2 1 ) = π ( C ) π ( C → A ) \pi(A)P(A\rightarrow C)=\pi (A)\pi(x_1^2|x_2^1)=\pi (C)\pi(x_1^1|x_2^1)=\pi (C)\pi(C \rightarrow A) π(A)P(AC)=π(A)π(x12x21)=π(C)π(x11x21)=π(C)π(CA)

因为既不满足
x 1 A = x 1 D = x 1 1 x_1^A= x_1^D= x_1^1 x1A=x1D=x11
也不满足
x 2 A = x 2 D = x 2 1 x_2^A= x_2^D= x_2^1 x2A=x2D=x21
所以
P ( A → D ) = 0 P(A \rightarrow D)=0 P(AD)=0
P ( D → A ) = 0 P(D \rightarrow A)=0 P(DA)=0
所以有:
π ( A ) P ( A → D ) = 0 = π ( D ) π ( D → A ) \pi(A)P(A\rightarrow D)=0=\pi (D)\pi(D \rightarrow A) π(A)P(AD)=0=π(D)π(DA)

综上,得证任意两点E,F, 有
π ( E ) P ( E → F ) = π ( F ) P ( F → E ) \pi(E)P(E\rightarrow F)=\pi(F)P(F\rightarrow E) π(E)P(EF)=π(F)P(FE)

2.4.1.2 高维情况

假设假设 A = ( x 1 1 , x 2 1 , . . . , x n 1 ) A=(x_1^1,x_2^1,...,x_n^1) A=(x11,x21,...,xn1), B n = ( x 1 1 , x 2 1 , . . . x n − 1 1 , x n 2 ) B_n=(x_1^1,x_2^1,...x_{n-1}^1,x_n^2) Bn=(x11,x21,...xn11,xn2),我们有:
π ( A ) π ( x n 2 ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) = π ( x 1 1 , x 2 1 , . . . , x n 1 ) π ( x n 2 ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) = π ( x 1 1 , x 2 1 , . . . , x n − 1 1 ) π ( x n 1 ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) π ( x n 2 ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) = π ( x 1 1 , x 2 1 , . . . , x n − 1 1 ) π ( x n 2 ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) π ( x n 1 ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) = π ( x 1 1 , x 2 1 , . . . x n − 1 1 , x n 2 ) π ( x n 1 ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) = π ( B ) π ( x n 1 ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) \pi (A)\pi(x_n^2|x_1^1,x_2^1,...,x_{n-1}^1)=\pi (x_1^1,x_2^1,...,x_n^1)\pi(x_n^2|x_1^1,x_2^1,...,x_{n-1}^1)\\ =\pi (x_1^1,x_2^1,...,x_{n-1}^1)\pi (x_n^1|x_1^1,x_2^1,...,x_{n-1}^1)\pi(x_n^2|x_1^1,x_2^1,...,x_{n-1}^1) \\ =\pi (x_1^1,x_2^1,...,x_{n-1}^1)\pi(x_n^2|x_1^1,x_2^1,...,x_{n-1}^1) \pi (x_n^1|x_1^1,x_2^1,...,x_{n-1}^1)\\ =\pi (x_1^1,x_2^1,...x_{n-1}^1,x_n^2)\pi(x_n^1|x_1^1,x_2^1,...,x_{n-1}^1) \\ =\pi (B)\pi(x_n^1|x_1^1,x_2^1,...,x_{n-1}^1) π(A)π(xn2x11,x21,...,xn11)=π(x11,x21,...,xn1)π(xn2x11,x21,...,xn11)=π(x11,x21,...,xn11)π(xn1x11,x21,...,xn11)π(xn2x11,x21,...,xn11)=π(x11,x21,...,xn11)π(xn2x11,x21,...,xn11)π(xn1x11,x21,...,xn11)=π(x11,x21,...xn11,xn2)π(xn1x11,x21,...,xn11)=π(B)π(xn1x11,x21,...,xn11)

因此,如果我们令状态转移概率矩阵为下式:

  • P ( A → B n ) = π ( x n B n ∣ x 1 1 , x 2 1 , . . . , x n − 1 1 ) ,若 x i A = x i B n = x i 1 , 1 ≤ i ≤ n 且 i ≠ n . P(A \rightarrow B_n)=\pi(x_n^{B_n}|x_1^1,x_2^1,...,x_{n-1}^1),若x_i^A= x_i^{B_n}= x_i^1,1\leq i\leq n且i\neq n. P(ABn)=π(xnBnx11,x21,...,xn11),若xiA=xiBn=xi1,1ini=n.
  • P ( A → B n − 1 ) = π ( x n − 1 B n − 1 ∣ x 1 1 , x 2 1 , . . . , x n − 2 1 , x n 1 ) ,若 x i A = x i B n − 1 = x i 1 , 1 ≤ i ≤ n 且 i ≠ n − 1. P(A \rightarrow B_{n-1})=\pi(x_{n-1}^{B_{n-1}}|x_1^1,x_2^1,...,x_{n-2}^1,x_{n}^1),若x_i^A= x_i^{B_{n-1}}= x_i^1,1\leq i\leq n且i\neq n-1. P(ABn1)=π(xn1Bn1x11,x21,...,xn21,xn1),若xiA=xiBn1=xi1,1ini=n1.
  • P ( A → B j ) = π ( x j B j ∣ x 1 1 , x 2 1 , . . . , x j − 1 1 , x j + 1 1 , . . . , x n 1 ) ,若 x i A = x i B j = x i 1 , 1 ≤ i ≤ n 且 i ≠ j . P(A \rightarrow B_{j})=\pi(x_j^{B_{j}}|x_1^1,x_2^1,...,x_{j-1}^1,x_{j+1}^1,...,x_{n}^1),若x_i^A= x_i^{B_{j}}= x_i^1,1\leq i\leq n且i\neq j. P(ABj)=π(xjBjx11,x21,...,xj11,xj+11,...,xn1),若xiA=xiBj=xi1,1ini=j.
  • P ( A → B 1 ) = π ( x 1 B 1 ∣ x 2 1 , x 3 1 , . . . , x n 1 ) ,若 x i A = x i B 1 = x i 1 , 1 ≤ i ≤ n 且 i ≠ 1. P(A \rightarrow B_{1})=\pi(x_1^{B_{1}}|x_2^1,x_3^1,...,x_{n}^1),若x_i^A= x_i^{B_{1}}= x_i^1,1\leq i\leq n且i\neq 1. P(AB1)=π(x1B1x21,x31,...,xn1),若xiA=xiB1=xi1,1ini=1.
  • P ( A → D ) = 0 ,其他情况 . P(A \rightarrow D)=0,其他情况. P(AD)=0,其他情况.

那么对任意两点E,F 将满足细致平稳条件, π ( E ) P ( E → F ) = π ( F ) P ( F → E ) \pi(E)P(E\rightarrow F)=\pi(F)P(F\rightarrow E) π(E)P(EF)=π(F)P(FE)

证明过程同二维情况。


综上,状态转移矩阵P就变成了完全条件概率:
A = ( x 1 1 , x 2 1 , . . . , x n 1 ) A=(x_1^1,x_2^1,...,x_n^1) A=(x11,x21,...,xn1),
B j = ( x 1 1 , x 2 1 , . . . x j − 1 1 , x j 2 , x j + 1 1 , . . . , x n 1 ) B_j=(x_1^1,x_2^1,...x_{j-1}^1,x_{j}^2,x_{j+1}^1,...,x_n^1) Bj=(x11,x21,...xj11,xj2,xj+11,...,xn1)
P ( A → B j ) = π ( x j B j ∣ x 1 1 , x 2 1 , . . . , x j − 1 1 , x j + 1 1 , . . . , x n 1 ) P(A \rightarrow B_{j})=\pi(x_j^{B_{j}}|x_1^1,x_2^1,...,x_{j-1}^1,x_{j+1}^1,...,x_{n}^1) P(ABj)=π(xjBjx11,x21,...,xj11,xj+11,...,xn1)
此时,我们的采样过程就变成了按轴转移的过程了。想更新样本点的第j维,使用第j维的完全条件概率分布 π ( x j n e w ∣ x 1 o l d , x 2 o l d , . . . , x j − 1 o l d , x j + 1 o l d , . . . , x n o l d ) \pi(x_j^{new}|x_1^{old},x_2^{old},...,x_{j-1}^{old},x_{j+1}^{old},...,x_{n}^{old}) π(xjnewx1old,x2old,...,xj1old,xj+1old,...,xnold),即可采样得到第j维新的值 x j n e w x_j^{new} xjnew
所有维度的值都更新一遍,就能得到一个新的样本点 ( x 1 n e w , x 2 n e w , . . . , x n n e w ) (x_1^{new},x_2^{new},...,x_n^{new}) (x1new,x2new,...,xnnew)

2.4.2 吉布斯采样过程

具体采样过程如下:

  1. 随机初始化 { x i 0 : i = 1 , 2 , . . . , M } \{x_i^0:i=1,2,...,M\} {xi0:i=1,2,...,M}
  2. for τ = 0 , 1 , 2 , . . . , n 1 + n 2 − 1 \tau=0,1,2,...,n_1+n_2-1 τ=0,1,2,...,n1+n21,其中 n 1 n_1 n1是采样阈值, n 2 n_2 n2是需要的样本个数。
    采样 x 1 τ + 1 ∼ p ( x 1 ∣ x 2 τ , x 3 τ , . . . , x M τ ) x_1^{\tau+1} \sim p(x_1|x_2^{\tau},x_3^{\tau},...,x_M^{\tau}) x1τ+1p(x1x2τ,x3τ,...,xMτ)
    采样 x 2 τ + 1 ∼ p ( x 2 ∣ x 1 τ + 1 , x 3 τ , . . . , x M τ ) x_2^{\tau+1} \sim p(x_2|x_1^{\tau+1},x_3^{\tau},...,x_M^{\tau}) x2τ+1p(x2x1τ+1,x3τ,...,xMτ)

    采样 x j τ + 1 ∼ p ( x j ∣ x 1 τ + 1 , x 2 τ + 1 , . . . , x j − 1 τ + 1 , x j + 1 τ . . . , x M τ ) x_j^{\tau+1} \sim p(x_j|x_1^{\tau+1},x_2^{\tau+1},...,x_{j-1}^{\tau+1},x_{j+1}^{\tau}...,x_M^{\tau}) xjτ+1p(xjx1τ+1,x2τ+1,...,xj1τ+1,xj+1τ...,xMτ)

    采样 x M τ + 1 ∼ p ( x M ∣ x 1 τ + 1 , x 2 τ + 1 , . . . , x M − 1 τ + 1 ) x_M^{\tau+1} \sim p(x_M|x_1^{\tau+1},x_2^{\tau+1},...,x_{M-1}^{\tau+1}) xMτ+1p(xMx1τ+1,x2τ+1,...,xM1τ+1)
  3. 以此类推,得到采样点 ( x 1 n 1 , x 2 n 1 , . . . , x M n 1 ) , ( x 1 n 1 + 1 , x 2 n 1 + 1 , . . . , x M n 1 + 1 ) , . . . , ( x 1 n 1 + n 2 − 1 , x 2 n 1 + n 2 − 1 , . . . , x M n 1 + n 2 − 1 ) (x_1^{n_1},x_2^{n_1},...,x_M^{n_1}),(x_1^{n_1+1},x_2^{n_1+1},...,x_M^{n_1+1}),...,(x_1^{n_1+n_2-1},x_2^{n_1+n_2-1},...,x_M^{n_1+n_2-1}) (x1n1,x2n1,...,xMn1),(x1n1+1,x2n1+1,...,xMn1+1),...,(x1n1+n21,x2n1+n21,...,xMn1+n21)

上面过程是依次轮换坐标轴进行采样。
实际上,按照随机顺序变换坐标轴也是可以的。

参考资料

该文主要参考下面四篇文章,并加上一些自己的理解和推理细节,感谢作者,写的真好:
MCMC(一)蒙特卡罗方法
MCMC(二)马尔科夫链
MCMC(三)MCMC采样和M-H采样
MCMC(四)Gibbs采样

  • 15
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值