前言

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


变分推断

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

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

由于 p ( z ∣ x ) p(z\mid x) p(z∣x) 通常非常复杂,难以直接求解,因此变分推断使用分布 q ( z ) q(z) q(z) 来近似 p ( z ∣ x ) p(z\mid x) p(z∣x),并通过限制 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(z∣x) 之间的相似度通过 KL \text{KL} KL 散度衡量。

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


基于上述想法,对 KL ( q ( z ) ∥ p ( z ∣ x ) ) \text{KL}(q(z)\|p(z\mid x)) KL(q(z)∥p(z∣x)) 进行拆解:
KL ( q ( z ) ∥ p ( z ∣ x ) ) = ∫ q ( z ) log ⁡ q ( z ) d z − ∫ q ( z ) log ⁡ p ( z ∣ x ) d z = log ⁡ p ( x ) − { ∫ q ( z ) log ⁡ p ( x , z ) d z − ∫ q ( z ) log ⁡ q ( z ) d z } = log ⁡ p ( x ) − E q [ 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(z∣x))​=∫q(z)logq(z)dz−∫q(z)logp(z∣x)dz=logp(x)−{∫q(z)logp(x,z)dz−∫q(z)logq(z)dz}=logp(x)−Eq​[logp(x,z)−logq(z)].​

由于 KL \text{KL} KL 散度非负,因此:
log ⁡ p ( x ) ≥ E q [ 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(z∣x)),由于 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) 形式进行约束,一种常见的方式是假设 z z z 服从分布
q ( z ) = ∏ i q i ( z i ) , q(z)=\prod_{i} q_i(z_i), q(z)=i∏​qi​(zi​),

即 z z z 可拆解为一系列相互独立的 z i z_i zi​,此时的变分分布称为平均场 (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(z∣x) 的近似。

广义 EM

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

log ⁡ p ( x ∣ θ ) ≥ E q [ 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(q∥p);
  • 采用极大似然估计的思想,最大化对数似然函数 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,θ) 对 q q q 的最大化;
  • 【M 步】固定 q q q,求 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∣θ(t−1))=L(q(t),θ(t−1))≤L(q(t),θ(t))≤logp(x∣θ(t))

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


参考资料

  • 周志华. (2016). 机器学习. 清华大学出版社, 北京.
  • 李航. (2019). 统计学习方法. 清华大学出版社, 第 2 版, 北京.

变分推断 (Variational Inference) 解析相关推荐

  1. 变分推断(variational inference)学习笔记(1)——概念介绍

    ref:http://www.crescentmoon.info/?p=709#more-709 问题描述 变分推断是一类用于贝叶斯估计和机器学习领域中近似计算复杂(intractable)积分的技术 ...

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

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

  3. MCMC方法与变分推断

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

  4. 一文读懂贝叶斯推理问题:MCMC方法和变分推断

    全文共6415字,预计学习时长20分钟或更长 图片来源:pexels.com/@lum3n-com-44775 贝叶斯推理(Bayesian inference)是统计学中的一个重要问题,也是许多机器 ...

  5. 变分推断(Variational Inference)解析

    一.什么是变分推断 假设在一个贝叶斯模型中,xxx为一组观测变量,zzz为一组隐变量(参数也看做随机变量,包含在zzz中),则推断问题为计算后验概率密度P=(z∣x)P=(z|x)P=(z∣x).根据 ...

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

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

  7. 变分推断(variational inference)/variational EM

    诸神缄默不语-个人CSDN博文目录 由于我真的,啥都不会,所以本文基本上就是,从0开始. 我看不懂的博客就是写得不行的博客.所以我只写我看得懂的部分. 持续更新. 文章目录 1. 琴生不等式 2. 香 ...

  8. 变分贝叶斯推断(Variational Bayes Inference)简介

    通常在研究贝叶斯模型中,很多情况下我们关注的是如何求解后验概率(Posterior),不幸的是,在实际模型中我们很难通过简单的贝叶斯理论求得后验概率的公式解,但是这并不影响我们对贝叶斯模型的爱--既然 ...

  9. Collapsed Variational Inference(Collapsed变分推断)算法以LDA推导为例

    本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 简介 LDA变分推断 LDA的Collapse ...

最新文章

  1. c++ 包络谱分析代码_基于特征分析谱估计算法(Capon, MUSIC, ESPRIT)的C++实现
  2. 第一个shell脚本
  3. python 2 3 共存_python 2 3 共存
  4. python3(十一)内置模块和类型转换
  5. java自定义标签简单_JSP 自定义标签之一 简单实例
  6. 《TableStore最佳实践:GEO索引打造店铺搜索系统》
  7. 聚数引智,承德大数据产业对接交流会将于2019中国国际数字经济博览会期间召开...
  8. linux-centos连网
  9. 面试必知的25个经典回答 ,最全的面试干货,没有之一
  10. 如何实现TextBox与DropDownList的级联
  11. java栈和队列实现删除,数据结构学习--Java栈和队列
  12. python层次聚类_python中做层次聚类,使用scipy.cluster.hierarchy.fclusterdata方法 | 学步园...
  13. [OfficeExcel] OfficeExcel2010 第23讲 Excel饼图美化与PPT图表
  14. 业务侧-到底应该怎么做A/Btest
  15. 软考高级 真题 2010年上半年 信息系统项目管理师 综合知识
  16. Docker compose 部署habor
  17. OllyDbg断点详解
  18. 关于发布后网站调用本地exe的曲线救国之路
  19. 服务器修改ip为什么需要重启,xp修改ip需要重启 - 卡饭网
  20. 招聘工作者和面试官的特征

热门文章

  1. 【Linux】安装 Ubuntu18.04 全程实录(安装 NVIDIA 驱动,安装主题美化,安装应用程序,网易云无法启动,GoldenDict 音标显示不正常)
  2. 蜂群思维三个关键词:群体智慧、分布式、涌现
  3. 计算机在F1的应用,电脑入门,F1到F12有什么用
  4. 乐忧商城项目总结-1
  5. Zigbee 无线传感网络 无线通信技术 协议体系结构 OSAL
  6. 读冯友兰之《中国哲学简史》
  7. c语言中多线程的执行顺序,ReentrantLock实现 多线程顺序执行任务
  8. python慢的原因
  9. 服务器虚拟化pue,降低数据中心PUE的八个办法
  10. 哔哩哔哩视频合并 B站缓存视频合并 安卓版 音视频合并 基于ffmpeg