MCMC方法以及一个dummy示例


最近总结RBM原理时,参考了一个博客,里面有一段对MCMC(Markov chain Monte Carlo)的简单解释非常易懂.我把其中关于蒙特卡罗方法的部分copy过来,再写一个例子验证一下.

蒙特卡罗方法

一个dummy示例

既然蒙特卡罗方法可以用来求函数积分,那我们就用一个简单积分验证.如果我们要求如下积分:
$$
\begin{equation} \label{eq:someequation}
y = \int_{0}^{1} x^2
\end{equation}
$$
对应上文,\(h(x)=x^2\).这个积分值一眼就能看出是1/3.
按照上文拆解方法,令\(f(x)=x^2\), \(p(x)=1\).
\(p(x)\)是0-1区间上的均匀分布,因此只要使用均匀分布产生0,1之间的随机数即可得到x的采样点.例子如下:

1
2
3
4
5
6
import numpy
n = 100000
x_sample = numpy.random.uniform(0., 1., n)
y_sample = x_sample**2
integration = sum(y_sample) / n
print(integration)

结果:

1
0.332124134045