【文生图系列】基础篇-变分推理(数学推导)

news2025/1/12 3:44:24

文章目录

    • KL散度
      • 前向 vs 反向 KL
        • 前向KL
        • 反向KL
        • 可视化
    • 问题描述
    • 变分推理
    • ELBO: Evidence Lower Bound
    • 参考

此篇博文主要介绍什么是变分推理(Variational Inference , VI),以及它的数学推导公式。变分推理,是机器学习中一种流行的方式,使用优化的技术估计复杂概率密度。变分推理的工作原理: 首先选择一系列概率密度函数,然后采用KL散度作为优化度量找到最接近于概率密度的函数。引入evidence lower bound的方法更容易计算近似概率。

KL散度

KL散度是两个分布之间的相对熵,量化概率分布 P ( X ) P \left( X \right) P(X)与候选分布 Q ( X ) Q\left( X \right) Q(X)的相似程度。对于一个离散的随机变量 X X X,概率分布 P P P和分布 Q Q Q之间的KL散度的计算公式如下定义:

在这里插入图片描述

其中 H ( P ) = − Σ x ∈ X P ( x ) l o g P ( x ) \mathbb{H}\left( P \right) = -\Sigma_{x \in X} P \left( x \right)log P \left( x \right) H(P)=ΣxXP(x)logP(x)是分布 P P P的熵, H ( P ) = − Σ x ∈ X P ( x ) l o g Q ( x ) \mathbb{H}\left( P \right) = -\Sigma_{x \in X} P\left( x \right)logQ\left( x \right) H(P)=ΣxXP(x)logQ(x)是分布 P P P和分布 Q Q Q的交叉熵。

KL散度具有如下性质:1. 非负性;2. 非对称性;3. 当KL散度的取值位于 ( 0 , ∞ ) (0,\infty) (0,),越接近于0,说明分布 P P P和分布 Q Q Q越匹配。

此外,概率分布 P P P和分布 Q Q Q之间的KL散度还可以表示为两个概率密度函数 p p p q q q之间对数差的期望。假设随机变量 x x x为概率分布函数 P P P的一个概率值, E \mathbb{E} E为期望,那么KL公式还可如下定义:
在这里插入图片描述

前向 vs 反向 KL

KL散度是非对称的,那也就是说 D K L ( P ∥ Q ) ≠ D K L ( Q ∥ P ) D_{KL} \left( P \| Q \right) \neq D_{KL} \left( Q \| P \right) DKL(PQ)=DKL(QP),因此根据分布 P P P和分布 Q Q Q的位置,可分为前向KL和后向KL。

前向KL

前向KL的公式定义如下。只要近似值不能够覆盖实际概率分布,KL散度将会变得很大,用公式表示就是 lim ⁡ q ( x ) → 0 p ( x ) q ( x ) → ∞ , p ( x ) > 0 \lim_{q\left(x\right) \to 0} \frac{p\left(x\right)}{q\left(x\right)} \rightarrow \infty , p\left(x\right) > 0 limq(x)0q(x)p(x),p(x)>0,当 p ( x ) > 0 , q ( x ) → 0 p\left(x\right) > 0, q\left(x\right) \to 0 p(x)>0,q(x)0时, p ( x ) q ( x ) \frac{p\left(x\right)}{q\left(x\right)} q(x)p(x)的极限值将为 ∞ \infty 。因此,当 p ( x ) > 0 p\left(x\right) > 0 p(x)>0时,必须选择一个概率密度确保 q ( x ) > 0 q \left(x\right) > 0 q(x)>0。这种特殊的情况被称为"zero avoiding",直观理解就是 q q q高估 p p p
在这里插入图片描述

反向KL

反向KL的公式定义如下,其中 lim ⁡ p ( x ) → 0 q ( x ) p ( x ) → ∞ , q ( x ) > 0 \lim_{p \left(x\right) \to 0} \frac{q\left(x\right)}{p\left(x\right)} \rightarrow \infty , q\left(x\right) > 0 limp(x)0p(x)q(x),q(x)>0,当 p ( x ) = 0 p \left(x\right) = 0 p(x)=0时,迫使 q ( x ) = 0 q \left(x\right) = 0 q(x)=0,不然KL散度值将会很大。这种被称为“zero forcing”,直观理解就是 q q q低估 p p p
在这里插入图片描述

可视化

下图展示了双峰分布上的正向和反向KL散度。蓝色轮廓表示实际概率密度 p p p,红色轮廓表示单峰近似 q q q。左一显示正向KL散度最小化, q q q倾向于覆盖 p p p。中间和右一显示了反向KL散度最小化, q q q倾向于锁定到两种模式中的其中一个。

