本文后面很多内容都是参考博客:http://www.cnblogs.com/xbinworld/p/4266146.html。本文主要用作学习交流备忘用。

  

1)简述:

  随机模拟也可以叫做蒙特卡洛模拟,其中一个很重要的问题就是指定一个概率分布p(x),然后在计算机中生成它的样本。

2)MC核心思想:

  当我们无法精确精算和或者积分时,可以把和或者积分视作某种分布下的期望,然后通过估计对应的平均值来近似这个期望。

        

3)产生的问题与改进

在上述式子中,我们依赖于基本分布p(x),而且该分部可以让我们轻易的采样。但是实际中这个条件并不都是成立的。当我们无法从p中采样时,一个方案是重要采样,另一种是使用一个趋近于目标分部估计的序列即MCMC(马尔科夫蒙塔卡洛方法)

4)重要采样的方法

  令:p(x)f(x)=。在这里我们从q中进行采样,然后估计的均值。

  问题:对于上述式子,对于任意的q分布都是可行的,如果从方差最小的角度选择最优q分布,虽然能够最优q分布可以得到,但是从中采样是不可行的。但是其他的仍然能够降低方差的q还是可行的。

  另外一个好的q分布很难取得。因为如果一个q使得很大,那么这个估计的方差也会很大。因为我们经常会取一些简单的分布作为q。但是当x是高维数据的时候,q分布的简单性很难与p或者pf相匹配。当q>>pf时候,重要采样采到了很多无用的样本(权值之和很小,或趋近于0)。当q<<pf时候,样本很少被采集到,其对应的权值会非常大。

  尽管存在很多风险,重要采样在机器学习和深度学习中仍有重要的作用: 重要采样被应用于加速训练具有大规模词汇的神经网络语言模型的过程中或者其他有着大量输出结点的神经网络中。此外,还可以看到重要采样应用于估计配分函数(一个概率分布的归一化常数)的过程中以及在深度有向图模型比如变分自编码器中估计似然函数的对数。采用随机梯度下降训练模型参数的时候重要采样可以用来改进对代价函数梯度的估计,尤其是针对于分类器模型的训练中一小部分错误分类样本产生的代价函数。在这种情况下更加频繁地采集这些困难的样本可以降低梯度估计的误差。

5)马尔科夫链和马尔科夫稳态

  马氏链定理:如果一个非周期马氏链具有状态转移概率矩阵P,且它的任何两个状态是联通的,那么存在,且与i无关(i表示初始状态),记 =π(j)。即沿着状态转移矩阵进行转移,无论初始状态为什么,最终都会收敛到一个稳定分布π=[π(1),π(2)….]。

  所以一个理想的情况是:找到转移矩阵为p的马氏链,使得该马氏链的平稳分布恰好是p(x),那么我们从任一个初始状态x0出发,得到一个转移序列x1,x2,….如果其在xi处收敛,则x(i+1)…..就是我们要取的样本。

细致平稳条件:

  

  

  

  

  此时取:

  则有:

  

6)MCMC-Gibbs Sampling

  

  Gibbs-Sampling算法:

  

  

  

参考文献:

    [1]http://www.cnblogs.com/xbinworld/p/4266146.html

[2]
http://blog.csdn.net/xianlingmao/article/details/7768833

    [3] http://www.cnblogs.com/daniel-D/p/3388724.html

    [4] http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/

    [5] An Introduction to MCMC for Machine Learning,2003

    [6] Introduction to Monte Carlo Methods

    [7]深度学习

