当前位置: 首页 > news >正文

机器学习 [白板推导](十)[马尔可夫链蒙特卡洛法]

13. 马尔可夫链蒙特卡洛法(Markov Chain & Monte Carlo,MCMC)

13.1. 蒙特卡洛方法简介

  在推断中的近似推断问题中,常常会使用随机近似推断方法,例如最经典的MCMC,核心思想是蒙特卡洛方法,即基于采样的随机近似方法。

  例如,要计算推断中的期望 Ez[f(z)]E_{z}\left[f(z) \right ]Ez[f(z)],假设随机变量 zzz 是连续/无限取值的离散,则对其求期望常常是困难的(连续-积分/无限离散-无穷级数),此时可以随机采样 NNN 个样本 {z1,z2,⋯ ,zN}\left \{ z_1,z_2,\cdots,z_N \right \}{z1,z2,,zN},则期望的估计值为 Ez[f(z)]=mean{f(z1),f(z2),⋯ ,f(zN)}E_{z}\left[f(z) \right ]=\text{mean}\left \{ f(z_1),f(z_2),\cdots,f(z_N) \right \}Ez[f(z)]=mean{f(z1),f(z2),,f(zN)}

  蒙特卡洛方法中常常使用以下采样方法:

  • 概率分布采样:利用变量的概率分布 p(z)p(z)p(z) 进行随机数生成,但这个方法仅限概率分布简单的情况;

  • Adjection Sampling (接收-拒绝采样法):

    • 当随机变量的概率分布 p(z)p(z)p(z) 较为复杂时,可以设一个简单分布 q(z)q(z)q(z),以及寻找一个常数 MMM,使得定义域上的任意 ∀ zi,  M⋅q(z)⩾p(z)\forall \ z_i,\ \ M\cdot q(z)\geqslant p(z) zi,  Mq(z)p(z)
    • 引入一个新的参数 α(z)=p(z)M⋅q(z)\alpha(z)=\frac{p(z)}{M\cdot q(z)}α(z)=Mq(z)p(z),称为接收率,其值在0-1之间,且越接近1表示 p(z)p(z)p(z)M⋅q(z)M\cdot q(z)Mq(z) 越接近;
    • 此时可以从简单分布 q(z)q(z)q(z) 中进行采样,每采样一个 ziz_izi 的同时也从均匀分布 U(0,1)U(0,1)U(0,1) 中采样一个 uiu_iui,当 ui⩽α(zi)u_i\leqslant \alpha(z_i)uiα(zi) 时,接受采样结果,否则拒绝,需要重新采样;
    • 这种采样方法又叫接受-拒绝法,其优点是容易实现,缺点是效率低,如果 p(z)p(z)p(z) 所含面积占 M⋅q(z)M\cdot q(z)Mq(z) 所含面积比例过小,则采样很容易被拒绝,需要重新采样,类似的,如果待采样变量维度过高,也很容易采样被拒绝;
  • 重要度采样:同样设一个简单分布 q(z)q(z)q(z),则原本难算的期望 Ez[f(x)]=∫zp(z)f(z)dz=∫zp(z)q(z)f(z)⋅q(z)dz=Eq(z)[p(z)q(z)f(z)]E_z\left[f(x) \right ]=\int_zp(z)f(z)dz=\int_z\frac{p(z)}{q(z)}f(z)\cdot q(z)dz=E_{q(z)}\left[\frac{p(z)}{q(z)}f(z) \right ]Ez[f(x)]=zp(z)f(z)dz=zq(z)p(z)f(z)q(z)dz=Eq(z)[q(z)p(z)f(z)] 可以化为另外一个期望,使得原本从 p(z)p(z)p(z) 中采样的困难转为从简单分布 q(z)q(z)q(z) 中采样,而 p(z)q(z)\frac{p(z)}{q(z)}q(z)p(z) 称为重要度;

