机器学习笔记之马尔可夫链蒙特卡洛方法——蒙特卡洛方法介绍
引言
从本节开始,将介绍马尔可夫链蒙特卡洛方法(Markov Chain Monte Carlo,MCMC)
回顾:近似推断
推断(Inference)的本质是基于给定样本数据 X \mathcal X X的条件下,设定概率模型 P ( X ) P(\mathcal X) P(X)中包含隐变量 Z \mathcal Z Z,并给予 Z \mathcal Z Z一些先验信息 P ( Z ) P(\mathcal Z) P(Z),基于先验信息 P ( Z ) P(\mathcal Z) P(Z),通过贝叶斯定理求解出样本数据 X \mathcal X X条件下,隐变量 Z \mathcal Z Z的后验概率分布 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)。
P ( Z ∣ X ) = P ( X ∣ Z ) ⋅ P ( Z ) P ( X ) P(\mathcal Z \mid \mathcal X) = \frac{P(\mathcal X \mid \mathcal Z) \cdot P(\mathcal Z)}{P(\mathcal X)} P(Z∣X)=P(X)P(X∣Z)⋅P(Z)
基于真实情况的原因, P ( X ) P(\mathcal X) P(X)在求解过程中出现积分难的问题(例如隐变量 Z \mathcal Z Z的 维度过高):
P ( X ) = ∫ z 1 ∫ z 2 ⋯ ∫ z K P ( X , Z ) d z 1 , z 2 , ⋯ , z K P(\mathcal X) = \int_{z_1} \int_{z_2}\cdots \int_{z_{\mathcal K}} P(\mathcal X,\mathcal Z) dz_1,z_2,\cdots,z_{\mathcal K} P(X)=∫z1∫z2⋯∫zKP(X,Z)dz1,z2,⋯,zK
至此,我们很难通过贝叶斯定理求出 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)的精确解。因此,通过近似推断(Approximate Inference)来求解 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)的近似解。
一般情况下,近似推断主要分为两种方法:
- 确定性近似:其主要代表方法有变分推断(Variational Inference,VI)
- 随机近似:其主要代表方法有 马尔可夫链蒙特卡洛方法(Markov Chain Monte Carlo,MCMC)。
蒙特卡洛方法
一开始需要注意的问题:蒙特卡洛方法 和 马尔可夫链蒙特卡洛方法 两者之间虽然存在关联,但本质上是两个概念,不要将其混为一谈。
关于蒙特卡洛方法(Monte Carlo Method),我们在蒙特卡洛方法求解强化学习任务中介绍过这种方法。这种方法最开始是为了求解积分问题。
示例1:在某二维平面中存在一个不规则区域,目标是求解不规则区域的面积。具体图像表示如下:
基于该图形的公式并不规范,因此很难通过积分方式求解图形面积。
现在有一种方法:
- 向上述 10 × 10 10 \times 10 10×10的平面区域内随机投掷质点,并记录质点落在图形区域内的次数;
- 通过计算 质点落在图形内的次数与总投掷次数的比值,估计图形区域占整个平面区域的比例;
- 平面区域面积乘以该比例,即可近似得到不规则区域的面积。
蒙特卡洛方法的核心是大数定律——在大量重复试验中所产生样本的算数平均值向数学期望收敛的规律。
基于上面描述,我们可以对蒙特卡洛方法有一个简单的认识:
- 可以使用蒙特卡洛方法求解期望;
- 求解期望的方式是基于采样的随机近似求解,而不是精确求解。
在推断过程中,通常使用 蒙特卡洛方法 近似求解后验分布 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)的相关期望信息:
E Z ∣ X [ f ( Z ) ] = ∫ Z P ( Z ∣ X ) ⋅ f ( Z ) d Z ( Z → C o n t i n u o u s ) = ∑ Z P ( Z ∣ X ) ⋅ f ( Z ) ( Z → D i s c r e t e ) \begin{aligned} \mathbb E_{\mathcal Z \mid \mathcal X} [f(\mathcal Z)] & = \int_{\mathcal Z} P(\mathcal Z \mid \mathcal X) \cdot f(\mathcal Z) d\mathcal Z \quad (\mathcal Z \to Continuous) \\ & = \sum_{\mathcal Z} P(\mathcal Z \mid \mathcal X) \cdot f(\mathcal Z) \quad (\mathcal Z \to Discrete) \end{aligned} EZ∣X[f(Z)]=∫ZP(Z∣X)⋅f(Z)dZ(Z→Continuous)=Z∑P(Z∣X)⋅f(Z)(Z→Discrete)
上述积分求解的复杂程度取决于 隐变量 Z \mathcal Z Z或者模型参数 的维度,如果 Z \mathcal Z Z或者模型参数维度较高,极难求解;因此,通过蒙特卡洛方法通过采样方式近似求解期望:
- 假设从分布 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)中采样出 K \mathcal K K个样本点:
z ( 1 ) , z ( 2 ) , ⋯ , z ( K ) ∼ P ( Z ∣ X ) z^{(1)},z^{(2)},\cdots,z^{(\mathcal K)} \sim P(\mathcal Z \mid \mathcal X) z(1),z(2),⋯,z(K)∼P(Z∣X) - 那么期望结果 E Z ∣ X [ f ( Z ) ] \mathbb E_{\mathcal Z \mid \mathcal X} [f(\mathcal Z)] EZ∣X