机器学习-白板推导系列笔记(十三)-MCMC

此文章主要是结合哔站shuhuai008大佬的白板推导视频:MCMC_218min

全部笔记的汇总贴:机器学习-白板推导系列笔记

一、蒙特卡洛方法

蒙特卡洛方法(Monte Carlo Method):基于采样的随机近似方法。
该方法旨在求得复杂概率分布下的期望值:

 ⁣ E Z ∣ x [ f ( z ) ] = ∫ p ( z ∣ x )   f ( z ) d z ≈ 1 N ∑ i = 1 N f ( z i ) \!E_{Z|x}[ f( z ) ]=\int{p( z|x )}\,f\left( z \right) \text{d}z\approx\frac{1}{N}\sum_{i=1}^N{f}\text{(}z_i\text{)} EZx[f(z)]=p(zx)f(z)dzN1i=1Nf(zi)

其中 z i z_i zi 是从概率分布 p ( z ∣ x ) p( z|x ) p(zx) 中取的样本,也就是从概率分布中取 N N N个点来近似计算这个积分。

(一)概率分布采样

  • a.求得概率密度函数PDF的累计密度函数CDF
  • b.求CDF的反函数
  • c.在0-1之间均匀取样,带入反函数,得到取样点

缺点:大部分PDF难以求得CDF

(二)拒绝采样(Rejection Sampling)

对于较复杂的概率分布 p ( z ) p( z ) p(z) ,引入简单的提议分布(proposal distribution) q ( z ) q( z ) q(z),使得任意的 M q ( z i ) ≥ p ( z i ) Mq(z_{i})\ge p(z_{i}) Mq(zi)p(zi) ,然后对 q ( z ) q( z ) q(z) 进行采样获得样本。具体的采样方法步骤为:

  • a.选择概率密度函数为 q ( z ) q( z ) q(z),作为提议分布,使其对任一 z z z满足 M q ( z i ) ≥ p ( z i ) Mq(z_{i})\ge p(z_{i}) Mq(zi)p(zi),其中 M > 0 M>0 M>0
  • b.按照提议分布随机抽样 q ( z ) q( z ) q(z)得到样本 z i z_i zi,再按照均匀分布在 ( 0 , 1 ) (0,1) (0,1)范围内抽样得到 u i u_i ui
  • c.如果 u i ≤ p ( z i ) M q ( z i ) u_i\le \frac{p( z_i)}{Mq(z_i)} uiMq(zi)p(zi),则将 z i z_i zi作为抽样结果;否则,返回步骤b;
  • d.获得 N N N个样本,即结束。

优点:容易实现
缺点:采样效率可能不高

如果 p ( z ) p(z) p(z)的涵盖体积占 M q ( z ) Mq(z) Mq(z)的涵盖体积的比例很低,就会导致拒绝的比例很高,抽样效率很低。
一般是在高维空间抽样,会遇到维度灾难的问题,即使 p ( z ) p(z) p(z) M q ( z ) Mq(z) Mq(z)很接近,两者涵盖体积的差异也可能很大。

(三)重要性采样(Importance Sampling)

直接对期望 E p ( z ) [ f ( z ) ] E_{p(z)}[f(z)] Ep(z)[f(z)]进行采样

引入另一个分布 q ( z ) q( z ) q(z)

 ⁣ E p ( z ) [ f ( z ) ] = ∫ p ( z )   f ( z ) d z = ∫ p ( z ) q ( z ) q ( z )   f ( z ) d z = ∫ f ( z ) p ( z ) q ( z ) q ( z ) d z ≈ 1 N ∑ i = 1 N f ( z i ) p ( z i ) q ( z i ) ⏟ w e i g h t z i ∼ q ( z ) , i = 1 , 2 , ⋯   , N \!E_{p\left( z \right)}\left[ f\left(z \right) \right] =\int{p\left( z \right)}\,f\left( z \right) \text{d}z \\=\int{\frac{p\left(z\right)}{q\left(z \right)}}q\left(z \right) \,f\left( z \right) \text{d}z \\=\int{f}\left( z \right) \frac{p\left( z \right)}{q\left( z \right)}q\left( z \right) \text{d}z \\\approx \frac{1}{N}\sum_{i=1}^N{f}\text{(}z_i\text{)}\underset{weight}{\underbrace{\frac{p\left( z_i \right)}{q\left( z_i \right)}}} \\z_{i} \sim q(z),i=1,2,\cdots,N Ep(z)[f(z)]=p(z)f(z)dz=q(z)p(z)q(z)f(z)dz=f(z)q(z)p(z)q(z)dzN1i=1Nfziweight q(zi)p(zi)ziq(z),i=1,2,,N

于是在 q ( z ) q( z ) q(z)中采样,并通过权重计算和。

缺点:权重⾮常⼩的时候,效率非常低

重要性采样有⼀个变种 Sampling Importance Resampling,这种方法,首先和上面⼀样进行采样,然后在采样出来的N个样本中,重新采样,这个重新采样,使⽤每个样本点的权重作为概率分布进行采样。

二、齐次马尔可夫链

马尔可夫链:时间和状态都是离散的

(一)齐次马尔可夫链(一阶马尔可夫链)

