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

2023-11-10


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采样

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是吉布斯采样(Gibbs Sampling) 的相关文章

  • 【机器学习】线性回归【上】朴素最小二乘估计

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 由于字数限制 分成两篇博客 机器学习 线性回归 上 朴素最小二乘估计 机器学习 线性回归 下 正则化最小二乘估计 提醒 下文中的 alpha 和 lambda
  • 损失与损失函数L1、L2、MSE

    损失 是一个数值 表示对样本而言模型预测的准确程度 如果模型的预测完全正确 则损失为零 反之损失会很大 训练模型的目标是从所有的样本当中 找到一组损失较小的权重与偏差 其 损失较小 的考量取决于具体需要 损失函数 L1损失 基于模型预测的值
  • Applications(4)

    CONTENTS Other Applications In this section we cover a few other types of applications of deep learning that are differe
  • 连续型随机变量密度函数与累积密度函数

    1 连续性随机变量的概率密度函数 注意 f x 是非负的可积函数 以及在负无穷到正无穷区间内的累积概率为1 累积概率的取值区间是从负无穷到正无穷 但是概率密度函数的取值并不是从负无穷到正无穷 尤其是在实际问题中 比如说报童模型中的报纸订购量
  • 统计学习系列之参数估计

    参数估计 1 什么是参数估计 简单来说是 参数估计是指使用样本统计量估计总体的参数的 百度百科的解释如下 参数估计 parameter estimation 统计推断的一种 根据从总体中抽取的随机样本来估计总体分布中未知参数的过程 从估计形
  • 概率与统计——概率分布

    离散概率分布 一 伯努利分布 Bernoulli distribution 伯努利分布又称 0 1分布 两点分布 伯努利分布指的是对于随机变量X有 参数为p 0
  • 2023 hdu 第10场 1004 Do you Like Interactive Problem

    Problem Description 现在有一个整数 x x x 1 x n
  • 蓝桥杯历届试题-小朋友排队

    题目 题目链接 题解 树状数组求逆序对 好早之前写过逆序对的三种求法 看明白了树状数组求逆序对的方法后本题就很轻松了 本题思路 高矮不满足要求的相邻两个小朋友要互换位置 且二者的不高兴程度都是增加 所以对于某个小朋友而言 其左侧的高个会与其
  • 统计学笔记(四)概率与概率分布

    文章目录 1 随机事件及其概率 1 1 随机事件的几个基本概念 1 2 事件的概率 2 离散型随机变量及其分布 2 1 基本概念 2 2 分布 2 2 1 二项分布 2 2 2 泊松分布 3 连续型随机变量的概率分布 3 1 基本概念 3
  • 人工智能数学基础--概率与统计9:概率运算、加法公理、事件的独立性、概率乘法定理、条件概率、全概率公式以及贝叶斯公式

    一 概述 这大半年都很忙 学习时间太少 导致概率论的学习停滞不前 期间AI大佬herosunly推荐了陈希孺老先生的概率论教材 与最开始学习的美版M R 斯皮格尔等著作的 概率与统计 表示差异比较大 具体请见 人工智能数学基础 概率与统计7
  • 光线追踪渲染实战(五):低差异序列与重要性采样,加速收敛!

    项目代码仓库 GitHub https github com AKGWSB EzRT gitee https gitee com AKGWSB EzRT 目录 前言 1 低差异序列介绍 2 sobol 序列及其实现 2 1 生成矩阵与递推式
  • 概率论入门

    概率论入门 导论 概率论解决随机问题的本质 就是把局部的随机性转变为整体上的确定性 概率论的产生 能让我们对未来随机事件发生做出数学上的确定性判断 这是概率论的思想基石 概率论作为一种数学工具的基本思路 正式基于这种整体的 全局性的思考框架
  • KaTeX数学公式输入

    序号 运算符 输入 举例 举例代码 1 x y
  • 题目:洛谷1088 火星人(排列组合问题)

    题目描述 人类终于登上了火星的土地并且见到了神秘的火星人 人类和火星人都无法理解对方的语言 但是我们的科学家发明了一种用数字交流的方法 这种交流方法是这样的 首先 火星人把一个非常大的数字告诉人类科学家 科学家破解这个数字的含义后 再把一个
  • 交叉熵损失

    什么是交叉熵损失 提起损失 我们最熟悉的可能就是MSE 最小均方误差损失了 MSE通俗理解 就是预测值与真实值之间取个差 再求平方 交叉熵损失也是一种衡量预测值与真实值之间的差异的方式 两者的定义不同 适用的范围也不同 通常来说 交叉熵损失
  • Laplace smoothing in Naïve Bayes algorithm(拉普拉斯平滑)

    在这里转载只是为了让不能够科学搜索的同学们看到好文章而已 个人无收益只是分享知识 顺手做个记录罢了 原网址 https towardsdatascience com laplace smoothing in na C3 AFve bayes
  • 先验概率及后验概率等解释

    20201010 0 引言 在学习统计学的时候 在概率估计的部分 经常会遇到最大似然估计 最大后验估计等名词 这些似然和后验 都跟贝叶斯准则中的一些名词定义有关 这里参考书籍 Think Bayes 这部书 来记录这些名词 1 由糖果例子来
  • 机器学习十大算法之四:SVM(支持向量机)

    SVM 支持向量机 支持向量机 Support Vector Machine 是一种十分常见的分类器 曾经火爆十余年 分类能力强于NN 整体实力比肩LR与RF 核心思路是通过构造分割面将数据进行分离 寻找到一个超平面使样本分成两类 并且间隔
  • 2021.9.5笔试题

    第一题 题目 找x y target 数字特别大 可能会溢出 代码 include
  • 条件概率密度

    设二维随机变量 的概率密度为 关于 的边缘概率密度为 若对于固定的 有 则称 为在 条件下的 的条件概率密度 记为

