【机器学习系列】MCMC第一讲:蒙特卡罗方法初认识


作者:CHEONG

公众号:AI机器学习与知识图谱

研究方向:自然语言处理与知识图谱

阅读本文之前,首先注意以下两点:

1. 机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看。

2. 文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号【AI机器学习与知识图谱】后回复:MCMC第一讲,可添加微信号【17865190919】进学习交流群,加好友时备注来自CSDN。原创不易,转载请告知并注明出处!

本文主要介绍蒙特卡罗方法的基本思想和三种常用的采样策略,


本文结论

结论1: 蒙特卡罗方法是一种基于采用的随机近似方法,蒙特卡罗方法一个基本的用途可用于近似求解Intractable的积分问题。MCMC(Markov Chain & Monte Carlo)便是利用了蒙特卡洛法思想的一种基于采样的近似推断方法。

结论2: 本文介绍三种常用的采样方法:概率分布采样,拒绝采样和重要性采样。正文部分将详细给出每种采样策略具体的采样处理过程。


蒙特卡洛方法Monte Carlo Method,一种基于采样的随机近似方法,蒙特卡洛法可用于求积分,举个例子:

X X X:观测数据Observed Data

Z Z Z:隐变量Latent Variable

现在给出如下期望的积分求解公式,假设下面的积分无法直接求出:

在这里插入图片描述

下面使用蒙特卡洛法,从后验概率 p ( z ∣ x ) p(z|x) p(zx)中进行N次随机采样得到一下N个样本:

在这里插入图片描述

这样便可以近似得出上述的积分值:

在这里插入图片描述

同理,如果某个后验概率不好直接求出,我们可以先将其先转化为求期望的问题,然后通过蒙特卡洛法便可间接的近似求后验概率 p ( z ∣ x ) p(z|x) p(zx)。按照这种方式便可将图的Inference求后验概率问题转化为如何从复杂的后验概率分布 p ( z ∣ x ) p(z|x) p(zx)中进行采样。接下来就简单介绍三种常用的采样策略,分别是:概率分布采样,拒绝采样和重要性采样。


一、概率分布采样

概率分布采样核心思想:假设概率密度函数 p ( z ) p(z) p(z)很复杂,无法直接从 p ( z ) p(z) p(z)中进行采样,根据概率密度函数 p ( z ) p(z) p(z)求出其累积分布函数 c d f cdf cdf,这样可以从 c d f cdf cdf中进行采样,然后再通过 c d f cdf cdf的反函数$ c d f − 1 cdf^{-1} cdf1间接的从 p ( z ) p(z) p(z)中采样,下面介绍采样的具体步骤。

如下图所示,蓝色线对应的是某个高斯分布的概率密度函数 p d f pdf pdf,橙色线对应的高斯分布的累计密度函数 c d f cdf cdf c d f cdf cdf的函数值是从0到1的,因此产生随机数的步骤如下:

a. 利用U(0,1)随机数生成器产生0到1之间的随机数 u i u_i ui

b. 利用 c d f cdf cdf的反函数,根据函数值 u i u_i ui求出其对应的 x i x_i xi值便可得到随机数, x i = c d f − 1 ( u i ) x_i=cdf^{-1}(u_i) xi=cdf1(ui)

在这里插入图片描述

基于概率分布采样方法存在的缺陷是:对于有些情况,根据 p d f pdf pdf求解 c d f cdf cdf是十分复杂的,很多甚至是求不出来的,所以使用的情况很有限。


二、拒绝采样

下面直接给出拒绝采样的具体步骤,如下图所示现在需要对 p ( x ) p(x) p(x)采样,但 p ( x ) p(x) p(x)很复杂无法直接采样,因此引入十分容易采样的函数 q ( x ) q(x) q(x),并且引入一个常量 M M M使得

在这里插入图片描述

始终满足,这里令

在这里插入图片描述

则拒绝采样的步骤如下:

a.先从 f ( x ) f(x) f(x)进行一次采样得到 x i x_i xi

b.计算采样样本 x i x_i xi的接受概率:

在这里插入图片描述

c.从(0,1)均匀分布中进行一次随机采样得到 u i u_i ui

d.如果 α ≥ u i \alpha \geq u_i αui,则接受 x i x_i xi作为 p ( x ) p(x) p(x)的一次采样,否则重复上述步骤继续进行采样。

在这里插入图片描述

拒绝采样采样效率是较高的,但存在的问题是假设一个容易采样的 q ( x ) q(x) q(x)的难度是十分高的。


三、重要性采样

在介绍重要性采样方法前,先给出如下求解问题,求函数 f ( x ) f(x) f(x)在概率分布 p ( x ) p(x) p(x)下的期望值:

在这里插入图片描述

如果无法直接求解分,可以通过对概率分布 p ( x ) p(x) p(x)进行采样来计算期望值。如果概率分布 p ( x ) p(x) p(x)无法直接采样,接下来看重要性采样的处理方式。

重要性采样的思想便和拒绝采样相似,同样引入一个更容易采样的概率分布 q ( x ) q(x) q(x),从 q ( x ) q(x) q(x)中采样得到样本: x 1 , x 2 , . . . , x n {x_1,x_2,...,x_n} x1,x2,...,xn,则有:

在这里插入图片描述

这样便可将上面的积分式看成是函数 p ( x ) / q ( x ) ∗ f ( x ) p(x)/q(x)*f(x) p(x)/q(x)f(x)定义在概率分布 q ( x ) q(x) q(x)上的期望,因此可得

在这里插入图片描述

其中

在这里插入图片描述

上式就是重要性权重,通过从概率分布 q ( x ) q(x) q(x)采样来达到目的。

重要性采样缺陷:对于重要性权重过大或者过小对于采样都不好,因此重要性采样有一个变种:采样重要性重采样Sampling-Importance-Resampling:权重如下公式:

在这里插入图片描述

将权重当成采样样本[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EBZrGVxu-1617967579128)(file:///C:/Users/zl_sd/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png)]的分布,那么根据如下的权重分布,对第一次采样的样本 x 1 , x 2 , . . . , x n {x_1,x_2,...,x_n} x1,x2,...,xn进行二次采样:

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值