贝叶斯方法与采样技术的结合

贝叶斯方法和核心就是计算某个未知参数的后验分布,当参数的后验分布知道了,就可以利用分布获得你想要知道的信息。在这里假设观测数据为YYY,未知参数为thetathetatheta,似然函数f(y∣theta)f(y|theta)f(y∣theta),参数的先验分布为p(theta)p(theta)p(theta)

目标:估计thetathetatheta
主要想法:求p(theta∣y)p(theta|y)p(theta∣y),由于p(theta∣y)=p(theta)p(y∣theta)p(y)p(theta|y)=\frac{p(theta)p(y|theta)}{p(y)}p(theta∣y)=p(y)p(theta)p(y∣theta)​
分母是观测数据的边际概率,设计到了求和或者求积分,而且分母部分是一个常数,所以我们可以认为p(theta∣y)p(theta|y)p(theta∣y)正比于p(theta)p(y∣theta)p(theta)p(y|theta)p(theta)p(y∣theta),我们把p(theta)p(y∣theta)p(theta)p(y|theta)p(theta)p(y∣theta)看作未归一化的未知参数的后验分布,记为p(theta∣y)˘\breve{p(theta|y)}p(theta∣y)˘​。
我们一般就基于这个为归一化的后验分母进行一些推断,把它也叫做目标分布,那我当初是非常不理解的,我 以前认为那这样的话,分布不就变了吗,但是你要记住它是一个常数,一个确定的值,所以 不管参数是什么,p(y)p(y)p(y)都是一样的,所以你会发现p(theta∗∣y)p(theta∣y)=p(theta∗∣y)˘p(theta∣y)˘\frac{p(theta^*|y)}{p(theta|y)}=\frac{\breve{p(theta^*|y)}}{\breve{p(theta|y)}}p(theta∣y)p(theta∗∣y)​=p(theta∣y)˘​p(theta∗∣y)˘​​
这个比值与p(y)p(y)p(y)没有任何的关系,所以我们在进行采样技术时,获得不了归一化的目标分布也是没有关系的,我们可以先采样获得来自未归一化的目标分布的样本,然后再求分布,因为分布就是求积分或者求和,求积分或者求和可以转化成求期望,求期望我们就可以利用大数定律的思想。

我之前的博客当中有非常详细的介绍过近似推断方法,近似推断法包括直接采样法和间接采样法,其中直接采样法我主要介绍的是利用均匀分布获得来自目标分布的样本,间接采样法里面我讨论了拒绝采样,重要性采样,MH算法和吉布斯采样算法。

拒绝采样法–核心思想

我们想要获得来自目标分布p(x)p(x)p(x)的样本,在这里我们就是想要获得来自目标分布p(theta∣y)˘\breve{p(theta|y)}p(theta∣y)˘​的样本,如果这个分布比较复杂没办法直接抽样,那么怎么办呢,我们引入一个好抽样的且接近p(x)p(x)p(x)的分布q(x)q(x)q(x),把这个容易抽样的分布叫做建议分布,使得存在一个常数kkk,对于任意从建议分布中抽取的样本x∗x^*x∗,都有kq(x∗)>p(x∗)kq(x^*)>p(x^*)kq(x∗)>p(x∗),那么令α=p(x∗)kq(x∗)\alpha=\frac{p(x^*)}{kq(x^*)}α=kq(x∗)p(x∗)​,α\alphaα为抽取的样本xxx^xxx被接受的比例,我们从均匀分布u(0,1)u(0,1)u(0,1)中任意取一个随机数uuu,当u<αu<\alphau<α则表明x∗x^*x∗被接受了,被接受是来自目标分布p(x)p(x)p(x)的样本了,再对p(x)p(x)p(x)作一些推理时,x∗x^*x∗就被考虑在内了,否则不能把x∗x^*x∗看做来自目标分布的样本

注意:这种方法需要确定k,k的选取很重要,如果k太大,那么必然拒绝的比例会增大,那么如果想要获得足够的来自目标分布的样本就要增加采样次数,而且在高维空间中,值接近,分布可能差很多