MCMC,GIBBS SAMPLING简单摘要的更多相关文章

  1. MCMC&Gibbs sampling

    Note of Markov Chain Monte Carlo and Gibbs Sampling :  http://pan.baidu.com/s/1jHpWY1o 序:A major lim ...

  2. 随机采样方法整理与讲解(MCMC、Gibbs Sampling等)

    本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到P ...

  3. 机器学习方法(八):随机采样方法整理(MCMC、Gibbs Sampling等)

    转载请注明出处:Bin的专栏,http://blog.csdn.net/xbinworld 本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比 ...

  4. 随机采样方法整理与讲解(Acceptance-Rejection、MCMC、Gibbs Sampling等)

    本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到P ...

  5. PRML读书会第十一章 Sampling Methods(MCMC, Markov Chain Monte Carlo,细致平稳条件,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hamiltonian MCMC)

    主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:05:00  今天的主要内容:Markov Chain Monte Carlo,M ...

  6. 【转载】MCMC和Gibbs Sampling算法

    转载随笔,原贴地址:MCMC和Gibbs Sampling算法 本文是整理网上的几篇博客和论文所得出来的,所有的原文连接都在文末. 在科学研究中,如何生成服从某个概率分布的样本是一个重要的问题.如果样 ...

  7. 随机模拟MCMC和Gibbs Sampling

    随机模拟 统计模拟中有一个重要的问题就是给定一个概率分布 p(x),我们如何在计算机中生成它的样本.一般而言均匀分布 Uniform(0,1)的样本是相对容易生成的. 通过线性同余发生器可以生成伪随机 ...

  8. LDA-math-MCMC 和 Gibbs Sampling

    http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/ 3.1 随机模拟 随机模拟(或者统计模拟)方法有一个很酷的别名是蒙特卡罗方法(Mon ...

  9. 随机采样和随机模拟:吉布斯采样Gibbs Sampling

    http://blog.csdn.net/pipisorry/article/details/51373090 吉布斯采样算法详解 为什么要用吉布斯采样 通俗解释一下什么是sampling. samp ...

随机推荐

  1. python decorator 基础

    一般来说,装饰器是一个函数,接受一个函数(或者类)作为参数,返回值也是也是一个函数(或者类).首先来看一个简单的例子: # -*- coding: utf-8 -*- def log_cost_tim ...

  2. cs231n --- 3 : Convolutional Neural Networks (CNNs / ConvNets)

    CNN介绍 与之前的神经网络不同之处在于,CNN明确指定了输入就是图像,这允许我们将某些特征编码到CNN的结构中去,不仅易于实现,还能极大减少网络的参数. 一. 结构概述 与一般的神经网络不同,卷积神 ...

  3. 开始连载啦~每周2更共11堂iKcamp课|基于Koa2搭建Node.js实战项目教学(含视频)| 课程大纲介绍

  4. 微信小程序教学第四章第三节(含视频):小程序中级实战教程:详情-功能完善

    详情 - 功能完善 本文配套视频地址: https://v.qq.com/x/page/f0555nfdi14.html 开始前请把 ch4-3 分支中的 code/ 目录导入微信开发工具 这一节中, ...

  5. IEEE1588协议简介

    IEEE1588协议,又称PTP(precise time protocol,精确时间协议),可以达到亚微秒级别时间同步精度,于2002年发布version1,2008年发布version2. IEE ...

  6. sqlserver 存储过程 带输出参数

    CREATE PROCEDURE [dbo].[output] @acctNbr varchar(), --会员卡号 @acctPwd1 nvarchar() OUT, --登录密码 @acctPwd ...

  7. [array] leetcode - 40. Combination Sum II - Medium

    leetcode - 40. Combination Sum II - Medium descrition Given a collection of candidate numbers (C) an ...

  8. 快速学习Bash

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. Shell是Linux下经典的文本互动方式,而Bash是现在最常用的一种Shell.我在这里总结了Bash ...

  9. JVM类加载机制以及类缓存问题的处理

    一:JVM类加载机制 和 类缓存问题的处理 当一个java项目启动的时候,JVM会找到main方法,根据对象之间的调用来对class文件和所引用的jar包中的class文件进行加载(其步骤分为加载.验 ...

  10. git正确的删除远程仓库的文件并用.gitignore忽略提交此文件

    我向远程仓库提交了如下文件src/ pom.xml target/ WebContent/,发现没必要提交target目录. 于是做了如下操作: git rm -r --cached target g ...