版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhq9695/article/details/86600753
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~
花书+吴恩达深度学习(二三)结构化概率模型(贝叶斯网络、马尔可夫网络)
花书+吴恩达深度学习(二四)蒙特卡罗方法(重要采样,MCMC)
花书+吴恩达深度学习(二五)直面配分函数(CD, SML, SM, RM, NCE)
花书+吴恩达深度学习(二六)近似推断(EM, 变分推断)
0. 前言
随机算法可以粗略的分为两类:
- Las Vegas算法:精确的返回一个正确答案,或者返回算法失败了,占用随机量的计算资源
- 蒙特卡罗算法:返回答案具有随机大小的错误,花费更多的计算资源可以减少这种错误
当无法精确计算和或积分时,通常可以使用蒙特卡罗采样来近似它,令:
s=x∑p(x)f(x)=Ep[f(x)]s=∫p(x)f(x)dx=Ep[f(x)]
根据大数定理,如果样本满足独立同分布,那么:
n→∞lims^n=sVar[s^n]=n21i=1∑nVar[f(x)]=nVar[f(x)]
中心极限定理告诉我们
s^n的分布收敛到以
s为均值,
nVar[f(x)]为方差的正态分布。
1. 重要采样
在蒙特卡罗方法中,
p(x)f(x)不存在唯一的分解,总是可以写成:
p(x)f(x)=q(x)q(x)p(x)f(x)
我们从
q分布中采样,估计
qpf在此分布下的均值。
我们发现估计的期望和方差为:
Eq[s^q]=Ep[s^p]=sVar[s^q]=Var[q(x)p(x)f(x)]/n
若方差取到最小值,则满足:
q∗(x)=Zp(x)∣f(x)∣
其中,
Z表示归一化常数,选择适当可使得方差为0,只需要一个样本就足够。
2. 马尔可夫链蒙特卡罗 MCMC
当分布
pmodel(x)表示成无向模型时,引入了马尔可夫链。马尔可夫链蒙特卡罗(Markov Chain Monte Carlo)最一般的理论只适用于各状态概率均不为零的模型,所以最方便的就是从基于能量的模型中采样。
核心思想是从某个可取任意值得状态
x出发,反复更新状态,最终
x成为一个从
p(x)中抽出比较一般的样本。
转移分布
T(x′∣x)定义状态
x随机转移到
x′的概率。
马尔可夫链的状态转移表示为:
q(t+1)(x′)=x∑q(t)(x)T(x′∣x)
重新定义一下参数,马尔可夫链可以表示为:
vi=q(x=i)Ai,j=T(x′=i∣x=j)v(t)=Av(t−1)=Atv(0)
通常在宽松的条件下,带有转移算子的马尔可夫链会收敛到一个不动点:
q′(x′)=Ex∼qT(x′∣x)
运行马尔可夫链直到达到均衡分布的过程称为马尔可夫链的磨合过程。
马尔可夫链的计算代价很高,源于磨合时间很长,达到均衡分布之后一个样本转移到足够无关的另一个样本所需要的时间很长。
马尔可夫链的难点是无法预先知道需要运行多少步达到均衡分布,这段时间被称为混合时间。
Gibbs采样构造一个从
pmodel(x)中采样的马尔可夫链(
q(x)分布就是
pmodel(x))。
3. 不同峰值之间的混合挑战
使用MCMC方法的主要难点在于马尔可夫链的混合通常不理想。
MCMC方法采样出的样本可能具有很强的相关性,我们成为慢混合甚至混合失败。
从
x(t−1)到
x(t)该链倾向于选取很小的步长,能量
E(x(t))通常低于或近似等于
E(x(t−1))。一旦该链找到低能量的区域,我们称为峰值,链倾向于围绕这个峰值游走,链会时不时走出峰值,但是通常结果会返回这个峰值或者移动向另一个峰值,所以马尔可夫链将在一个峰值附近抽取远超过需求的样本。
一些加速混合的方法是构造一个概率分布代替目标分布,这个分布峰值没有那么高,峰值周围低谷也没有那么低:
pβ∝exp(−βE(x))
其中,
β可以理解为温度。当温度趋近于0时,
β趋近无穷大,此时基于能量的模型是确定性的。当温度趋近于无穷大时,
β趋近于0,基于能量的模型成了均匀分布。
基于回火转移(tempered transition)的马尔可夫链临时从高温度的分布中采样使其在不同峰值之间混合,然后继续从单位温度的分布中采样。
如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~