重要性采样–核心思想
重要性采样算法的思想是根据拒绝采样来的,拒绝采样那里我们的建议分布要是一个接近目标分布的分布,但是当我们的最终目的是估计一个函数f(x)f(x)f(x)在分布p(x)p(x)p(x)下的期望,我们其实不必要求最终获得的样本一定是来自目标分布p(x)p(x)p(x),主要是因为f(x)p(x)=q(x)p(x)q(x)f(x)f(x)p(x)=q(x)\frac{p(x)}{q(x)}f(x)f(x)p(x)=q(x)q(x)p(x)​f(x),我们可以令p(x)q(x)=w(x)\frac{p(x)}{q(x)}=w(x)q(x)p(x)​=w(x),w(x)w(x)w(x)为重要性权重,所以Ep(x)f(x)=Eq(x)w(x)f(x)E_{p(x)}f(x)=E_{q(x)}w(x)f(x)Ep(x)​f(x)=Eq(x)​w(x)f(x),所以同样大数定律,从q(x)q(x)q(x)中抽取样本点,估计wf(x)wf(x)wf(x)的期望即可

最开始我说了当我们只能知道未归一化的目标分布p(x)˘\breve{p(x)}p(x)˘​时,然后你可能会好奇我们采用拒绝采样法获得的接受的样本x∗x^*x∗它是服从未归一化的目标的分布的把,如果我们只是目标是求期望的话,我们自然利用重要性采样的思想求
Ep(x)f(x)=∫xf(x)p(x)˘Zdx=∫xf(x)p(x)˘dx∫xp(x)˘dxE_{p(x)}f(x)=\int_{x}f(x)\frac{\breve{p(x)}}{Z}dx=\frac{\int_{x}f(x)\breve{p(x)}dx}{\int_{x}\breve{p(x)}dx}Ep(x)​f(x)=∫x​f(x)Zp(x)˘​​dx=∫x​p(x)˘​dx∫x​f(x)p(x)˘​dx​
而对于分子和分母就可以利用建议分布q(x)q(x)q(x)抽取样本,利用重要性权重求期望。

那如果我们是想要得到来自归一化的目标分布的样本时,在拒绝采样当中,我们首先获得的是来自未归一化的目标分布的样本,然后你要记得我们为什么不好获得归一化的目标分布,首先是因为分母不好求,分母涉及到了边缘化的思想(会进行多重积分),那么如果我们获得了未归一化的样本,那么分母是未归一化函数的定积分,既然是定积分那么就可以利用蒙塔卡洛的思想进行抽样近似计算,样本也知道了,就相当于求f(x)=1f(x)=1f(x)=1这个函数的期望。所以利用来自未归一化分布的样本可以计算得到归一化的目标分布。

然后你要知道在拒绝抽样当中q(x)q(x)q(x)是接近p(x)˘\breve{p(x)}p(x)˘​的,那么现在q(x)z\frac{q(x)}{z}zq(x)​是接近p(x)˘z\frac{\breve{p(x)}}{z}zp(x)˘​​的,你很容易知道新的建议分布中抽取 的样本与原来的建议分布的样本相比,只是一个倍数的问题,也就是归一化目标分布的抽取的样本值是未归一化抽取的样本值的1z\frac{1}{z}z1​倍。

所以进行总结:

  • 当我们已知归一化的目标分布时,我们利用拒绝采样接受的样本经过部分处理之后应该是服从未归一化的目标分布的
  • 当我们已知的是未归一化的目标分布时,同样我们利用拒绝采样获得的样本再进行一些处理,最后得到的样本是服从未归一化的目标分布的,那么如果我们确实想要获得归一化的目标分布的样本,那就利用取得的样本计算归一化常数zzz,然后再拿之前的样本除以zzz即可。

上面讲解的都是简单的近似采样的方法,虽然简单但是其思想是非常重要的,近似的思想,求期望求定积分的思想都是需要掌握的

下面介绍更加常用和更加符合实际情况的采样方法

MCMC算法

MCMC算法我在上次博客介绍的很多了,这里再来做个概括,回想一下我们在拒绝采样当中是不是有一个建议分布,从建议分布中抽取样本,但是这里的建议分布我们是说接近目标分布且容易抽样的分布,t+1时刻抽取的样本与t时刻的是没有关系的,都是从给定的这个建议分布中抽样,那么MCMC(蒙塔卡洛马尔科夫链)的建议分布就做出了改进,我们假设建议分布是服从马尔科夫性质,也就是从建议分布中抽出来的样本是一个马尔科夫链

马尔科夫链

马尔科夫链也就是当状态转移分布确定时,t+1时刻抽取出来的样本与t时刻抽取的样本有关,而与其他时刻抽取出来的样本都没有关系,也就是 说假设我们观测的一个人的心情,我今天的心情只与昨天的心情有关,和从昨天的心情转移到今天的心情的概率。关于马尔科夫链的详细讲解大家可以看李航的统计学习方法那本书。

