问题背景
很多时候,无法确定一个概率分布的具体密度函数,因而在对这种分布进行后续操作(例如,作为贝叶斯学派求后验概率)时难度很大,无法进行。这时候则需要对这种无法精确知道分布函数的概率进行近似处理成已知的概率分布,从而方便计算或操作。拉普拉斯近似便是一种简单且广泛应用的近似方法,并且是很多采样方法的基础思想。
拉普拉斯近似
该方法的目的是找到一组定义在连续变量变量上的高斯近似,假设任一单一连续变量
z
,假设分布p(z)的定义为:
p(z)=1Zf(z)
其中
Z
是归一化系数,为
Z=∫f(z)dz(联系
softmax
),
Z
是未知的。拉普拉斯方法的目的是寻找一个高斯分布
q(z)来近似
p(z)
,它的中心位于
q(z)
的众数位置,即寻找一个点
z0
使得
p′(z0)=0
,也等价于:
df(z)dz|z=z0=0
考虑高斯分布的密度函数形式,它的对数有着变量的二次形式,故
lnf(z)
进行泰勒展开有:
lnf(z)=lnf(z0)−12A(z−z0)2+Rn
其中
A=−d2dz2lnf(z)|z=z0
忽略余式
Rn
,并在两边同时取指数有:
f(z)=f(z0)exp{−A2(z−z0)2}
对比标准高斯分布函数,可以得到归一化的高斯分布
q(z)
:
q(z)=(A2π)12exp{−A2(z−z0)2}
从这个式子可以看见(1)最后的近似高斯与原先
p(z)
的归一化系数
Z
无关,(2)
A>0时近似才有定义。也就是说
z=z0
处
p(z0)
具有波峰,对应
f(z0)
局部最大值,并且
f(z0)
的二阶导数小于0。
多维近似
将单变量的拉普拉斯近似进行推广,去近似
M
维空间上z的概率分布
p(z)=f(z)Z
,这里
z
和
Z
是向量,同理在驻点
z0
有:
lnf(z)=lnf(z0)−12(z−z0)TA(z−z0)
其中
A
是
M∗M
的
Hessian
矩阵,定义为:
A=−∇∇lnf(z)|z=z0
其中
∇
为梯度算子,同理,两边取指数有:
f(z)=f(z0)exp{−12(z−z0)TA(z−z0)}
最后考虑多维高斯分布形式,有:
q(z)=|A|122πM2exp{−12(z−z0)TA(z−z0)}=N(z|z0,A−1)
同样,
A
需要是正定的。
归一化系数的近似
前面说到在进行拉普拉斯近似的时候,归一化系数
Z
是不需要知道的,但在某些时候需要用到Z,我们同样可以都它进行近似。因为:
Z=∫f(z)dz
利用前面的对
f(z)
的泰勒展开,可得:
Z=f(z0)∫exp{−12}(z−z0)TA(z−z0)dz
也就是:
Z=f(z0)2πM2A12
这里从2式到3式使用了概率积分为1的性质,所以后面的积分是多维高斯密度函数中归一化系数的倒数。
总结
拉普拉斯近似只需要寻找到众数
z0
,然后该点处的黑塞矩阵,
z0
可以用优化算法得到,但往往在实际中,会存在多峰情况的分布,那么可以对不同的波峰进行拉普拉斯近似。在应⽤拉普拉斯⽅法时,真实概率分布的归⼀化常数
Z
不必事先知道。根据中⼼极限定理,我们可以预见模型的后验概率会随着观测数据点的增多⽽越来越近似于⾼斯分布,因此我们可以预见在数据点相对较多的情况下,拉普拉斯近似会更有⽤。