由于最近在看deep learning中的RBMs网络,而RBMs中本身就有各种公式不好理解,再来几个Gibbs采样,就更令人头疼了。所以还是觉得先看下Gibbs采样的理论知识。经过调查发现Gibbs是随机采样中的一种。所以本节也主要是简单层次的理解下随机采用知识。参考的知识是博客随机模拟的基本思想和常用采样方法(sampling),该博文是网上找到的解释得最通俗的。其实学校各种带数学公式的知识时,最好有学者能用通俗易懂的语言介绍,这对入门学者来说极其重要。当然了,还参考了网页http://www.jdl.ac.cn/user/lyqing/StatLearning/StatlLearning_handout.html中的一些资料。
采样是指我们知道一个样本x(大多数情况下是多维的)的概率分布函数,要通过这个函数来产生多个样本点集合。有的人可能会问,这有什么难的,matlaab等工具不是有命令来产生各种分布的样本么?比如说均值分布,正太分布的。对,确实没错,但这些分布样本点的产生也不是很容易的,需要精心设计。如果把函数域中的每个函数都去花精力设计它的样本产生方法,岂不是很费力。所以就出现了随机采样的方法,只要能逼近理论结果值就ok了。当然了,这只是随机采用方法出现的一种原因,纯属个人理解,肯定还有不少其它方面的因素的。
分下面几个部分来介绍常见的随机采样方法:
一、拒绝——接受采样
该方法是用一个我们很容易采样到的分布去模拟需要采样的分布。它要满足一些条件,如下:
其具体的采集过程如下所示:
几何上的解释如下:
由上面的解释可知,其实是在给定一个样本x的情况下,然后又随机选取一个y值,该y值是在轮廓线Mq(x)下随机产生的,如果该y值落在2条曲线之间,则被拒绝,否则就会被接受。这很容易理解,关于其理论的各种推导这里就免了,太枯燥了,哈哈。
二、重要性采样。
我对重要性采样的理解是该方法目的并不是用来产生一个样本的,而是求一个函数的定积分的,只是因为该定积分的求法是通过对另一个叫容易采集分布的随机采用得到的(本人研究比较浅,暂时只能这么理解着)。如下图所示:
其中通过对q(x)的随机采样,得到大量的样本x,然后求出f(x)*w(x)的均值,最终得出积分I值。其中的w(x)也就是重要性了,此时如果q(x)概率大,则得到的x样本数就多,这样w(x)的值也就多了,也间接体现了它越重要。
三、 Metropolis-Hasting
该方法是用一个建议分布以一定概率来更新样本,有点类似拒绝——接受采样。其过程如下所示:
四、Gibbs采样
Gibss采用是需要知道样本中一个属性在其它所有属性下的条件概率,然后利用这个条件概率来分布产生各个属性的样本值。其过程如下所示:
参考资料:
http://www.jdl.ac.cn/user/lyqing/StatLearning/StatlLearning_handout.html