当前位置: 首页 > news >正文

变分推断 (Variational Inference) 解析

前言

如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。


变分推断

在贝叶斯方法中,针对含有隐变量的学习和推理,通常有两类方式,其一是马尔可夫链蒙特卡罗法 (MCMC),其通过采样来近似估计后验概率分布;其二是变分推断,通过解析的方法近似计算后验概率分布。

假设联合概率分布 p(x,z)p(x,z)p(x,z),其中 xxx 是观测变量,即数据,zzz 是隐变量,目标是学习后验概率分布 p(z∣x)p(z\mid x)p(zx)

由于 p(z∣x)p(z\mid x)p(zx) 通常非常复杂,难以直接求解,因此变分推断使用分布 q(z)q(z)q(z) 来近似 p(z∣x)p(z\mid x)p(zx),并通过限制 q(z)q(z)q(z) 形式,得到一种局部最优、但具有确定解的近似后验分布。其中 q(z)q(z)q(z) 即为变分分布 (variational distribution),q(z)q(z)q(z)p(z∣x)p(z\mid x)p(zx) 之间的相似度通过 KL\text{KL}KL 散度衡量。

如下图所示,我们希望在集合 Q\mathcal{Q}Q 中找到 q∗(z)q^*(z)q(z) 使其与 p(z∣x)p(z\mid x)p(zx) 之间的 KL\text{KL}KL 散度尽可能小。

在这里插入图片描述
基于上述想法,对 KL(q(z)∥p(z∣x))\text{KL}(q(z)\|p(z\mid x))KL(q(z)p(zx)) 进行拆解:
KL(q(z)∥p(z∣x))=∫q(z)log⁡q(z)dz−∫q(z)log⁡p(z∣x)dz=log⁡p(x)−{∫q(z)log⁡p(x,z)dz−∫q(z)log⁡q(z)dz}=log⁡p(x)−Eq[log⁡p(x,z)−log⁡q(z)].\begin{aligned} \text{KL}(q(z)\| p(z\mid x)) &= \int q(z) \log q(z) \text{d} z - \int q(z) \log p(z\mid x) \text{d} z \\ &= \log p(x) - \left\{\int q(z) \log p(x,z) \text{d} z - \int q(z) \log q(z) \text{d} z\right\} \\ &= \log p(x) - \mathbb{E}_q\left[\log p(x,z)-\log q(z)\right]. \end{aligned} KL(q(z)p(zx))=q(z)logq(z)dzq(z)logp(zx)dz=logp(x){q(z)logp(x,z)dzq(z)logq(z)dz}=logp(x)Eq[logp(x,z)logq(z)].

由于 KL\text{KL}KL 散度非负,因此:
log⁡p(x)≥Eq[log⁡p(x,z)−log⁡q(z)].\log p(x) \geq \mathbb{E}_q\left[\log p(x,z)-\log q(z)\right]. logp(x)Eq[logp(x,z)logq(z)].

不等式左端为证据 (Evidence),右端则为证据下界 (Evidence Lower Bound, ELBO\text{ELBO}ELBO),记作 L(q)L(q)L(q)(ELBO 经常出现于各类与贝叶斯有关的文章中)。

我们的目的是求解 q(z)q(z)q(z) 来最小化 KL(q(z)∥p(z∣x))\text{KL}(q(z)\| p(z\mid x))KL(q(z)p(zx)),由于 log⁡p(x)\log p(x)logp(x) 是常量,问题转化为最大化 ELBO\text{ELBO}ELBO L(q)L(q)L(q).

q(z)q(z)q(z) 形式过于复杂,最大化 ELBO\text{ELBO}ELBO 依然难以求解,因此通常会对 q(z)q(z)q(z) 形式进行约束,一种常见的方式是假设 zzz 服从分布
q(z)=∏iqi(zi),q(z)=\prod_{i} q_i(z_i), q(z)=iqi(zi),

zzz 可拆解为一系列相互独立的 ziz_izi,此时的变分分布称为平均场 (Mean Filed).

总结一下,变分推断常见步骤如下:

  • 定义变分分布 q(z)q(z)q(z)
  • 推导证据下界 ELBO\text{ELBO}ELBO 表达式;
  • 最大化 ELBO\text{ELBO}ELBO,得到 q∗(z)q^*(z)q(z),作为后验概率分布 p(z∣x)p(z\mid x)p(zx) 的近似。