13.2. 马尔科夫链简介

  马尔可夫链p(xt)=p(x∣x1,x2,⋯ ,xt−1)p(x_t)=p(x|x_1, x_2, \cdots, x_{t-1})p(xt)=p(xx1,x2,,xt1),其中 xtx_txt 表示序列上某个步/时间的样本,若一阶马尔可夫,则 p(xt)=p(x∣xt−1)p(x_t)=p(x|x_{t-1})p(xt)=p(xxt1),序列上所有随机变量的取值集合相同,被称为状态空间 SSSp(xt)=p(x∣xt−1)p(x_t)=p(x|x_{t-1})p(xt)=p(xxt1) 被称为 t 时刻的状态转移函数

  这里只讨论一阶马尔可夫链,因为更高阶的马尔可夫链可以推导转换为一阶马尔科夫链,同时若任意的 sss,有 P(xt+s∣xt+s−1)=P(xt∣xt−1)P(x_{t+s}|x_{t+s-1})=P(x_t|x_{t-1})P(xt+sxt+s1)=P(xtxt1),则称为时间齐次的马尔可夫链,这里也只讨论时间齐次的马尔科夫链。

  对于状态空间 SSS 全部是离散值的马尔可夫链,其所有的状态转移函数可以写作一个矩阵,即 { pij=P(Xt=i∣Xt−1=j) }\left \{ \ p_{ij}=P(X_t=i|X_{t-1}=j) \ \right \}{ pij=P(Xt=iXt1=j) },称为状态转移矩阵,满足 ∑ipij=1\sum_{i}p_{ij}=1ipij=1

  基于状态转移函数,马尔可夫链可以表示为,对 ttt 时刻,取值为 iii 的概率为 P(xt=i)=∑jpij⋅P(xt−1=j)=∑jpij⋅∑kpjkP(xt−2=k)=⋯P(x_t=i)=\sum_{j}p_{ij}\cdot P(x_{t-1}=j)=\sum_{j}p_{ij}\cdot \sum_kp_{jk} P(x_{t-2}=k)=\cdotsP(xt=i)=jpijP(xt1=j)=jpijkpjkP(xt2=k)=,为了方便表示,设矩阵 ΠS×T={πi(t)}=P(xt=i)\Pi_{S\times T}=\{ \pi_i(t) \}=P(x_t=i)ΠS×T={πi(t)}=P(xt=i),即为将每一步的计算值存储下来便于后面的计算,其中 π⃗(0)=[πS0(0),πS1(0),⋯ ]T\vec{\pi}(0) =\left [ \pi_{S_0}(0), \pi_{S_1}(0), \cdots \right ]^Tπ(0)=[πS0(0),πS1(0),]T 被称为初始状态分布,常常是个独热向量,表示马尔可夫链从某个固定状态开始。

  如果马尔可夫链的状态空间上存在某个分布 π⃗=[πS0,πS1,⋯ ]T\vec{\pi}=\left [ \pi_{S_0}, \pi_{S_1}, \cdots \right ]^Tπ=[πS0,πS1,]T,使得 π=Pπ\pi=P\piπ=Pπ,则称该分布为平稳分布,如果马尔可夫链进入平稳分布,则其接下来的状态分布较为平稳,变化很小,同时一个马尔可夫链可能存在唯一的平稳分布,无穷多个平稳分步,或不存在平稳分布。

  马尔可夫链的性质:

  • 可约性:若对于任意初始状态 x0=ix_0=ix0=i 和任意状态 jjj,都至少存在一个时刻 t>0t>0t>0,使得 P(xt=j∣x0=i)>0P(x_t=j|x_0=i)>0P(xt=jx0=i)>0,则说明任意初始状态经过一定时间可以到达任意状态,这种情况称马尔可夫链式不可约的,否则,说明从某个状态出发会永远到不了其他某些状态,这个马尔可夫链称为可约的。
  • 周期性:对任意初始状态 x0=ix_0=ix0=i,若其经过一定时间后可以回到状态 xt=ix_t=ixt=i,且所有最短途径时长 {ti}\left \{ t_i \right \}{ti} 的最大公约数不为1,则称该马尔科夫链具有周期性,否则是非周期的。
  • 正常返:定义 pijtp_{ij}^tpijt 表示 P(xt=i,xt−m≠i∣x0=j)P(x_t=i,x_{t-m}\neq i|x_0=j)P(xt=i,xtm=ix0=j),即从状态 jjj 出发,经过 ttt 时间首次来到状态 iii 的概率,若对任意 jjjiii,都有 lim⁡t→∞pijt>0\lim_{t \to \infty }p_{ij}^t>0limtpijt>0,则称为正常返的马尔科夫链,否则称为不是正常返。
  • 可逆性:对于一个马尔可夫链,若存在一种状态分布 π⃗=[π0,π1,⋯ ]\vec{\pi}=[\pi_0, \pi_1, \cdots]π=[π0,π1,],使得任意两个状态 i,ji,ji,j 都有 P(xt=i∣xt−1=j)⋅P(xt−1=j)=P(xt=j∣xt−1=i)⋅P(xt−1=i)P(x_t=i|x_{t-1}=j)\cdot P(x_{t-1}=j)=P(x_t=j|x_{t-1}=i)\cdot P(x_{t-1}=i)P(xt=ixt1=j)P(xt1=j)=P(xt=jxt1=i)P(xt1=i),即 pijπj=pjiπip_{ij}\pi_j=p_{ji}\pi_ipijπj=pjiπi(该式被称作细致平衡方程,detailed balance),则称该马尔可夫链是可逆的。

  马尔可夫链性质的定理:

  • 不可约且非周期的有限状态马尔可夫链一定有唯一平稳分布存在;
  • 不可约且非周期,正常返的马尔可夫链一定有唯一平稳分布存在;
  • 遍历定理:对于一个不可约,非周期,正常返的马尔可夫链,设其唯一的平稳分布为 π⃗\vec{\pi}π,则对于任意初始状态 x0=jx_0=jx0=j,有 lim⁡t→∞P(xt=i∣x0=j)=πi\lim_{t \to \infty } P(x_t=i|x_0=j)=\pi_ilimtP(xt=ix0=j)=πi,也就是无论初始状态,未来经过无限时刻,状态分布都会趋近于平稳分布,同时对于一个定义在状态空间上的函数 f(x),x∈Sf(x),x\in Sf(x),xS,则 limt→∞1t∑k=1tf(xk)→Eπ⃗ [f(x)]=∑if(Si)πilim_{t \to \infty}\frac{1}{t}\sum_{k=1}^tf(x_k) \to E_{\vec{\pi}}\ [f(x)]=\sum _if(S_i)\pi_ilimtt1k=1tf(xk)Eπ [f(x)]=if(Si)πi
  • 满足细致平稳方程的分布就是该马尔可夫链的平稳分布。

