机器学习——变分推断

  • 基于平均场假设的变分推断
  • SGVI

我们已经知道概率模型可以分为,频率派的优化问题和贝叶斯派的积分问题。从贝叶斯角度来看推断,对于 x^\hat{x}x^这样的新样本,需要得到:
p(x^∣X)=∫θp(x^,θ∣X)dθ=∫θp(θ∣X)p(x^∣θ,X)dθp(\hat{x}|X)=\int_\theta p(\hat{x},\theta|X)d\theta=\int_\theta p(\theta|X)p(\hat{x}|\theta,X)d\thetap(x^∣X)=∫θ​p(x^,θ∣X)dθ=∫θ​p(θ∣X)p(x^∣θ,X)dθ
如果新样本和数据集独立,那么推断就是概率分布依参数后验分布的期望。
我们看到,推断问题的中心是参数后验分布的求解,推断分为:

  • 精确推断
  • 近似推断-参数空间无法精确求解
    • 确定性近似-如变分推断
    • 随机近似-如MCMC,MH,Gibbs

基于平均场假设的变分推断

我们记Z\mathcal{Z}Z为隐变量和参数的集合,Zi\mathcal{Z}_iZi​为第iii维的参数,于是,回顾一下EM中的推导:
logp(X)=logp(X,Z)−logp(Z∣X)=logp(X,Z)q(Z)−logp(Z∣X)q(Z)logp(X)=logp(X,Z)-logp(Z|X)=log{\frac{p(X,Z)}{q(Z)}}-log{\frac{p(Z|X)}{q(Z)}}logp(X)=logp(X,Z)−logp(Z∣X)=logq(Z)p(X,Z)​−logq(Z)p(Z∣X)​
左右两边分别积分:
Left:∫Zq(Z)log⁡p(X)dZ=log⁡p(X)Right:∫Z[log⁡p(X,Z)q(Z)−log⁡p(Z∣X)q(Z)]q(Z)dZ=ELBO+KL(q,p)Left:\int_Zq(Z)\log p(X)dZ=\log p(X)\\ Right:\int_Z[\log \frac{p(X,Z)}{q(Z)}-\log \frac{p(Z|X)}{q(Z)}]q(Z)dZ=ELBO+KL(q,p) Left:∫Z​q(Z)logp(X)dZ=logp(X)Right:∫Z​[logq(Z)p(X,Z)​−logq(Z)p(Z∣X)​]q(Z)dZ=ELBO+KL(q,p)
第二个式子可以写为变分和KL散度的和:
L(q)+KL(q,p)L(q)+KL(q,p)L(q)+KL(q,p)
由于这个式子是常数,于是寻找q≃pq\simeq pq≃p就相当于对L(q)L(q)L(q)最大值
q^(Z)=argmaxq(Z)L(q)\hat{q}(Z)=\mathop{argmax}_{q(Z)}L(q)q^​(Z)=argmaxq(Z)​L(q)
假设q(Z)q(Z)q(Z)可以划分为M个组(平均场近似):
q(Z)=∏i=1Mqi(Zi)q(Z)=\prod\limits_{i=1}^Mq_i(Z_i)q(Z)=i=1∏M​qi​(Zi​)
因此,在L(q)=∫Zq(Z)log⁡p(X,Z)dZ−∫Zq(Z)log⁡q(Z)L(q)=\int_Zq(Z)\log p(X,Z)dZ-\int_Zq(Z)\log{q(Z)}L(q)=∫Z​q(Z)logp(X,Z)dZ−∫Z​q(Z)logq(Z)中,看p(Zj)p(Z_j)p(Zj​),第一项:
∫Zq(Z)log⁡p(X,Z)dZ=∫Z∏i=1Mqi(Zi)log⁡p(X,Z)dZ=∫Zjqj(Zj)∫Z−Zj∏i≠jqi(Zi)log⁡p(X,Z)dZ=∫Zjqj(Zj)E∏i≠jqi(Zi)[log⁡p(X,Z)]dZj\int_Zq(Z)\log p(X,Z)dZ=\int_Z\prod\limits_{i=1}^Mq_i(Z_i)\log p(X,Z)dZ\\ =\int_{Z_j}q_j(Z_j)\int_{Z-Z_{j}}\prod\limits_{i\ne j}q_i(Z_i)\log p(X,Z)dZ\\ =\int_{Z_j}q_j(Z_j)\mathbb{E}_{\prod\limits_{i\ne j}q_i(Z_i)}[\log p(X,Z)]dZ_j ∫Z​q(Z)logp(X,Z)dZ=∫Z​i=1∏M​qi​(Zi​)logp(X,Z)dZ=∫Zj​​qj​(Zj​)∫Z−Zj​​i​=j∏​qi​(Zi​)logp(X,Z)dZ=∫Zj​​qj​(Zj​)Ei​=j∏​qi​(Zi​)​[logp(X,Z)]dZj​
第二项:
∫Zq(Z)log⁡q(Z)dZ=∫Z∏i=1Mqi(Zi)∑i=1Mlog⁡qi(Zi)dZ\int_Zq(Z)\log q(Z)dZ=\int_Z\prod\limits_{i=1}^Mq_i(Z_i)\sum\limits_{i=1}^M\log q_i(Z_i)dZ∫Z​q(Z)logq(Z)dZ=∫Z​i=1∏M​qi​(Zi​)i=1∑M​logqi​(Zi​)dZ
展开求和项第一项为:
∫Z∏i=1Mqi(Zi)log⁡q1(Z1)dZ=∫Z1q1(Z1)log⁡q1(Z1)dZ1\int_Z\prod\limits_{i=1}^Mq_i(Z_i)\log q_1(Z_1)dZ=\int_{Z_1}q_1(Z_1)\log q_1(Z_1)dZ_1∫Z​i=1∏M​qi​(Zi​)logq1​(Z1​)dZ=∫Z1​​q1​(Z1​)logq1​(Z1​)dZ1​
所以:
∫Zq(Z)log⁡q(Z)dZ=∑i=1M∫Ziqi(Zi)log⁡qi(Zi)dZi=∫Zjqj(Zj)log⁡qj(Zj)dZj+Const\int_Zq(Z)\log q(Z)dZ=\sum\limits_{i=1}^M\int_{Z_i}q_i(Z_i)\log q_i(Z_i)dZ_i=\int_{Z_j}q_j(Z_j)\log q_j(Z_j)dZ_j+Const∫Z​q(Z)logq(Z)dZ=i=1∑M​∫Zi​​qi​(Zi​)logqi​(Zi​)dZi​=∫Zj​​qj​(Zj​)logqj​(Zj​)dZj​+Const
两项相减,令E∏i≠jqi(Zi)[log⁡p(X,Z)]=log⁡p^(X,Zj)\mathbb{E}_{\prod\limits_{i\ne j}q_i(Z_i)}[\log p(X,Z)]=\log \hat{p}(X,Z_j)Ei​=j∏​qi​(Zi​)​[logp(X,Z)]=logp^​(X,Zj​)可以得到:
−∫Zjqj(Zj)log⁡qj(Zj)p^(X,Zj)dZj≤0-\int_{Z_j}q_j(Z_j)\log\frac{q_j(Z_j)}{\hat{p}(X,Z_j)}dZ_j\le 0−∫Zj​​qj​(Zj​)logp^​(X,Zj​)qj​(Zj​)​dZj​≤0
于是最大的qj(Zj)=p^(X,Zj)q_j(Z_j)=\hat{p}(X,Z_j)qj​(Zj​)=p^​(X,Zj​)才能得到最大值。我们看到,对每一个qjq_jqj​,都是固定其余的qiq_iqi​,求这个值,于是可以使用坐标上升的方法进行迭代求解,上面的推导针对单个样本,但是对数据集也是适用的。
基于平均场假设的变分推断存在一些问题:

  • 假设太强,Z非常复杂的情况下,假设不适用
  • 期望中的积分,可能无法计算