平稳分布

我们的目标是想要获得来自目标分布的样本,那么根据马尔科夫链的性质,对于不可约的非周期且正常返的马尔科夫链有唯一的平稳分布。平稳分布是假设初始的状态分布为π0\pi_{0}π0​,拿我的心情来举例子,给定状态转移矩阵ppp,其中pijp_{ij}pij​表示p(it+1=qj∣it=qi)p(i_{t+1}=q_{j}|i_{t}=q_{i})p(it+1​=qj​∣it​=qi​)。今天我开心,那么明天我的心情服从的分布为pπ0p\pi_{0}pπ0​,注意我现在已经知道了今天的心情,那么我今天的心情服从的分布就是只有开心对应的元素为1,别的心情对应的元素都为0,我明天的心情服从的分布是pπ0p\pi_{0}pπ0​,这是一个列向量,也就是我明天的心情服从这样的一个离散的状态分布,那么我明天的心情就是从这个离散的状态分布进行随机抽样。那么后天我的心情服从的分布就为p2π0p^2\pi_{0}p2π0​,一直是这样的过程,直到pnπ0p^n\pi_{0}pnπ0​不发生变化,即是直到有一天当期服从的分布为π\piπ,下一期我的心情服从的分布按理说应该为pπp\pipπ,但是此时pπ=πp\pi=\pipπ=π,那么就说明了此时我的心情服从的分布是一个平稳的分布,就把满足pπ=πp\pi=\pipπ=π的π\piπ叫做我的心情的平稳分布

所以在这里我们的想法就是构造一个马尔科夫链,使得这个马尔科夫链的平稳分布就是我们的目标分布,那么关键也就是找到状态转移分布q(x)q(x)q(x),当变量是离散型随机变量时,我们想找到一个状态转移概率矩阵,当变量是连续型随机变量时,我们想要找到状态转移核函数。

细致平稳方程

如果状态分布为π\piπ,其中状态iii的概率为πi\pi_{i}πi​,状态jjj的概率为πj\pi_{j}πj​,状态转移分布为ppp,如果有pijπi=pjiπjp_{ij}\pi_{i}=p_{ji}\pi_{j}pij​πi​=pji​πj​成立,那么我们称π\piπ是这个马尔科夫链的平稳分布,当得到平稳分布时,继续按照这种模式今年采样,那么可以认为状态平稳时以后获得的样本就是来自平稳分布的。

MH算法