在这里插入图片描述

问题描述

在这里插入图片描述

假设有两个随机变量 X X X Z Z Z,其中 X X X为观测变量, Z Z Z为潜在变量。 X X X Z Z Z的关系如上图所示,观测变量 X X X依赖于潜在变量 Z Z Z,从 Z Z Z X X X的箭头表示条件概率密度 p ( X ∣ Z ) p\left( X | Z \right) p(XZ)。依据贝叶斯公式,可计算后验概率密度 p ( Z ∣ X ) p\left( Z| X \right) p(ZX)

p ( Z ∣ X ) = p ( X ∣ Z ) p ( Z ) p ( X ) p\left( Z| X \right) = \frac{p\left(X|Z\right)p\left( Z \right)}{p\left(X\right)} p(ZX)=p(X)p(XZ)p(Z)

其中,分母 p ( X ) p\left( X \right) p(X)的计算公式为 p ( X ) = ∫ z ∈ Z p ( Z ∣ z ) p ( z ) d z p\left( X \right) = \int_{z \in Z} p \left( Z | z \right) p\left( z \right)dz p(X)=zZp(Zz)p(z)dz z z z为样本空间 Z Z Z中的一个实例。 p ( Z ) p\left( Z \right) p(Z)为先验,它捕获了 Z Z Z的先验信息。

观察的边缘概率密度(marginal probability density) p ( X ) p\left( X \right) p(X)被成为evidence,对于很多模型,evidence的积分依赖于所选模型,要么在闭合形式下不可用,要么需要指数时间计算。

变分推理的目的是为潜在变量的统计推断提供后验概率密度 p ( Z ∣ X ) p\left( Z| X \right) p(ZX)的近似解析,它从可处理的概率密度族中选择潜在变量 Z Z Z的概率密度函数 q q q解决近似问题。变分推理能够有效地计算边缘概率密度(或者evidence)的下界,其基本思想是:一个更高的边缘相似性指示所选统计模型更好地拟合观察到的数据。

变分推理

变分推理VI的目的是从可处理的概率密度族 Q \mathcal{Q} Q中选择一个近似的概率密度 q q q。潜在变量 Z Z Z的每一个在 Q \mathcal{Q} Q中的概率密度 q ( Z ) ∈ Q q\left( Z \right) \in \mathcal{Q} q(Z)Q都是后验的一个近似候选,VI的目的就是从这些候选中选择最优的那一个。依据KL散度的性质,两个分布的KL值越小,两个分布越匹配。假设近似概率密度于观测变量于观测变量条件不相关,那么推理问题就可以看作一个优化问题,公式如下所示。

在这里插入图片描述

优化上述公式,就可从所选的概率家族中得到后验的最佳近似值 q ∗ ( ⋅ ) q^{*}\left( \cdot \right) q(),优化的复杂性取决于概率密度族的选择。计算上述公式中的KL散度,需要知道后验 P P P,但是后验的计算是棘手的。

一个替代的方案是用反向KL散度,这样后验和近似的平均交叉熵可以通过期望计算。因此上述公式可以重新被定义为如下公式。

在这里插入图片描述
然而,由于仍然需要知道后验 P P P,优化反向KL仍然是不可行的。但是可以最小化一个等于它的函数直到一个常数,这就是evidence lower bound,ELBO。

ELBO: Evidence Lower Bound

设上述公式中的KL散度为 D D D,依据下述推导可得到ELBO的公式。
D = D K L ( Q ( Z ) ∥ P ( Z ∣ X ) ) = E z ∈ Q ( Z ) l o g q ( z ) p ( z ∣ x ) = E [ l o g q ( z ) ] − E [ l o g p ( z ∣ x ) ]      = E [ l o g q ( z ) ] − E [ l o g p ( z , x ) ] + E [ l o g p ( x ) ]        = E [ l o g q ( z ) ] − E [ l o g q ( z , x ) ] + l o g p ( x ) ⇓ − D + l o g p ( x ) = E [ l o g q ( z , x ) ] − E [ l o g q ( z ) ] = E L B Q ( Q ) \begin{matrix} D &= D_{KL} \left( Q\left( Z \right) \| P \left( Z | X \right)\right) = \mathbb{E}_{z \in Q\left( Z \right) } log \frac{q\left( z \right)}{p \left( z | x \right)}\\ &= \mathbb{E} [ log q \left( z \right)] - \mathbb{E} [ log p \left( z | x \right)] \qquad \qquad \qquad \; \; \\ &= \mathbb{E} [ log q \left( z \right)] - \mathbb{E} [ log p \left( z , x \right)] + \mathbb{E} [ log p \left( x \right)] \; \; \; \\ &= \mathbb{E} [ log q \left( z \right)] - \mathbb{E} [ log q \left( z , x \right)] + log p \left( x \right) \qquad \end{matrix} \\ \Downarrow \\ -D + log p \left( x \right) = \mathbb{E} [ log q \left( z , x \right)] - \mathbb{E} [ log q \left( z \right)] = ELBQ\left( Q \right) D=DKL(Q(Z)P(ZX))=EzQ(Z)logp(zx)q(z)=E[logq(z)]E[logp(zx)]=E[logq(z)]E[logp(z,x)]+E[logp(x)]=E[logq(z)]E[logq(z,x)]+logp(x)D+logp(x)=E[logq(z,x)]E[logq(z)]=ELBQ(Q)