SGVI

从Z到X的过程叫做生成过程或译码,反过来的过程叫推断过程或编码过程,基于平均场的变分推断可以导出坐标上升的算法,但是这个假设在一些情况下假设太强,同时积分也不一定能算。我们知道,优化方法除了坐标上升,还有梯度上升的方式,我们希望通过梯度上升来得到变分推断的另一种算法。
我们的目标函数:
q^(Z)=argmaxq(Z)L(q)\hat{q}(Z)=\mathop{argmax}_{q(Z)}L(q)q^​(Z)=argmaxq(Z)​L(q)
假定q(Z)=qϕ(Z)q(Z)=q_\phi(Z)q(Z)=qϕ​(Z),是和ϕ\phiϕ这个参数相连的概率分布。于是argmaxq(Z)L(q)=argmaxϕL(ϕ)\mathop{argmax}_{q(Z)}L(q)=\mathop{argmax}_{\phi}L(\phi)argmaxq(Z)​L(q)=argmaxϕ​L(ϕ),其中L(ϕ)=Eqϕ[log⁡pθ(xi,z)−log⁡qϕ(z)]L(\phi)=\mathbb{E}_{q_\phi}[\log p_\theta(x^i,z)-\log q_\phi(z)]L(ϕ)=Eqϕ​​[logpθ​(xi,z)−logqϕ​(z)],这里xix^ixi表示第i个样本。
∇ϕL(ϕ)=∇ϕEqϕ[log⁡pθ(xi,z)−log⁡qϕ(z)]=∇ϕ∫qϕ(z)[log⁡pθ(xi,z)−log⁡qϕ(z)]dz=∫∇ϕqϕ(z)[log⁡pθ(xi,z)−log⁡qϕ(z)]dz+∫qϕ(z)∇ϕ[log⁡pθ(xi,z)−log⁡qϕ(z)]dz=∫∇ϕqϕ(z)[log⁡pθ(xi,z)−log⁡qϕ(z)]dz−∫qϕ(z)∇ϕlog⁡qϕ(z)dz=∫∇ϕqϕ(z)[log⁡pθ(xi,z)−log⁡qϕ(z)]dz−∫∇ϕqϕ(z)dz=∫∇ϕqϕ(z)[log⁡pθ(xi,z)−log⁡qϕ(z)]dz=∫qϕ(∇ϕlog⁡qϕ)(log⁡pθ(xi,z)−log⁡qϕ(z))dz=Eqϕ[(∇ϕlog⁡qϕ)(log⁡pθ(xi,z)−log⁡qϕ(z))]\nabla_\phi L(\phi)=\nabla_\phi\mathbb{E}_{q_\phi}[\log p_\theta(x^i,z)-\log q_\phi(z)]\\ =\nabla_\phi\int q_\phi(z)[\log p_\theta(x^i,z)-\log q_\phi(z)]dz\\ =\int\nabla_\phi q_\phi(z)[\log p_\theta(x^i,z)-\log q_\phi(z)]dz+\int q_\phi(z)\nabla_\phi [\log p_\theta(x^i,z)-\log q_\phi(z)]dz\\ =\int\nabla_\phi q_\phi(z)[\log p_\theta(x^i,z)-\log q_\phi(z)]dz-\int q_\phi(z)\nabla_\phi \log q_\phi(z)dz\\ =\int\nabla_\phi q_\phi(z)[\log p_\theta(x^i,z)-\log q_\phi(z)]dz-\int \nabla_\phi q_\phi(z)dz\\ =\int\nabla_\phi q_\phi(z)[\log p_\theta(x^i,z)-\log q_\phi(z)]dz\\ =\int q_\phi(\nabla_\phi\log q_\phi)(\log p_\theta(x^i,z)-\log q_\phi(z))dz\\ =\mathbb{E}_{q_\phi}[(\nabla_\phi\log q_\phi)(\log p_\theta(x^i,z)-\log q_\phi(z))] ∇ϕ​L(ϕ)=∇ϕ​Eqϕ​​[logpθ​(xi,z)−logqϕ​(z)]=∇ϕ​∫qϕ​(z)[logpθ​(xi,z)−logqϕ​(z)]dz=∫∇ϕ​qϕ​(z)[logpθ​(xi,z)−logqϕ​(z)]dz+∫qϕ​(z)∇ϕ​[logpθ​(xi,z)−logqϕ​(z)]dz=∫∇ϕ​qϕ​(z)[logpθ​(xi,z)−logqϕ​(z)]dz−∫qϕ​(z)∇ϕ​logqϕ​(z)dz=∫∇ϕ​qϕ​(z)[logpθ​(xi,z)−logqϕ​(z)]dz−∫∇ϕ​qϕ​(z)dz=∫∇ϕ​qϕ​(z)[logpθ​(xi,z)−logqϕ​(z)]dz=∫qϕ​(∇ϕ​logqϕ​)(logpθ​(xi,z)−logqϕ​(z))dz=Eqϕ​​[(∇ϕ​logqϕ​)(logpθ​(xi,z)−logqϕ​(z))]
这个期望可以通过蒙特卡洛采样来近似,从而得到梯度,然后利用梯度上升的方法来得到参数:
zl∼qϕ(z)Eqϕ[(∇ϕlog⁡qϕ)(log⁡pθ(xi,z)−log⁡qϕ(z))]∼1L∑l=1L(∇ϕlog⁡qϕ)(log⁡pθ(xi,z)−log⁡qϕ(z))z^l\sim q_\phi(z)\\ \mathbb{E}_{q_\phi}[(\nabla_\phi\log q_\phi)(\log p_\theta(x^i,z)-\log q_\phi(z))]\sim \frac{1}{L}\sum\limits_{l=1}^L(\nabla_\phi\log q_\phi)(\log p_\theta(x^i,z)-\log q_\phi(z))zl∼qϕ​(z)Eqϕ​​[(∇ϕ​logqϕ​)(logpθ​(xi,z)−logqϕ​(z))]∼L1​l=1∑L​(∇ϕ​logqϕ​)(logpθ​(xi,z)−logqϕ​(z))
但是由于求和符号中存在一个对数项,于是直接采样的方差很大,需要采样的样本非常多。为了解决方差太大的问题,我们采用Reparameterization的技巧。
考虑:
∇ϕL(ϕ)=∇ϕEqϕ[log⁡pθ(xi,z)−log⁡qϕ(z)]\nabla_\phi L(\phi)=\nabla_\phi\mathbb{E}_{q_\phi}[\log p_\theta(x^i,z)-\log q_\phi(z)]∇ϕ​L(ϕ)=∇ϕ​Eqϕ​​[logpθ​(xi,z)−logqϕ​(z)]
我们取:z=gϕ(ε,xi),ε∼p(ε)z=g_\phi(\varepsilon,x^i),\varepsilon\sim p(\varepsilon)z=gϕ​(ε,xi),ε∼p(ε),于是对后验:z∼qϕ(z∣xi)z\sim q_\phi(z|x^i)z∼qϕ​(z∣xi),有∣qϕ(z∣xi)dz∣=∣p(ε)dε∣|q_\phi(z|x^i)dz|=|p(\varepsilon)d\varepsilon|∣qϕ​(z∣xi)dz∣=∣p(ε)dε∣。代入上面的梯度中:
∇ϕL(ϕ)=∇ϕEqϕ[log⁡pθ(xi,z)−log⁡qϕ(z)]=∇ϕL(ϕ)=∇ϕ∫[log⁡pθ(xi,z)−log⁡qϕ(z)]qϕdz=∇ϕ∫[log⁡pθ(xi,z)−log⁡qϕ(z)]pεdε=Ep(ε)[∇ϕ[log⁡pθ(xi,z)−log⁡qϕ(z)]]=Ep(ε)[∇z[log⁡pθ(xi,z)−log⁡qϕ(z)]∇ϕz]=Ep(ε)[∇z[log⁡pθ(xi,z)−log⁡qϕ(z)]∇ϕgϕ(ε,xi)]\nabla_\phi L(\phi)=\nabla_\phi\mathbb{E}_{q_\phi}[\log p_\theta(x^i,z)-\log q_\phi(z)]\\ =\nabla_\phi L(\phi)=\nabla_\phi\int[\log p_\theta(x^i,z)-\log q_\phi(z)]q_\phi dz\\ =\nabla_\phi\int[\log p_\theta(x^i,z)-\log q_\phi(z)]p_\varepsilon d\varepsilon\\ =\mathbb{E}_{p(\varepsilon)}[\nabla_\phi[\log p_\theta(x^i,z)-\log q_\phi(z)]]\\ =\mathbb{E}_{p(\varepsilon)}[\nabla_z[\log p_\theta(x^i,z)-\log q_\phi(z)]\nabla_\phi z]\\ =\mathbb{E}_{p(\varepsilon)}[\nabla_z[\log p_\theta(x^i,z)-\log q_\phi(z)]\nabla_\phi g_\phi(\varepsilon,x^i)]∇ϕ​L(ϕ)=∇ϕ​Eqϕ​​[logpθ​(xi,z)−logqϕ​(z)]=∇ϕ​L(ϕ)=∇ϕ​∫[logpθ​(xi,z)−logqϕ​(z)]qϕ​dz=∇ϕ​∫[logpθ​(xi,z)−logqϕ​(z)]pε​dε=Ep(ε)​[∇ϕ​[logpθ​(xi,z)−logqϕ​(z)]]=Ep(ε)​[∇z​[logpθ​(xi,z)−logqϕ​(z)]∇ϕ​z]=Ep(ε)​[∇z​[logpθ​(xi,z)−logqϕ​(z)]∇ϕ​gϕ​(ε,xi)]
对这个式子进行蒙特卡洛采样,然后计算期望,得到梯度。