所以我们想要找到q(x,x′)q(x,x')q(x,x′)让它满足q(x,x′)p(x)=q(x′,x)p(x′)q(x,x')p(x)=q(x',x)p(x')q(x,x′)p(x)=q(x′,x)p(x′),但是实际直接找出一个这样的q(x,x′)q(x,x')q(x,x′)是非常难的,想想也知道挺难的,所以我们给出一个试错的过程,我们不必要一定要找一个q(x,x′)q(x,x')q(x,x′),使得根据这个状态转移分布得到的马尔科夫链的平稳分布就是我们的目标分布p(x)p(x)p(x),我们利用拒绝采样的思想,我们利用一个好抽样的状态转移分布q(x,x′)q(x,x')q(x,x′),抽取样本,但是这个样本需要一个接受率进而和来自均匀分布的随机数uuu进行比较决定接不接受这个样本,具体来说α(x,x′)=min(1,p(x′)q(x′,x)p(x)q(x,x′))\alpha(x,x')=min(1,\frac{p(x')q(x',x)}{p(x)q(x,x')})α(x,x′)=min(1,p(x)q(x,x′)p(x′)q(x′,x)​)
那么真正的状态转移分布为q(x,x′)′=α(x,x′)q(x,x′)q(x,x')^{'}=\alpha(x,x')q(x,x')q(x,x′)′=α(x,x′)q(x,x′),实际上是根据q(x,x′)′q(x,x')^{'}q(x,x′)′进行抽取样本的

注意:这里的不接受不代表舍弃这个样本,不代表这个样本不是来自目标分布,在MH算法当中,不接受只是表明不更新,t+1时刻的状态仍然等于t时刻的状态。不要与单纯的拒绝采样混淆了。

上面说的最主要的就是状态转移分布q(x,x′)q(x,x')q(x,x′),它不同,MH算法又可以分为不同的形式。推断算法博客里面写过了,最常用的是设置q(x,x′)=q(x‘,x)q(x,x')=q(x‘,x)q(x,x′)=q(x‘,x),也就是设置对称的建议分布

  • 最简答的一种是x′=x+u(−a,a)x'=x+u(-a,a)x′=x+u(−a,a),下一时刻的状态取值是在上一时刻的状态取值加上一个来自对称的均匀分布样本值。
  • 其次就是q(x,x′)q(x,x')q(x,x′)取条件概率分布p(x′∣x)p(x'|x)p(x′∣x),但是注意这个ppp当然不是我们的目标分布,只是表示的是条件概率分布,最常用的是当xxx已知时,x′x'x′服从均值为xxx,协方差矩阵是常数矩阵的多元正态分布,即x′服从N(x,∑)x'服从N(x,\sum)x′服从N(x,∑)
  • 还有一种随机游走Metropolis算法,这个跟第一种的原理一样,只是取的游走的形式不一样,mcmc程序包里有metrop()函数使用的是标准正态变量的随机游走,即x′=x+scale∗zx'=x+scale*zx′=x+scale∗z,z是来自标准正态分布的随机变量,sclae是一个尺度,是常数。

你可能同样会思考这个问题,当我们不知道归一化的目标分布的概率密度函数形式,怎么在MH算法中得到来自目标分布的样本呢?这里就跟之前说的方法不一样了,因为我们这里虽然最初不知道归一化的目标分布p(x)p(x)p(x),但是我们的p(x′)q(x∣x′)α(x′,x)=p(x)q(x′∣x)α(x,x′)p(x')q(x|x')\alpha(x',x)=p(x)q(x'|x)\alpha(x,x')p(x′)q(x∣x′)α(x′,x)=p(x)q(x′∣x)α(x,x′)
p(x′)˘q(x∣x′)α(x′,x)=p(x)˘q(x′∣x)α(x,x′)\breve{p(x')}q(x|x')\alpha(x',x)=\breve{p(x)}q(x'|x)\alpha(x,x')p(x′)˘​q(x∣x′)α(x′,x)=p(x)˘​q(x′∣x)α(x,x′),
所以我们抽取的样本就是来自归一化的目标分布的

其实归一化与未归一化相比也就是只相差一个常数而已。(这里我不知道理解的对不对:所以我们之前在拒绝采样里面讨论的还要除以这个常数我现在感觉没有必要了,大家都没有除以这个比例,因为对应的建议分布也是一个常数比例关系,所以我把建议分布直接看成接近归一化目标分布的容易抽要的分布也是可以的,我们就可以把抽取的样本经过处理之后看成来自归一化的目标分布的。)

小提醒:
在MH算法,我们经常使用对数化的目标分布,为了额编程时把乘除号变成加减号,我们一般都会进行取对数处理

现在来讨论最后一种采样方法

Gibbs采样

这里简单说一句就是gibbs采样,也就是吉布斯采样算法,它也是MCMC采样的一种,最初思想一样。都是为了找到q(x,x′)p(x)=q(x′,x)p(x′)q(x,x')p(x)=q(x',x)p(x')q(x,x′)p(x)=q(x′,x)p(x′),MH算法和Gibbs算法都是为了取得这个结果,采取的不同形式。

在吉布斯采样把满条件分布看作是建议分布,**注意这个满条件分布是目标分布的满条件分布,**不要与单分量的metroplolis算法搞混了,后者按照建议分布的满条件分布进行逐个维度上的采样,而前者建议分布直接就是目标分布的满条件分布,满条件分布就是在其他维度上的取值不变的条件下,每次对一个维度上进行采样。

当对下一个维度进行按照满条件分布进行采样时,之前采样过的维度值变成最新的。
Gibbs采样没有拒绝更新的这个过程,也就是接受概率为1

以上就是贝叶斯方法与采样算法的结合

贝叶斯方法和采样技术结合-MCMC-后验分布相关推荐

  1. 机器学习题库整理 通俗理解贝叶斯方法和贝叶斯网络

    1 贝叶斯方法长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定的 ...

  2. 贝叶斯方法和贝叶斯网络

    从贝叶斯方法谈到贝叶斯网络 0 引言 看到July的这篇文章,觉得写得很好,所以转载过来,留着慢慢看.原地址:https://blog.csdn.net/v_july_v/article/detail ...

  3. R语言贝叶斯方法在生态环境领域中的高阶技术

    贝叶斯统计学即贝叶斯学派是一门基本思想与传统基于频率思想的统计学即频率学派完全不同的统计学方法,它在统计建模中具有灵活性和先进性特点,使其可以轻松应对复杂数据和模型结构. 然而,很多初学者在面对思想. ...

  4. 基于贝叶斯方法的英文单词模糊自动校对技术及其应用研究

    摘要:概述了英文文本自动校对技术的产生背景,分析了英文文本的特点,并对英文文本校对的技术难点和解决方法以及国内外的研究现状进行了阐述.在此基础上重点讨论了基于贝叶斯方法的英文单词自动校对技术的实现. ...

  5. 独家 | 为什么要尝试A/B测试的贝叶斯方法(附链接)

    作者:Michael Armanious 翻译:欧阳锦 校对:阿笛 本文约3400字,建议阅读8分钟 本文通过一个A/B测试的实例,介绍了贝叶斯方法的各种优点和具体的实现方法,同时也将贝叶斯推断方法与 ...

  6. 详解机器学习的凸优化、图神经网络、强化学习、贝叶斯方法等四大主题

    AI是一门入门简单,但想深入却很难的学科,这也是为什么AI高端人才一直非常紧缺的重要原因.在AI领域技术领域,我们可以说机器学习功底决定了一个人的上限也不为过.为什么?机器学习就像物理学中的数学,如果 ...

  7. 详解凸优化、图神经网络、强化学习、贝叶斯方法等四大主题

    加入AI行业拿到高薪仅仅是职业生涯的开始.现阶段AI人才结构在不断升级,这也意味着如果目前仍然停留在调用一些函数库,则在未来1-2年内很大概率上会失去核心竞争力的.几年前如果熟练使用TensorFlo ...

  8. ESL第八章 模型推断和平均 【参数】自助法/得分函数/信息矩阵/观测信息/费舍尔信息量、贝叶斯方法/无信息先验、高斯混合/GEM/MM算法、吉布斯、Bagging、委员会、Stacking、随机搜索

    目录 8.2 自助法和最大似然方法 8.2.1 平滑例子 8.2.2 最大似然推断 8.2.3 自助法vs最大似然 8.3 贝叶斯方法 8.4 自助法和贝叶斯推断的关系 8.5 EM算法 8.5.1 ...

  9. 贝叶斯方法学习笔记(二)

    贝叶斯方法学习笔记(二) 原文来自于知乎<你一定从未看过如此通俗易懂的马尔科夫链蒙特卡洛方法解读>.在这里只是将文章主要的核心知识点进行提炼汇总. 链接:你一定从未看过如此通俗易懂的马尔科 ...

最新文章

  1. python自学书籍推荐豆瓣-入门python有什么好的书籍推荐?
  2. C#、.Net经典面试题目及答案
  3. GitHub上有哪些比较好的计算机视觉/机器视觉的项目?
  4. Android实现圆形圆角图片
  5. 关于表数据同步使用update_time时的注意事项
  6. 如何烧录程序_鸿蒙实战课堂 | 如何完成一次HarmonyOS操作系统移植?
  7. 数据结构-直接选择排序
  8. xmr-stak-cpu 安装及使用
  9. 【LabVIEW】基于LabVIEW的2048游戏设计
  10. Excel如何快速统计某列数据出现次数
  11. cocos:MotionStreak拖尾渐隐效果
  12. Java学习方法的一点个人见解-完整版
  13. 《今雨》孙溟㠭书画艺术
  14. 哈工大计算机科学与技术硕士培养方案,计算机科学与技术学科硕士研究生培养方案哈工大计算机学院[文].pdf...
  15. k6性能测试工具,并生成可视化报告
  16. python量化实战 顾比倒数线_外汇高手分享:顾比倒数线的画法与经典战法
  17. 涨姿势!国外程序员搞副业的 10 大方式
  18. 使用switchHost管理host
  19. 计算机硬件的最低配置,Windows7系统的最低硬件配置要求是什么
  20. Crack8 + QQ吻的教程更新110个(20091016)

热门文章

  1. 内部DNS服务器搭建
  2. 2018春考计算机技能考试题目,(完整版)2018年山东春季高考技能考试信息技术类专业考试样题...
  3. NoSql入门和概述
  4. 【WINDOWS / DOS 批处理】for命令详解(八)
  5. Nature综述:未培养微生物的新兴培养技术
  6. PHP7新特性-简述
  7. spring之AOP切面不生效!!!!!原因在这
  8. 一年内经验前端面试题记录
  9. Vue.js实战第十章笔记
  10. Sunday算法流程与代码