MCMC采样

在介绍《Fast and Provably Good Seedings for K-means》时,作者使用MCMC采样来近似 D2sampling 的过程,下面我们来介绍一下MCMC算法。

Monte Carlo Approach

在介绍MCMC算法之前,我们先来看蒙特卡洛随机模拟算法。

假设我们需要求解下面这个积分问题:

m=baf(x)d(x)

而这个 f(x) 的积分形式比较难求,我们可以通过数值模拟解法近似求解。常用的方法是蒙特卡洛算法:

m=baf(x)q(x)q(x)d(x)

式中的 q(x) 可以看作 x 在区间上的分布,当我们使用 q(x) 采集足够的样本后,便可以使用均值来近似积分:

m=1ni=1Nf(xi)q(xi)

以上便是蒙特卡洛算法的核心思想,具体操作时就是需要考虑如何从给定的概率分布 (x) 中采集足够的样本。下面我们来介绍两种简单的采样算法。

采样算法

CDF

假设我们想以 p(x) 的概率采集一些数据,

  1. 我们可以先求出它的累积概率函数:
    F(x)=bap(x)d(x)   s.t.a<x<b

    2.然后使用均匀分布产生一个样本点 u
    uu(a,b)

    3.最后我们求解出反函数 F1(u)
    x=F1(u)

    4. x 便可以看作是按照 p(x) 采样得到的样本点

我们可以看一个正态分布的例子:

这里写图片描述

左图是概率密度函数PDF- p(x) ,右图是对应的累计概率密度函数CDF- F(x) .
我们先随机生成一个样本点 u=0.8413 F1(u)=1 ,所以1就是相应的样本点。
直觉上看,我们随机选择 (0,1) 之间的点,大部分点都i会落在区间 (0.2,0.8) 之间,而与之对应的 F1(x) 则大部分落在 (1,1) 之间,这也对应了正态分布在 (1,1) 之间概率密度较大的事实。

这种方法只适用于简单的分布。

Markov Chain

对于某一些马尔科夫链,它能够收敛到一个平稳分布 π(x) ,即:

π=πP

当马尔可夫链在第 n 个状态收敛之后,从 n+1 往后的状态都可以看作是平稳分布 π 的采样点。
所以为了构造一个以 π 为平稳分布的马尔科夫链,我们需要满足细致平衡条件:

π(i)P(i,j)=π(j)P(j,i)

Metropolis Sampler

这里写图片描述

M算法要求提案概率 q(x) 是对称的。

Metropolis-Hastings Sampler

这里写图片描述

MH算法加入了 α ,不要求提案概率是对称的,也能满足细致平衡条件。

这两个算法的区别在于提案概率是否是对称的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值