13.3. MCMC算法

  MCMC适用于随机变量高维且相互不独立,密度函数复杂的情况,在这样的分布中求某个函数的期望 Ep(x)[f(x)]E_{p(x)}\left [f(x) \right ]Ep(x)[f(x)],主要思想是在随机变量的状态空间(所有取值)上定义一个满足便利定理的马尔可夫链,则其平稳分布下函数值的加权平均即为函数的数学期望。

  因此MCMC计算期望的方法为 E^[f]=1n−m∑i=m+1nf(xi)\hat{E}[f]=\frac{1}{n-m}\sum_{i=m+1}^{n}f(x_i)E^[f]=nm1i=m+1nf(xi),其中 mmm 是一个较大的数,使得 t>mt>mt>m 时的 xtx_txt 分布趋于平稳分布,在 mmm 之前的遍历称为燃烧期

  因为马尔科夫链满足遍历定理,所以随机游走的起点不影响最终结果,因为都会收敛到平稳分布,这个方法比接收-拒绝采样法效率高;

13.3.1. Metropolis-Hastings算法

  在MCMC算法中,第一个难点是定义一个马尔可夫链用于随机游走,使其满足遍历定理,无论从任何起点出发都将收敛到平稳分布,对于离散分布,要定义状态转移矩阵 {pij=P(xt=i∣xt−1=j)}\left \{ p_{ij}=P(x_t=i|x_{t-1}=j) \right \}{pij=P(xt=ixt1=j)},对于连续分布,要定义状态转移核函数 p(i,j)=P(xt=i∣xt−1=j)p(i,j)=P(x_t=i|x_{t-1}=j)p(i,j)=P(xt=ixt1=j)

  在MH算法中,可以定义一个建议分布 q(i,j)q(i,j)q(i,j) 较为简单易于操作,以及一个接收分布 α(i,j)=min⁡{1,p(j)q(i,j)p(i)q(j,i)}\alpha (i,j)=\min \{ 1,\frac{p(j)q(i,j)}{p(i)q(j,i)} \}α(i,j)=min{1,p(i)q(j,i)p(j)q(i,j)},则转移核 p(i,j)=q(i,j)α(i,j)={q(i,j)p(j)q(i,j)⩾p(i)q(j,i)q(j,i)⋅p(i)p(j)p(j)q(i,j)<p(i)q(j,i)p(i,j)=q(i,j)\alpha (i,j)=\left\{\begin{matrix} q(i,j) & p(j)q(i,j)\geqslant p(i)q(j,i)\\ q(j,i)\cdot \frac{p(i)}{p(j)} & p(j)q(i,j)< p(i)q(j,i) \end{matrix}\right.p(i,j)=q(i,j)α(i,j)={q(i,j)q(j,i)p(j)p(i)p(j)q(i,j)p(i)q(j,i)p(j)q(i,j)<p(i)q(j,i)

  通俗理解,MH算法的流程为,定义一个简易分布 q(i,j)q(i,j)q(i,j),作为转移函数进行随机游走,每次从状态 xt−1=jx_{t-1}=jxt1=j 转移到状态 iii 时,计算接受分布 α(i,j)=min⁡{1,p(j)q(i,j)p(i)q(j,i)}\alpha (i,j)=\min \{ 1,\frac{p(j)q(i,j)}{p(i)q(j,i)} \}α(i,j)=min{1,p(i)q(j,i)p(j)q(i,j)},并在0-1之间采样随机数 uuu,若 u<α(i,j)u<\alpha (i,j)u<α(i,j) 则状态转移成功,xt=ix_{t}=ixt=i,否则停留在原状态 xt=jx_{t}=jxt=j

  由:
p(j)p(i,j)=p(j){q(i,j)p(j)q(i,j)⩾p(i)q(j,i)q(j,i)⋅p(i)p(j)p(j)q(i,j)<p(i)q(j,i)={p(j)q(i,j)p(j)q(i,j)⩾p(i)q(j,i)p(i)q(j,i)p(j)q(i,j)<p(i)q(j,i)=p(i){q(i,j)⋅p(j)p(i)p(j)q(i,j)⩾p(i)q(j,i)q(j,i)p(j)q(i,j)<p(i)q(j,i)=p(i)p(j,i) \begin{aligned} p(j)p(i,j)&=p(j)\left\{\begin{matrix} q(i,j) & p(j)q(i,j)\geqslant p(i)q(j,i)\\ q(j,i)\cdot \frac{p(i)}{p(j)} & p(j)q(i,j)< p(i)q(j,i) \end{matrix}\right.\\ &=\left\{\begin{matrix} p(j)q(i,j) & p(j)q(i,j)\geqslant p(i)q(j,i)\\ p(i) q(j,i) & p(j)q(i,j)< p(i)q(j,i) \end{matrix}\right.\\ &=p(i)\left\{\begin{matrix} q(i,j)\cdot \frac{p(j)}{p(i)} & p(j)q(i,j)\geqslant p(i)q(j,i)\\ q(j,i) & p(j)q(i,j)< p(i)q(j,i) \end{matrix}\right.\\ &=p(i)p(j,i) \end{aligned} p(j)p(i,j)=p(j){q(i,j)q(j,i)p(j)p(i)p(j)q(i,j)p(i)q(j,i)p(j)q(i,j)<p(i)q(j,i)={p(j)q(i,j)p(i)q(j,i)p(j)q(i,j)p(i)q(j,i)p(j)q(i,j)<p(i)q(j,i)=p(i){q(i,j)p(i)p(j)q(j,i)p(j)q(i,j)p(i)q(j,i)p(j)q(i,j)<p(i)q(j,i)=p(i)p(j,i)
满足细致平衡方程,因此上面所定义的转移核函数是可逆的,即存在某个分布 p(x)p(x)p(x) 使得 p(i)p(j,i)=p(j)p(i,j)p(i)p(j,i)=p(j)p(i,j)p(i)p(j,i)=p(j)p(i,j),同时该分布为平稳分布。

  Metropolis选择:将建议分布设为可逆分布,即 q(i,j)=q(j,i)q(i,j)=q(j,i)q(i,j)=q(j,i),此时接收分布简化为 α(i,j)=min⁡{1,p(j)p(i)}\alpha(i,j)=\min\{ 1,\frac{p(j)}{p(i)} \}α(i,j)=min{1,p(i)p(j)},这是MH算法最初采用的方法,将 q(i,j)q(i,j)q(i,j) 定义为一个以 jjj 为均值,方差为常数矩阵的正态分布,或是其他在 jjj 附近概率较高的简单分布。

  单分量Metropolis-Hastings算法:当多元变量分布抽样困难时,可以逐步对变量的每一个维度的分量进行抽样,此时建议分布变为 q(xt(m)∣xt(−m),xt−1(m))q(x_t^{(m)}|x_t^{(-m)},x_{t-1}^{(m)})q(xt(m)xt(m),xt1(m)),其中 xt(m)x_t^{(m)}xt(m) 为t时刻状态的第 mmm 个分量,xt(−m)={xt(1),xt(2),⋯ ,xt(m−1),xt−1(m+1),⋯ ,xt−1(K)}x_t^{(-m)}=\{ x_t^{(1)}, x_t^{(2)}, \cdots, x_t^{(m-1)}, x_{t-1}^{(m+1)}, \cdots, x_{t-1}^{(K)} \}xt(m)={xt(1),xt(2),,xt(m1),xt1(m+1),,xt1(K)},类似于每次固定 K−1K-1K1 个维度,更新一个维度的过程,同时接受分布 α(xt(m)∣xt−1(m),xt(−m))=min⁡{1,p(xt(m)∣xt(−m))q(xt−1(m)∣xt(m),xt(−m))p(xt−1(m)∣xt(−m))q(xt(m)∣xt−1(m),xt(−m))}\alpha (x_t^{(m)}|x_{t-1}^{(m)}, x_t^{(-m)})=\min\{ 1,\frac{p(x_{t}^{(m)}|x_{t}^{(-m)})q(x_{t-1}^{(m)}|x_{t}^{(m)}, x_{t}^{(-m)})}{p(x_{t-1}^{(m)}|x_{t}^{(-m)})q(x_t^{(m)}|x_{t-1}^{(m)}, x_{t}^{(-m)})} \}α(xt(m)xt1(m),xt(m))=min{1,p(xt1(m)xt(m))q(xt(m)xt1(m),xt(m))p(xt(m)xt(m))q(xt1(m)xt(m),xt(m))}

13.3.2. 吉布斯抽样

  满条件分布:对于一个多元概率联合分布 p(x),x=[x(1),x(2),⋯ ,x(K)]Tp(x),x=[x^{(1)}, x^{(2)}, \cdots, x^{(K)}]^Tp(x),x=[x(1),x(2),,x(K)]T,定义一个条件概率分布 p(xI∣x−I)p(x^I|x^{-I})p(xIxI),其中 III 是变量维度的一个子集,即 xI={x(m),m∈I},x−I={x(m),m∉I}x^I=\{ x^{(m)},m\in I \}, x^{-I}=\{ x^{(m)},m\notin I \}xI={x(m),mI},xI={x(m),m/I},也就是所有维度都在括号里出现,无论在 | 之前还是之后,这个条件概率分布叫做满条件分布,满条件分布满足性质:p(xt−1I∣(xt−1−I)p(xtI∣(xt−I)=p(xt−1)p(xt)\frac{p(x^I_{t-1}|(x^{-I}_{t-1})}{p(x^I_{t}|(x^{-I}_{t})}=\frac{p(x_{t-1})}{p(x_{t})}p(xtI(xtI)p(xt1I(xt1I)=p(xt)p(xt1),左边计算大大方便,因此可以用满条件分布简化一些计算。

  吉布斯抽样的方法类似于单分量MH算法,不同的是吉布斯抽样使用 xt−1x_{t-1}xt1 的满条件分布代替建议分布,由于满条件分布比例于原分布的性质,使用满条件分布可以完全模拟原分布 p(x)p(x)p(x),因此无需MH算法中的接受分布,或者说接受率为1.

http://www.dtcms.com/a/327865.html

相关文章:

  • 机试备考笔记11/31
  • Elasticsearch JS 自定义 ConnectionPool / Connection / Serializer、敏感信息脱敏与 v8 平滑迁移
  • 数据结构——栈和队列2
  • JAiRouter 0.2.1 更新啦:内存优化 + 配置合并 + IP 限流增强,运维体验再升级
  • TCP/IP、socket、http
  • 5分钟精通 useMemo
  • Ubuntu-初始化环境
  • Kafka的一条消息的写入和读取过程原理介绍
  • SQL脚本--捞json数据
  • 【SpringBoot】08 容器功能 - SpringBoot底层注解汇总大全
  • CPPIO流
  • 熟悉并使用Spring框架 - XML篇
  • 深度学习自动并行技术:突破计算瓶颈的智能调度艺术
  • Qwen-OCR:开源OCR技术的演进与全面分析
  • 机器学习-决策树(上)
  • 小黑课堂计算机一级WPSOffice题库安装包1.44_Win中文_计算机一级考试_安装教程
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-会议记录
  • 91、23种经典设计模式
  • STM32即插即用HAL库驱动系列——4位串行数码管显示
  • Pandas数据处理与分析实战:Pandas数据处理与分析入门-选择与过滤
  • uniapp -- 小程序处理与设备通讯 GBK/GB2312 编码问题。
  • 记一次 .NET 某汽车控制焊接软件 卡死分析
  • 腾讯云terraform学习教程
  • 传输线的效应
  • 【MAUI】在 .NET MAUI 中实现全局异常捕获的完整指南
  • 五、Nginx、RabbitMQ和Redis在Linux中的安装和部署
  • DAY41 简单CNN
  • PostgreSQL——数据查询
  • PyCharm Community 2024.2.3.exe 安装教程(详细步骤,附安装包下载)
  • Docker守护进程安全加固在香港VPS环境的操作标准