ELBO等于KL散度的负值于常量 l o g ( x ) log\left(x \right) log(x)的和。从上述公式可以看出,最大化ELBO等价于最小化KL散度。依据贝叶斯概率 p ( z , x ) = p ( z ) ⋅ p ( z ∣ x ) = p ( x ) ⋅ p ( x ∣ z ) p\left(z, x \right) = p\left(z \right) \cdot p\left(z | x \right) = p\left(x \right) \cdot p\left(x | z \right) p(z,x)=p(z)p(zx)=p(x)p(xz),ELBO公式又可做如下推导。
在这里插入图片描述
从上述公式可以看出,ELBO是数据的对数似然期望与先验和近似后验概率密度的KL散度之和。对数似然期望描述了所选统计模型与数据的拟合程度。KL散度促使变分概率密度接近于先验,因此,ELBO可看作对数据的正则拟合。

使用Jensen不等式( f ( E [ x ] ) ≥ E [ f ( X ) ] f\left( E[x] \right) \ge E[f\left( X \right)] f(E[x])E[f(X)])可推到出ELBO和 p ( x ) 的关系, p\left( x \right)的关系, p(x)的关系,ELBO值是要低于 l o g p ( x ) log p\left( x\right) logp(x)。问题描述中,我们也提到evidence的积分依赖于所选模型,要么在闭合形式下不可用,要么需要指数时间计算。ELBO和 l o g p ( x ) log p\left( x\right) logp(x)的这种关系,促使研究人员使用变分下界作为模型选择的标准。

在这里插入图片描述

参考

  1. An Introduction to Variational Inference
  2. Variational Inference

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLMs模型速览(GPTs、LaMDA、GLM/ChatGLM、PaLM/Flan-PaLM、BLOOM、LLaMA、Alpaca)

