MCMC抽样与LDA参数求解

本文介绍了MCMC抽样方法,包括逆变换采样、拒绝采样、马尔科夫链及其在LDA主题模型参数求解中的应用。通过Gibbs采样更新文档中词的主题,从而获取主题分布。
摘要由CSDN通过智能技术生成

一、 MCMC抽样

也许读者会觉得诧异,为什么在一本介绍主题模型的书中却看到了抽样的知识?作者是不是偏题了?

答案当然是没有。

相信你应该听说过有一门课程叫做统计学,在这门课程中,抽样占据着举足轻重的地位。当统计学的研究者们想要了解一个总体的某些参数时,他们的方案是,先去抽样获得样本,通过样本参数去估计总体参数。比如,想知道某财经高校学生们(总体)的平均月消费水平(总体参数),做法是:a.先抽样一部分样本,如从每个学院抽取20个人去调查他们的月消费水平,假设有20个学院,那么就获得了400个人(样本)的月消费水平;b.算出这400个样本的平均月消费水平(样本参数);c.可以认为该财经高校学生们的平均月消费水平估计为这400个样本的平均月消费水平。

本篇的MCMC抽样与LDA主题模型的关系类比统计学里的抽样。在LDA主题模型的参数求解中,我们会使用MCMC抽样去做。

MCMC四个字母的含义

第一个MC ,是Monte Carlo(蒙特卡洛)的首字母缩写。本篇的蒙特卡洛指一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。采样过程通常通过计算机来来实现。

蒙特卡洛此名由乌拉姆提出,事实上蒙特卡洛是摩纳哥公国的一座城市,是著名的赌场,世人称之为“赌博之国”。众人皆知,赌博总是和统计密切关联的,所以这个命名风趣而贴切、不仅有意思而且有意义。

第二个MC:Markov Chain(马尔科夫链)。这是MCMC抽样中很重要的一个思想,将会在后篇细讲。

(一)逆变换采样

刚刚有提到,蒙特卡洛指一种随机模拟方法,通常通过计算机来实现。然而,从本质上来说,计算机只能实现对均匀分布的采样。在此基础上对更为复杂的分布进行采样,应该怎么做呢?这就需要用到逆变换采样:

温故两个定义

对于随机变量 X,如下定义的函数 F:

F(x)=PXx,<x< F ( x ) = P X ≤ x , − ∞ < x < ∞

称为X 的 累积分布函数。对于连续型随机变量 X 的累积分布函数 F(x),如果存在一个定义在实数轴上的非负函数 f(x),使得对于任意实数 x,有下式成立:
F(x)=f(t)dt F ( x ) = ∫ f ( t ) d t

则称 f(x) 为 X 的 概率密度函数。显然,当概率密度函数存在的时候,累积分布函数是概率密度函数的积分。概率等于区间乘概率密度。

步骤

欲对密度函数 fx f ( x ) 采样,并得到m 个观察值,则重复下面的步骤 m 次:

1、从Uniform(0,1)中随机生成一个值,用 u 表示。

2、计算反函数 F(1)(u) F ( − 1 ) ( u ) 的值 x,则x 就是从 f(x) f ( x ) 中得出的一个采样点。

举例:

想对一个复杂概率密度函数 f(x) f ( x ) 抽样,其概率密度形式如下:

