变分算法-应用

时间:2022-12-14 14:00:57

注:本文中所有公式和思路来自于邹博先生的机器学习升级版,我只是为了加深记忆和理解写的本文。


上一篇文章算是比较详细的介绍了变分算法,本篇文章将会介绍一下一些变分框架在其他模型上的应用。


变分贝叶斯:


变分不光可以推测隐变量,还可以估计参数本身,我们可以使用平均场方法,将后验概率写成参数各自分布的乘积,既得到变分贝叶斯(Variational Bayesian, VB) 

变分算法-应用


高斯分布的变分贝叶斯:


我们使用变分贝叶斯推断一维高斯分布p(μ, σ2 | D)后验概率的参数,用λ来替代σ2的导数,又称λ为精度:

变分算法-应用

为了方便计算,使用共轭先验的形式:

变分算法-应用

我们可以看成是混合高斯分布GMM,因为高斯分布的均值的共轭先验分布仍然是高斯分布,方差的共轭先验分布式伽马分布。那么我们可以近似分解成:

变分算法-应用

目标函数

变分算法-应用

我们首先给定几个超参数a,b,κ,μ,那么则有:

变分算法-应用

将这几个分布带入目标函数:

变分算法-应用

既然得到上边的结果,接下来我们就要进行参数估计了,根据变分的思想,我们估计一个参数,是试用其他参数来进行求期望得到的,那么就先更新μ:

变分算法-应用

我们可以通过对比高斯分布的对数形式:

变分算法-应用

计算得到:

变分算法-应用


接着更新λ:

变分算法-应用

通过对比Gamma分布对数形式:

变分算法-应用

得到:

变分算法-应用

同时:

变分算法-应用

将结果带入公式,根据:

变分算法-应用

以及:

变分算法-应用

得到:

变分算法-应用

这就是更新过程,公式虽然多一点,都没啥新东西,比较简单。


变分总结


变分既能够推断隐变量,也能推断未知参数,是很有力的参数估计工具。难点在于推导复杂。

相对于采样,变分不容易计算但是效率很高。

平均场方法的变分推导,对离散和连续的隐变量都适用,在平均场方法的框架下,变分推导一次更新一个分布,其本质是坐标上升。

变分除了和贝叶斯结合得到VB,还可以和EM算法结合,得到VBEM,用于带隐变量和未知参数的估计,如GMM、LDA


到此变分算法就全部介绍完了,欢迎批评指正。