随机推荐

  • angular2系列教程(六)两种pipe:函数式编程与面向对象编程

    今天 我们要讲的是angualr2的pipe这个知识点 例子 这个例子包含两个pipe 一个是stateful 一个是stateless 是直接复制官方的例子 最新的官网文档已经将其改为了pure和impure 并移除了面向对象的比喻 个人
  • 基于SSM实现校园互助论坛平台

    作者简介 Java 前端 Python开发多年 做过高程 项目经理 架构师 主要内容 Java项目开发 Python项目开发 大学数据和AI项目开发 单片机项目设计 面试技术整理 最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码
  • JAVA 使用web3j接入以太坊(一)

    第一步先创建maven项目 在项目的pom文件依赖中添加web3j
  • JWT简介及使用

    JWT简介及使用 JWT JWT能做什么 认证流程 为什么需要JWT jwt结构 JWT使用 java jwt jjwt JWT工具类编写 JWT整合springboot JWT整合Springboot优化 JWT jwt json web
  • 机器学习实战python版第二章示例:手写识别系统

    手写识别系统和前面的例子差不多 我们所需要做的就是把图数据转换成一维数组数据 数据准备 def img2vector filename returnVect zeros 1 1024 创建一行1024列的数组 fr open filenam
  • tcpdump 移植

    一 环境介绍 1 1 宿主机 1 2 嵌入式平台 1 3 交叉工具链 二 交叉编译 2 1 先编译 tcpdump 4 8 1 依赖的模块 2 2 编译 tcpdump 4 8 1 三 使用测试 一 环境介绍 1 1 宿主机 Ubuntu
  • 如何用IDEA配置数据库链接

    版本 idea 2021 2 MySQL5 7 很多小伙伴在idea中写SQL语句会爆红 可能就是因为idea没有与数据库进行连接 导致不识别数据库中的关键字 下面讲解一下如何配置idea与数据库的连接 步骤如下 第一步 打开idea 找到
  • Excel:如何实现分组内的升序和降序?

    一 POWER 1 构建辅助列D列 在D2单元格输入公式 POWER 10 COUNTA A 2 A2 3 C2 2 选中B1 D10 注意不能宣导A列的合并单元格 进行以下操作 3 删除辅助列即可 二 COUNTA 第一步 D2建立辅助列
  • SQL Server期末复习要点(一)

    1 SQL Server所提供的服务中 MSSQLServer是最核心的一部分 2 SERVER2005常规标识符是哪些 算术运算符 逻辑运算符 赋值运算符 字符串串联运算符 按位运算符 一元运算符及比较运算符等 3 聚合函数的使用 max
  • DirectX教程(8):全屏显示

    使游戏全屏显示很容易 但是需要更改程序的一些细节 并添加几行代码 在本节中 我们将介绍两件事 首先 我们将介绍如何全球化你的屏幕分辨率以及为什么要这样做 其次 我们将介绍如何使窗口进行全屏模式并再次返回的机制 设置屏幕尺寸 在你的Direc
  • 刷脸智慧化经营助商家高效运营店铺新方式

    迈入5G后 网速在变 生活方式在变 商家的运营模式也应该做出改变 智慧数字经营 助力商家高效运营店铺的新方式 时代的发展速度之快 越来越出乎意料 从2G到3G 再从3G到4G 乃至现在的5G 发展从未停滞 一直在快步向前 快到我们还在对4G
  • leetcode——189.轮转数组(C语言2种思路)

    文章目录 1 题目 2 解法1 开辟新数组 2 1 思路 2 2 代码实现 3 解法2 翻转法 3 1 思路 3 2 代码实现 1 题目 给定一个整数数组 nums 将数组中的元素向右轮转 k 个位置 其中 k 是非负数 示例1 输入 nu
  • maven 打包时后缀加时间

    规范的包名对开发及运维人员的记录及备份是有益的 如何在maven 打包时后缀加时间 在原有打包plugin后面加如下代码
  • 数据结构:面试题目-专项练习-栈-习题练习

    1 下列关于栈叙述正确的是 正确答案 D 你的答案 D 正确 算法就是程序 设计算法时只需要考虑数据结构的设计 设计算法时只需要考虑结果的可靠性 以上三种说法都不对 解析 A 程序是数据结构 算法 错 B C 设计一个算法时 考虑的因素很多
  • 迅为i.MX6ULL开发板Platform设备驱动运行测试

    文章目录 1 编译驱动和设备程序 2 编译应用测试程序 3 运行测试 1 编译驱动和设备程序 和前面章节中驱动测试程序一样需要一个Makefile文件 只是将obj m的值改为led device o led driver o Makefi
  • vue项目初始化出现tar ENOENT: no such file or directory错误的解决办法。

    在npm install时 出现了tar ENOENT no such file or directory报错 原因 node的版本问题 解决办法 全局环境下更新node版本 或者使用公司内部包装过后的的 node 按照顺序运行下面的语句
  • 认识磁盘阵列柜性能

    一个 SCSI 硬盘的平均故障间隔时间 MTBF Mean Time Between Failure 都在数万 小时以上 在正常使用情况下 要坏掉一个硬盘已经很不容易了 在同一系统内 两个磁 盘驱动器同时坏掉的机率 更是微乎其微 但是 如果
  • Python中 ddt 数据驱动的小细节

    文章目录 前言 一 什么是DDT 二 安装ddt 三 基本原理和用法 总结 前言 记录ddt用法的一些小细节 一 什么是DDT DDT是 Data Driven Tests 的缩写 数据驱动测试 既然是测试 那么就要与单元测试框架一起使用
  • IDEA 4种解决控制台中文乱码问题

    前言 IntelliJ IDEA 如果不进行配置的话 运行程序时控制台中文乱码问题会非常严重 严重影响我们对信息的获取和程序的跟踪 我总结以下 4 点用于解决控制台中文乱码问题 希望有助于大家 注意 下面根据我日常工作的经验总结 排序的先后
  • 什么是吉布斯采样(Gibbs Sampling)

    目录 1 蒙特卡洛方法 1 1 蒙特卡洛方法的作用 1 2 非均匀分布采样 1 3 分布p x 不好采样怎么办 2 什么是吉布斯采样 2 1 马尔可夫链 2 1 1 什么是马尔可夫链呢 2 1 2 为什么我们要引入马尔可夫链 2 1 3 对