F(x)=8x,if0x<0.258383x,if0.25x<1 0,otherwise F ( x ) = { 8 x , i f 0 ≤ x < 0.25 8 3 − 8 3 x , i f 0.25 ≤ x < 1   0 , o t h e r w i s e

1、求 f(x) f ( x ) 的累计分布函数 F(x) F ( x )
F(x)=0,ifx<04x2,if0x<0.2583x43x213,if0.25x<1 1,ifx>1 F ( x ) = { 0 , i f x < 0 4 x 2 , i f 0 ≤ x < 0.25 8 3 x − 4 3 x 2 − 1 3 , i f 0.25 ≤ x < 1   1 , i f x > 1

2、求 F(x) F ( x ) 的反函数: F(1)(u) F ( − 1 ) ( u )
F(x)=u2,if0u<0.2513(1u)2,if0.25x<1  F ( x ) = { u 2 , i f 0 ≤ u < 0.25 1 − 3 ( 1 − u ) 2 , i f 0.25 ≤ x < 1  

重复m次逆变换采样以下步骤:从Uniform(0,1)中随机生成一个值,用 u 表示。计算反函数 F(1)(u) F ( − 1 ) ( u ) 的值 x,则x 就是从 f(x) f ( x ) 中得出的一个采样点。最终将采样点图像(蓝色)与实际密度函数(红色)比较,得图如下:

![这里写图片描述](https://img-blog.csdn.net/20180309142510837?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbTBfMzc3ODgzMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 可以看到两条线几乎重合,这表明逆变换采样可以很好的模拟出某些复杂分布。 **存在问题:** 逆变换采样有求解累积分布函数和反函数这两个过程,而有些分布的概率分布函数可能很难通过对概率密度p(x)的积分得到,再或者概率分布函数的反函数也很不容易求。这个时候应该怎么办呢?此时提出了拒绝采样的解决方案。

(二)拒绝采样

欲对逆变换采样不再适用的密度函数 p(x) p ( x ) 采样,如果能找到另外一个概率密度为 q(x) q ( x ) 的函数,它相对容易采样。如采用逆变换采样方法可以很容易对 q(x) q ( x ) 进行采样,甚至 q(x) q ( x ) 就是计算机可以直接模拟的均匀分布。此时我们可直接对 q(x) q ( x ) 采样,然后按照一定的方法拒绝某些样本,达到接近 p(x) p ( x ) 分布的目的。

步骤
![这里写图片描述](https://img-blog.csdn.net/20180309142551680?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbTBfMzc3ODgzMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 当我们将 q(x) q ( x ) 与一个常数 K 相乘之后,可以实现下图所示之关系,即 K⋅q(x)将p(x)完全“罩住”:p(x) ≤Kq(x)。重复以下步骤抽样: •x 轴方向:从q(x)分布抽样得到 Z0 Z 0 。 •y 轴方向:从均匀分布 0,Kq(Z0)) ( 0 , K q ( Z 0 ) ) 中抽样得到 u0 u 0 。 •如果刚好落到灰色区域,否则接受这次抽样: u0 u 0 > p(Z0) p ( Z 0 ) , 拒绝该样本。 •重复以上过程。
举例:利用拒绝采样计算 π π
![这里写图片描述](https://img-blog.csdn.net/20180309142639562?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbTBfMzc3ODgzMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 如图所示,阴影区域有一个边长为1的正方形,正方形里有一个半径为1的1/4圆。则有:S(1/4圆)= 1/4*π*R^2= 1/4π;S(正方形)=1。现在对这个正方形随机取点,某点到原点的距离小于1,则说明它在1/4圆内。可以认为,落在圆内的次数/取点总次数=1/4圆的面积/正方形的面积。即: π=4s() π = 4 ∗ s ( 正 方 形 ) ∗ 落 在 圆 内 的 次 数 取 点 总 次 数 随着采样点的增多,最后的结果π会越精准。 这里也就是用到了拒绝采样的思想。要计算 π π 值,即寻求对圆这个复杂分布抽样,圆不好搞定,于是我们选择了一个相对容易的正方形分布,在对正方形随机取点的时候,如果某点到原点的距离小于1,则说明它在1/4圆内,接受这个样本,否则拒绝它。 而抽样的时候; 基于以上思想我们可以利用计算机建模。

(三)马尔科夫链

马尔科夫链就是第二个MC:Markov Chain。定义为:根据概率分布,可以从一个状态转移到另一个状态,但是状态转移之间服从马氏性的一种分布。

解释一下定义中提到的两个名词:

马氏性:状态转移的概率只依赖与他的前一状态。数学表达为: P(Xn+1=k|Xn=kn,Xn1=kn1,,X1=k1)=P(Xn+1=k|Xn=kn) P ( X n + 1 = k | X n = k n , X n − 1 = k n − 1 , … , X 1 = k 1 ) = P ( X n + 1 = k | X n = k n )
状态转移:状态的改变叫做转移(状态可以向自身转移),与不同的状态改变相关的概率叫做转移概率。 q(i,j)=q(j|i)=

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值