文章目录 一、 GPT系列1.1 GPTs(OpenAI,2018——2020)1.2 InstructGPT(2022-3)1.2.1 算法1.2.2 损失函数 1.3 ChatGPT(2022.11.30)1.4 ChatGPT plugin1.5 GPT-4(2023.3.14&#xff0…

【kubernetes】集群架构介绍与基础环境准备

前言:二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机准备开始,到使用二进制方式从零到一搭建起安全稳定的高可用kubernetes集…

Something of Information Security Management

1、信息安全管理基本概念,管理的目标、对象的基本内容、必要性。 信息安全管理是指通过制定和实施一系列的管理措施,保护信息系统中的信息资源免受各种威胁和风险的侵害,确保信息系统的安全、可靠、高效运行。信息安全管理的基本概念包括&…

java 文本处理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目文本分词算法

一、源码特点 java 文本处理系统是一套完善的java web信息管理系统,利用java 对文本语句进行分词,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S 模式开发。开发环境为TOMCAT7.0,Myeclipse…

paddlespeech asr语音转录文字;sherpa 实时语音转录

1、paddlespeech asr语音转录文字 参考: https://github.com/PaddlePaddle/PaddleSpeech 安装后运行可能会numpy相关报错;可能是python和numpy版本高的问题,我这里最终解决是python 3.10 numpy 1.22.0; pip install paddlepadd…

蔚来测试总监,让我们用这份《测试用例规范》,再也没加班过

经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如: 固然,编写一份好的测试用例需要:充分的需求分析能力 理论及经验加持,作为测试职场摸爬打滚的老人&…

【计网】第二章 物理层

文章目录 物理层一、物理层的基本概念二、数据通信的基础知识2.1 数据通信系统的模型2.2 有关信道的基本概念2.3 信道的极限容量2.3.1 奈奎斯特定理2.3.1 香农定理2.3.2 信噪比 三、物理层下面的传输媒体3.1 导引型传输媒体3.2 非导引型传输媒体 四、信道复用技术4.1 频分复用 …

基于RGBD和惯性输入的实时室内场景重建

来源:投稿 作者:小灰灰 编辑:学姐 论文标题:《REAL-TIME INDOOR SCENE RECONSTRUCTION WITH RGBD AND INERTIA INPUT》 论文链接:https://arxiv.org/pdf/2008.00490.pdf 代码链接:https://github.com/CWa…

Spark01-Spark快速上手、运行模式、运行框架、核心概念

1 概述 Spark和Hadoop Hadoop HDFS(GFS:TheGoogleFileSystem)MapReduce总结:性能横向扩展变得容易,横向拓展:增加更多的计算节点来扩展系统的处理能力Hbase:分布式数据库 Spark Spark CoreSpark SQLSQL 方言(HQL)Spark Streamin…

玩转注册表,这几个windowsAPI函数就够了

注册表的结构 注册表是一个数据库,它的结构同逻辑磁盘类似。注册表包含键(Key),它类似磁盘中的目录,注册表还包含键值(Value),它类似磁盘中的文件。一个键可以包含多个子健和键值,其中键值用于存储数据,顶…

陌陌聊天数据分析 (一)

陌陌聊天数据分析(一) 目标 基于Hadoop和Hive实现聊天数据统计分析,构建聊天数据分析报表 需求 统计今日总消息量统计今日每小时消息量,发送和接收用户数量统计今日各地区发送消息数据量统计今日发送消息和接收消息用户数统计…

vue移动端手把手教你封装一个可移动悬浮窗、可移动打开扇形悬浮按钮组件

目录 概要 功能设计 技术细节-API回顾 touchstart 事件 touchmove事件 完整的代码实现(悬浮窗) 运行效果 进阶封装——可移动扇形展开悬浮按钮 实现效果演示 需求分析 代码实现 概要 悬浮窗、悬浮按钮是项目中常见的一种交互设计,特别是在移…

Linux国产操作系统,UCA-系统工程师学习必备技能,文件管理和查找、内容查找、归档的再学习

复习和巩固Linux的基础操作,对文件管理和查找、内容查找、归档以及管道和输入输出重定向进行再学习。 目录 1.文件管理 1. 1.head命令 1.2. tail命令 1.3. more/less命令 1.4. wc 统计命令 1.5. sort 排序命令 1.6. uniq 去重命令 1.7. paste合并命令 2.文…

基于matlab对现代相控阵系统中常用的子阵列进行建模分析(附源码)

一、前言 本示例说明如何使用相控阵系统工具箱对现代相控阵系统中常用的子阵列进行建模并进行分析。 相控阵天线与传统碟形天线相比具有许多优势。相控阵天线的元件更容易制造;整个系统受组件故障的影响较小;最重要的是,可以向不同方向进行电子扫描。 但是&#xff…

耗时半个月,终于把十几个大厂的python面试题整理成了PDF合集(基础+高级+web+数据库+爬虫)

大家好,最近有不少小伙伴在后台留言,近期的面试越来越难了,要背的越来越多了,考察得越来越细,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些程序员了。 这不,为了帮大家节约时间&#…

JVM垃圾回收与双亲委派模型

观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 前端使用VSCode(Visual Studio Code1.78.2) 电脑使用的操作系统版本为 Windows 10 目录 1. 什么是 JVM 2. jvm 发展史 2.1 Sun Classic VM 2.2 Exact VM 2.3 HotSpot VM 2.4 JRockit …

Docker部署——将jar包打成docker镜像并启动容器

在代码编写完成即将部署的时候,如果采用docker容器的方法,需要将jar包打成docker镜像并通过镜像将容器启动起来。具体的步骤如下。 一、首先下载java镜像 先使用docker search java命令进行搜索。 然而在拉取镜像的时候要注意不能直接去选择pull java ,…

在线DDL操作踩坑记录

官方地址:GitHub - github/gh-ost: GitHubs Online Schema-migration Tool for MySQL 使用ghost方式在线对mysql表进行ddl ghost原理: 要对表A进行DDL,在主库建立一个ghost表 A1在表A1上进行alter操作伪装成一个mysql的从库,监…

Java集合框架:队列、Queue和Deque详解

目录 一、普通队列 1. 概念 2. Queue(Java集合框架的接口) 3. Queue中的方法 4. 方法使用演示 5. 队列的模拟实现 6. 顺序普通队列的缺点: 二、循环队列 1. 循环队列也是一种数据结构。基于上述队列的缺点,此时就有了循环…

为什么我不建议你入行网络安全,因为99.9%的人都绕不过这三个坎

前言 我一个朋友老赵,老赵在一家大型互联网公司做高级网络安全工程师,从实习生到工程师整整呆了六年。去年他们公司为了缩减成本,做了裁员,他也在其中,取而代之的是一个只有三年工作经验的 “新人” … 老赵想着&…