LDA主题模型之随机模拟算法

本文介绍了马尔科夫链蒙特卡洛(MCMC)方法,重点讲解了随机模拟算法如何在LDA主题模型中发挥作用。通过马尔科夫链的概念,解释了马氏链的收敛性质,并探讨了如何构建满足细致平稳条件的转移矩阵以生成特定分布的样本。最后,通过Gibbs Sampling算法展示了在二维情况下的应用,并讨论了其在高维情况下的推广。
摘要由CSDN通过智能技术生成
  • 随机模拟MCMC

    ​   在计算机技术已经如此强大的今天,生成大量随机数是很容易的事情,这样一来,这种模拟能力就能被用于解决一些数学上难以解决的问题(例如求蝙蝠侠图案的面积),这种随机模拟的方法又叫做蒙特卡洛方法。

    ​   其中很重要的一个应用就是给定一个概率分布然后由计算机生成其样本,从算法上来说,生成均匀分布的样本是比较容易的,通过线性同余发生器就能生成这样的样本,如果要生成其他一些分布的样本,一般来说可以对均匀分布的样本进行变换得到,例如正态分布可以通过Box-Muller变换得到。

    ​   但是当要求的概率分布函数形式复杂或高维的时候,如何将均匀分布的样本变换过去就变成很难的问题,这时候就要更一般的但也更复杂的模拟方法来生成样本。马氏链蒙特卡洛方法(MCMC)就是其中的一种。

    1. 马尔科夫链

      ​   马尔科夫链简单来说就是状态空间中经过从一个状态到另一个状态的转换的随机过程。这个过程具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,与之前的状态没有关系。

      ​   当前状态如何跳转到下一状态是由状态转移概率决定的,例如下图表明了各个子状态之间跳转的概率。对于图中的状态1,其下一状态还是1的概率为0.65,下一状态是2的概率是0.28,是3的概率为0.07

      ​   上图表示成转移概率矩阵为:

      P=0.650.150.120.280.670.360.070.180.52 P = [ 0.65 0.28 0.07 0.15 0.67 0.18 0.12 0.36 0.52 ]

      ​   以这个马氏链为例,假如初始状态的概率分布是 π0=[0.21,0.68,0.11] π 0 = [ 0.21 , 0.68 , 0.11 ] ,那么经过多次跳转之后将会发现最后概率分布会稳定下来,最终的概率分布为 π=[0.286,0.489,0.225] π = [ 0.286 , 0.489 , 0.225 ] ,而且,就算改变了初始状态的概率分布,其最终也会稳定成一样的概率分布,虽然这个收敛的过程和速度不一样。这就说明这个收敛性质和初始状态没关系,它仅仅由状态转移矩阵P决定。

      ​   其实只要计算一下 Pn P n 就能很容易知道为什么这个神奇了,计算之后发现当n大于等于20的时候矩阵就不变了

      P20=P21==P100==0.2860.2860.2860.4890.4890.4890.2250.2250.225 P 20 = P 21 = ⋯ = P 100 = ⋯ = [ 0.286 0.489 0.225 0.286 0.489 0.225 0.286 0.489 0.225 ]

      ​   很容易知道,对于任一概率分布,例如[a,b,c],乘以上述的稳定的矩阵之后得到的都是[0.286,0.489,0.225],因此收敛后的概率分布必定是 π=[0.286,0.489,0.225] π = [ 0.286 , 0.489 , 0.225 ] 。 收敛性质并不是唯独这个马氏链才有,但也不是所有马氏链都有收敛的性质。关于收敛性质,有一个已经证明的定理:

      ​   定理 :如果一个非周期马氏链具有转移概率矩阵P,且它的任何两个状态是连通的,那么 limnPij lim n → ∞ P i j 存在且与i无关,记 limnPnij=π(j) lim n → ∞ P i j n = π ( j ) , 也就是

      limnPn=π(1)π(1)π(1)π(2)π(2)π(2)π(j)π(j)π(j) lim n → ∞ P n = [ π ( 1 ) π ( 2 ) ⋯ π ( j ) ⋯ π ( 1 ) π ( 2 ) ⋯ π ( j ) ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ π ( 1 ) π ( 2 ) ⋯ π ( j ) ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ]

      ​   同时,很容易知道有这样的性质 — π(j)=i=0π(i)Pij π ( j ) = ∑ i = 0 ∞ π ( i ) P i j 而且 π π 是方程 πP=π π P = π 的唯一非负解(其中 π π 是概率分布,即 i=0πi=1 ∑ i = 0 ∞ π i = 1 )。

      ​   上述定理中提及的两个状态i,j是连通并非指i 可以直接一步转移到j( Pij>0 P i j > 0 ),而是指 i 可以通过有限的n步转移到达j( Pnij>0 P i j n > 0 )。马氏链的任何两个状态是连通的含义是指存在一个n, 使得矩阵 Pn P n 中的任何一个元素的数值都大于零

    2. MCMC

      ​   根据上面马氏链的定理,可以看到马氏链能收敛到一个稳定的分布 π π ,既然它能收敛到稳定分布 π π ,那么在这个已经收敛的马氏链上产生的状态就是符合这个稳定分布 π π 的!!!因此这个性质完全可以利用起来用来产生符合某个分布 π π 的样本!

      ​   那如何控制马氏链使得它最终稳定的分布就是我们想要的分布呢,其实上一节中已经给出答案了,马氏链收敛后的分布是由其转移矩阵决定的,与其他的因素无关,因此我们想利用马氏链的性质来产生符合某分布的样本的关键点是如何构造这样的转移矩阵,使得最终的平稳分布就是我们想要的分布。

      ​   要构造这样的矩阵需要用到下述定理来做桥梁:

      细致平稳条件定理:如果非周期的马氏链的转移矩阵P和分布 π π

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值