机器学习——变分推断相关推荐

  1. 机器学习笔记之变分推断(四)随机梯度变分推断(SGVI)

    机器学习笔记之变分推断--随机梯度变分推断 引言 回顾:基于平均场假设的变分推断 经典变分推断的问题 随机梯度变分推断的求解过程 引言 上一节介绍了基于平均场假设的变分推断与广义EM算法的关系,本节将 ...

  2. 机器学习之变分推断(三)基于平均场假设变分推断与广义EM

    机器学习笔记之变分推断--基于平均场假设变分推断与广义EM 引言 回顾:基于平均场假设的变分推断 深入认识平均场假设 经典变分推断与广义EM 引言 上一节介绍了基于平均场假设 的变分推断推导过程.本节 ...

  3. 机器学习-白板推导系列笔记(十二)-变分推断(VI)

    此文章主要是结合哔站shuhuai008大佬的白板推导视频: VI变分推断_126min 全部笔记的汇总贴:机器学习-白板推导系列笔记 一.背景 对于概率模型 从频率派角度来看就会是一个优化问题 从贝 ...

  4. 机器学习笔记之玻尔兹曼机(三)梯度求解(基于平均场理论的变分推断)

    机器学习笔记之玻尔兹曼机--基于平均场推断梯度求解 引言 回顾:玻尔兹曼机模型参数梯度求解困难与MCMC方法的处理方式 变分推断方法处理玻尔兹曼机对数似然梯度 引言 上一节介绍了使用马尔可夫链蒙特卡洛 ...

  5. 机器学习笔记之玻尔兹曼机(三)基于平均场理论变分推断的梯度求解(续)

    机器学习笔记之玻尔兹曼机--基于平均场推断梯度求解[续] 引言 Λ 3 \Lambda_3 Λ3​梯度求解 求解最优参数 ϕ ^ j \hat {\phi}_j ϕ^​j​ 引言 基于玻尔兹曼机(三) ...

  6. 西瓜书+实战+吴恩达机器学习(二三)EM算法和变分推断

    文章目录 0. 前言 1. EM算法 2. 变分推断 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 EM算法是常用的估计参数隐变量的方法,它是一种迭代式算法,E ...

  7. 全新视角:用变分推断统一理解生成模型(VAE、GAN、AAE、ALI)

    前言 我小学开始就喜欢纯数学,后来也喜欢上物理,还学习过一段时间的理论物理,直到本科毕业时,我才慢慢进入机器学习领域.所以,哪怕在机器学习领域中,我的研究习惯还保留着数学和物理的风格:企图从最少的原理 ...

  8. 变分推断(Variational Inference)最新进展简述

    动机 变分推断(Variational Inference, VI)是贝叶斯近似推断方法中的一大类方法,将后验推断问题巧妙地转化为优化问题进行求解,相比另一大类方法马尔可夫链蒙特卡洛方法(Markov ...

  9. MCMC方法与变分推断

    贝叶斯推理(Bayesian inference)是统计学中的一个重要问题,也是许多机器学习方法中经常遇到的问题.例如,用于分类的高斯混合模型或用于主题建模的潜在狄利克雷分配(Latent Diric ...

最新文章

  1. Linux程序映像的布局
  2. SSH原理之图文详解
  3. 文巾解题 461. 汉明距离
  4. 爬虫总结(五)-- 其他技巧
  5. EditText 输入类型 android:inputType=quot;参数类型quot;
  6. 腾讯牛逼,我酸了!!
  7. python相对引用_Python 模块相对引用
  8. tf.div()除法运算
  9. oracle,如何查看视图结构,获得视图中的字段名称、字段类型、字段长度等。...
  10. Python+pandas处理Excel文件中的超市营业额数据
  11. Object类型转换成double/int类型
  12. 资料管理工具VSGoogle?
  13. Linux下vi命令小结
  14. Spring pom配置详解(转)
  15. android应用更换背景图片方法
  16. 【Java面试题】一次完整的Http请求过程(非常详细)
  17. 人类杏仁核的核团:手动分割到自动图谱
  18. 【服务器数据恢复】服务器raid5磁盘阵列分区丢失的数据恢复案例
  19. 矩阵的特征值和特征向量
  20. 微信小程序画布canvas制作海报图片清晰度过低

热门文章

  1. 推荐2022年有微信小程序毕业设计需求的70多个作品
  2. 怎么将服务器加入系统白名单,服务器怎么添加白名单
  3. 微信小程序界面设计入门课程-样式wxss中使用css课程-字体-font-style字体风格
  4. 淘宝店铺装修(首页和宝贝详情页显示不一致)
  5. 苹果原装转接头不能连html,变革之际 iPhone 7P原装lightning耳机及转接头拆解
  6. Oracle数据库备份与恢复命令
  7. 微信外包公司—北京动点软件:微信公众平台案例介绍
  8. Jetpack(七)—— Room
  9. Mac创建.prettierrc文件详解
  10. 《JavaScript高级程序设计》五、引用类型(基本包装类型)