广义 EM

上述变分推断过程可以与「广义 EM」联系起来,由于 log⁡p(x)≥ELBO\log p(x)\geq \text{ELBO}logp(x)ELBO 恒成立,若将模型参数 θ\thetaθ 引入其中,即可得到:

log⁡p(x∣θ)≥Eq[log⁡p(x,z∣θ)−log⁡q(z)],\log p(x\mid \theta) \geq \mathbb{E}_q\left[\log p(x,z\mid \theta)-\log q(z)\right], logp(xθ)Eq[logp(x,zθ)logq(z)],

此时有两种理解:

  • 用分布 q(z)q(z)q(z) 近似联合概率分布 p(x,z∣θ)p(x,z\mid \theta)p(x,zθ),最小化分布距离 KL(q∥p)\text{KL}(q\|p)KL(qp)
  • 采用极大似然估计的思想,最大化对数似然函数 log⁡p(x∣θ)\log p(x\mid \theta)logp(xθ)(也可以理解为最大化证据)。

虽然两种视角不同,但结论一致,即最大化 ELBO\text{ELBO}ELBO,记作 L(q,θ)L(q,\theta)L(q,θ)。对应于广义 EM 算法,即采用迭代的方式,循环执行 E 步和 M 步,直至收敛:

  • 【E 步】固定 θ\thetaθ,求 L(q,θ)L(q,\theta)L(q,θ)qqq 的最大化;
  • 【M 步】固定 qqq,求 L(q,θ)L(q,\theta)L(q,θ)θ\thetaθ 的最大化。

上述迭代可以保证 log⁡p(x∣θ(t))\log p(x\mid \theta^{(t)})logp(xθ(t)) 不降,即一定会收敛,但可能会收敛到局部最优:
log⁡p(x∣θ(t−1))=L(q(t),θ(t−1))≤L(q(t),θ(t))≤log⁡p(x∣θ(t))\log p(x \mid \theta^{(t-1)})=L(q^{(t)}, \theta^{(t-1)}) \leq L(q^{(t)}, \theta^{(t)}) \leq \log p(x \mid \theta^{(t)}) logp(xθ(t1))=L(q(t),θ(t1))L(q(t),θ(t))logp(xθ(t))

其中「左边第一个等号」由变分推断原理 + E 步得到,「左边第一个不等号」由 M 步得到,「左边第二个不等号」由变分推断原理得到。


参考资料

  • 周志华. (2016). 机器学习. 清华大学出版社, 北京.
  • 李航. (2019). 统计学习方法. 清华大学出版社, 第 2 版, 北京.
http://www.lryc.cn/news/25384.html

相关文章:

  • 27. 移除元素
  • hive临时目录清理
  • 如何创建发布新品上市新闻稿
  • 关于.bashrc和setup.bash的理解
  • 03 Android基础--fragment
  • Redis使用,AOF、RDB
  • SOLIDWORKS Premium 2023 SP1.0 三维设计绘图软件
  • PyQGIS开发--自动化地图布局案例
  • 严格模式和非严格模式下的this指向问题
  • vue2、vue3组件传值,引用类型,对象数组如何处理
  • 165. 小猫爬山
  • ECharts教程(详细)
  • pinia
  • mysql中insert语句的五种用法
  • YOLOV7模型调试记录
  • 模拟光伏不确定性——拉丁超立方抽样生成及缩减场景(Matlab全代码)
  • Elasticsearch聚合查询速览
  • CEC2017:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解cec2017(提供MATLAB代码)
  • Vue3 企业级项目实战:通关 Vue3 企业级项目开发,升职加薪快人一步
  • vue样式绑定(v-if)
  • 无需公网IP,安全稳定实现U8C异地访问
  • Graph Neural Network(GNN)图神经网络
  • JSTL核心库的简单使用
  • ffmpeg.dll丢失怎么办,有什么修复ffmpeg.dll的方法
  • 【学习笔记】NOIP爆零赛9
  • SpringMVC的常用组件和工作流程及部分注解解析
  • 创建Firebase项目并接入Firebase推送: Firebase Cloud Messaging (FCM)
  • MyBatis的简单使用
  • 最新的Windows docker安装方法
  • 2023软件测试工程师涨薪攻略,3年如何达到30K