一、概述
对于概率模型来说,如果从频率派角度来看就会是一个优化问题,从贝叶斯角度来看就会是一个积分问题。
从贝叶斯角度来看,如果已有数据,对于新的样本,需要得到:
如果新样本和数据集独立,那么推断就是概率分布依参数后验分布的期望。推断问题的中⼼是参数后验分布的求解,推断分为:
- 精确推断
- 近似推断-参数空间无法精确求解
①确定性近似-如变分推断
②随机近似-如 MCMC,MH,Gibbs
二、公式导出
有以下数据:
:observed variable
:latent variable + parameter
:complete data
我们记为隐变量和参数的集合。接着我们变换概率的形式然后引入分布:
式子两边同时对求积分:
我们的目的是找到一个使得与更接近,也就是使越小越好,也就是要使越大越好:
在变分推断中我们对做以下假设(基于平均场假设的变分推断),也就是说我们把多维变量的不同维度分为M组,组与组之间是相互独立的:
求解时我们固定来求,接下来将写作两部分:
对于①:
对于②:
然后我们可以得到:
当才能得到最⼤值。
三、回顾EM算法
回想一下广义EM算法中,我们需要固定然后求解与最接近的,这里就可以使用变分推断的方法,我们有如下式子:
然后求解:
使用上述平均场变分推断的话,我们就可以得出以下结果(注意这里不是代表的第个维度):
一次迭代求解的过程如下:
我们看到,对每⼀个,都是固定其余的,求这个值,于是可以使⽤坐标上升的⽅法进⾏迭代求解,上⾯的推导针对单个样本,但是对数据集也是适⽤的。
基于平均场假设的变分推断存在⼀些问题:
①假设太强,⾮常复杂的情况下,假设不适⽤;
②期望中的积分,可能⽆法计算。
四、随机梯度变分推断(SGVI)
- 直接求导数的方法
从到的过程叫做⽣成过程或译码,从到过程叫推断过程或编码过程,基于平均场的变分推断可以导出坐标上升的算法,但是这个假设在⼀些情况下假设太强,同时积分也不⼀定能算。我们知道,优化⽅法除了坐标上升,还有梯度上升的⽅式,我们希望通过梯度上升来得到变分推断的另⼀种算法。
假定,是和这个参数相连的概率分布。于是,其中,这里的表示的是样本。
这个期望可以通过蒙特卡洛采样来近似,从⽽得到梯度,然后利⽤梯度上升的⽅法来得到参数:
但是由于求和符号中存在⼀个对数项,于是直接采样的⽅差很⼤,需要采样的样本⾮常多。为了解决⽅差太⼤的问题,我们采⽤重参数化技巧(Reparameterization)。
- 重参数化技巧
我们取,对于,我们有。代入上面的梯度中:
对这个式⼦进⾏蒙特卡洛采样,然后计算期望,得到梯度。
SGVI的迭代过程为:
网友评论