X = { X 0 , X 1 , ⋯   , X t , ⋯   } X=\{X_0,X_1,\cdots,X_t,\cdots\} X={ X0,X1,,Xt,}其中 X t X_t Xt表示 t t t时刻的随机变量,并且每个随机变量的取值空间相同。
如果 X t X_t Xt只依赖于 X t − 1 X_{t-1} Xt1,而不依赖于 { X 0 , X 1 , ⋯   , X t − 2 } \{X_0,X_1,\cdots,X_{t-2}\} { X0,X1,,Xt2},则称这一性质为马尔可夫性,即

P ( X t ∣ X 1 , X 2 , ⋯   , X t − 1 ) = P ( X t ∣ X t − 1 ) , t = 1 , 2 , ⋯ P(X_t|X_1,X_2,\cdots,X_{t-1})=P(X_t|X_{t-1}),t=1,2,\cdots P(XtX1,X2,,Xt1)=P(XtXt1),t=1,2,

具有马尔可夫性的随机序列 X = { X 0 , X 1 , ⋯   , X t , ⋯   } X=\{X_0,X_1,\cdots,X_t,\cdots\} X={ X0,X1,,Xt,}称为马尔可夫链(Markov Chain),或马尔可夫过程(Markov Process)。条件概率分布 P ( X t ∣ X t − 1 ) P(X_t|X_{t-1}) P(XtXt1)称为马尔可夫链的转移概率分布。

当转移概率分布 P ( X t ∣ X t − 1 ) P(X_t|X_{t-1}) P(XtXt1) t t t无关,也就是说不同时刻的转移概率是相同的,则称该马尔可夫链为时间齐次的马尔可夫链(Time Homogenous Markov Chain),形式化的表达是:

P ( X t + s ∣ X t − 1 + s ) = P ( X t ∣ X t − 1 ) , t = 1 , 2 , ⋯   ; s = 1 , 2 , ⋯ P(X_{t+s}|X_{t-1+s})=P(X_t|X_{t-1}),t=1,2,\cdots;s=1,2,\cdots P(Xt+sXt1+s)=P(XtXt1),t=1,2,;s=1,2,

(二)概率转移矩阵

如果马尔可夫链的随机变量 X t ( t = 0 , 1 , 2 , ⋯   ) X_{t}(t=0,1,2,\cdots ) Xt(t=0,1,2,)定义在离散空间,则转移概率分布可以由矩阵表示。若马尔可夫链在时刻 t − 1 t-1 t1处于状态 j j j,在时刻t移动到状态 i i i,将转移概率记作:
q i j = ( X t = i ∣ X t − 1 = j ) , i = 1 , 2 , ⋯   ;      j = 1 , 2 , ⋯ q_{ij}=(X_{t}=i|X_{t-1}=j),i=1,2,\cdots ;\; \; j=1,2,\cdots qij=(Xt=iXt1=j),i=1,2,;j=1,2,
满足: q i j ≥ 0 ,      ∑ i q i j = 1 q_{ij}\geq 0,\; \; \sum _{i}q_{ij}=1 qij0,iqij=1
马尔可夫链的转移概率可以由矩阵表示,状态转移矩阵:(随机矩阵)

Q = [ Q 11 Q 12 Q 13 ⋯ Q 1 k Q 21 Q 22 Q 23 ⋯ Q 2 k Q 31 Q 32 Q 33 ⋯ Q 3 k ⋯ ⋯ ⋯ ⋯ ⋯ Q k 1 Q k 2 Q k 3 ⋯ Q k k ] k ∗ k p i j ≥ 0 ,      ∑ i p i j = 1 Q=\begin{bmatrix} Q_{11} & Q_{12} & Q_{13} & \cdots& Q_{1k} \\ Q_{21} & Q_{22} & Q_{23} & \cdots & Q_{2k}\\ Q_{31} & Q_{32} & Q_{33} & \cdots& Q_{3k} \\ \cdots & \cdots & \cdots & \cdots& \cdots\\ Q_{k1} & Q_{k2} & Q_{k3} & \cdots& Q_{kk} \end{bmatrix}_{k*k}\\ p_{ij}\geq 0,\; \; \sum _{i}p_{ij}=1 Q=Q11Q21Q31Qk1Q12Q22Q32Qk2Q13Q23Q33Qk3Q1kQ2kQ3kQkkkkpij0,ipij=1

q ( t + 1 ) = [ ( q ( t + 1 ) ( x = 1 ) q ( t + 1 ) ( x = 2 ) ⋯ q ( t + 1 ) ( x = k ) ) ] 1 ∗ k q^{(t+1)}=\begin{bmatrix} (q^{(t+1)}(x=1) & q^{(t+1)}(x=2) & \cdots &q^{(t+1)}(x=k))\end{bmatrix}_{1*k} q(t+1)=[(q(t+1)(x=1)q(t+1)(x=2)q(t+1)(x=k))]1k

q ( t + 1 ) ( x = j ) = ∑ i = 1 k q ( t ) ( x = i ) Q i j q^{(t+1)}(x=j)=\sum_{i=1}^k{q^{(t)}(x=i)Q_{ij}} q(t+1)(x=j)=

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值