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

【有啥问啥】复习变分下界即证据下界(Evidence Lower Bound, ELBO):原理与应用

ELBO

复习变分下界即证据下界(Evidence Lower Bound, ELBO):原理与应用

变分下界(Variational Lower Bound),也称为“证据下界”(Evidence Lower Bound, ELBO),是概率模型中的一个重要概念,广泛用于变分推断(Variational Inference, VI)等领域。变分推断是一种近似推断方法,它通过将复杂的后验分布用一个易于处理的分布来近似,从而使得计算变得可行。变分下界是推导和优化这个近似分布的核心工具。本文将复习变分下界的基本概念、推导过程及其在机器学习中的应用。

1. 概念背景

在贝叶斯推断框架中,我们通常希望根据观测数据 x x x 来推断潜在变量 z z z 的后验分布 p ( z ∣ x ) p(z|x) p(zx)。后验分布的计算通常依赖于边缘似然(Marginal Likelihood):

p ( x ) = ∫ p ( x ∣ z ) p ( z ) d z p(x) = \int p(x|z) p(z) \, dz p(x)=p(xz)p(z)dz

这个积分通常非常复杂,因此直接计算 p ( z ∣ x ) p(z|x) p(zx) 并不现实。为了解决这一问题,变分推断通过引入一个近似分布 q ( z ) q(z) q(z) 来逼近后验分布 p ( z ∣ x ) p(z|x) p(zx),并通过最优化使得 q ( z ) q(z) q(z) 尽可能接近 p ( z ∣ x ) p(z|x) p(zx)

衡量 q ( z ) q(z) q(z) p ( z ∣ x ) p(z|x) p(zx) 之间的差异最常用的工具是 KL 散度(Kullback-Leibler divergence):

KL ( q ( z ) ∥ p ( z ∣ x ) ) = ∫ q ( z ) log ⁡ q ( z ) p ( z ∣ x ) d z \text{KL}(q(z) \parallel p(z|x)) = \int q(z) \log \frac{q(z)}{p(z|x)} dz KL(q(z)p(zx))=q(z)logp(zx)q(z)dz

KL 散度是非负的,并且只有在 q ( z ) = p ( z ∣ x ) q(z) = p(z|x) q(z)=p(zx) 时才为零。通过最小化 KL 散度,我们可以找到最优的 q ( z ) q(z) q(z)

2. 变分下界的推导

为了推导变分下界,我们从边缘似然的对数形式开始:

log ⁡ p ( x ) = log ⁡ ∫ p ( x ∣ z ) p ( z ) d z \log p(x) = \log \int p(x|z) p(z) dz logp(x)=logp(xz)p(z)dz

直接计算这一积分非常困难,因此我们引入 q ( z ) q(z) q(z) 并利用 Jensen 不等式,得到:

log ⁡ p ( x ) ≥ ∫ q ( z ) log ⁡ p ( x , z ) q ( z ) d z \log p(x) \geq \int q(z) \log \frac{p(x, z)}{q(z)} dz logp(x)q(z)logq(z)p(x,z)dz

右侧的表达式就是变分下界,即 ELBO。通过最大化这个下界,我们可以优化 q ( z ) q(z) q(z) 使其尽量接近后验分布 p ( z ∣ x ) p(z|x) p(zx)

进一步地,变分下界可以拆分为以下两部分:

L ( q ) = E q ( z ) [ log ⁡ p ( x ∣ z ) ] − KL ( q ( z ) ∥ p ( z ) ) \mathcal{L}(q) = \mathbb{E}_{q(z)}[\log p(x|z)] - \text{KL}(q(z) \parallel p(z)) L(q)=Eq(z)[logp(xz)]KL(q(z)p(z))

  • 第一项 E q ( z ) [ log ⁡ p ( x ∣ z ) ] \mathbb{E}_{q(z)}[\log p(x|z)] Eq(z)[logp(xz)] 是对数似然的期望,衡量模型对观测数据的拟合能力。
  • 第二项 KL ( q ( z ) ∥ p ( z ) ) \text{KL}(q(z) \parallel p(z)) KL(q(z)p(z)) 则衡量近似分布和先验分布之间的距离。

最大化 ELBO 使得近似分布 q ( z ) q(z) q(z) 同时具备良好的数据拟合能力,并不会偏离先验分布太多。

3. 变分下界的应用

(1) 变分自编码器(Variational Autoencoder, VAE

VAE 是变分推断在深度学习中的一个重要应用。它使用神经网络来参数化近似分布 q ( z ∣ x ) q(z|x) q(zx) 和生成分布 p ( x ∣ z ) p(x|z) p(xz),并通过最大化变分下界来训练模型。VAE 的目标函数为:

L ( q ) = E q ( z ∣ x ) [ log ⁡ p ( x ∣ z ) ] − KL ( q ( z ∣ x ) ∥ p ( z ) ) \mathcal{L}(q) = \mathbb{E}_{q(z|x)}[\log p(x|z)] - \text{KL}(q(z|x) \parallel p(z)) L(q)=Eq(zx)[logp(xz)]KL(q(zx)p(z))

其中,VAE 利用 重参数化技巧(Reparameterization Trick)来确保梯度能够正常反向传播,这一技巧是 VAE 的核心技术之一。

  • 传送门链接: 变分自编码器(Variational Autoencoder, VAE):深入理解与应用

(2) 无监督学习与 LDA

在主题模型如隐含狄利克雷分配(LDA)中,变分推断用于近似推断文档的主题分布。通过优化变分下界,LDA 能够有效地提取文档的潜在结构,并应用于推荐系统和文本分析等领域。

(3) 贝叶斯神经网络

贝叶斯神经网络通过引入变分推断来近似神经网络中的权重后验分布,这种方法能够有效量化模型的不确定性,从而增强泛化能力,特别适用于强化学习和决策系统。

4. 变分下界的局限性与改进

近似分布的限制

变分推断中,选择较为简单的分布(如高斯分布)来近似真实后验,可能无法准确描述复杂的后验分布。为了应对这个问题,基于流的方法(Flow-based Variational Inference)通过引入可逆神经网络增强了近似分布的表现力。

局部最优问题

由于优化的非凸性,变分推断容易陷入局部最优。针对这一问题,研究者提出了更多基于采样的方法,如 Monte Carlo 变分推断,以提高近似的质量。

5. 总结

变分下界是变分推断的核心工具,它通过最大化下界来找到近似的后验分布,使得复杂的推断问题变得可解。尽管变分下界在一些场景中存在局限性,但它仍然是生成模型、贝叶斯方法和无监督学习中的重要组成部分。随着算法的改进,变分推断及其下界的应用将会更加广泛。

参考文献

  1. Kingma, D.P., Welling, M. (2014). Auto-Encoding Variational Bayes. ICLR.
  2. Blei, D.M., Kucukelbir, A., McAuliffe, J.D. (2017). Variational Inference: A Review for Statisticians. J. of the American Statistical Association.

相关文章:

【有啥问啥】复习变分下界即证据下界(Evidence Lower Bound, ELBO):原理与应用

复习变分下界即证据下界(Evidence Lower Bound, ELBO):原理与应用 变分下界(Variational Lower Bound),也称为“证据下界”(Evidence Lower Bound, ELBO),是概率模型中的…...

Linux shell编程学习笔记78:cpio命令——文件和目录归档工具(上)

0 前言 在Linux系统中,除了tar命令,我们还可以使用cpio命令来进行文件和目录的归档。 1 cpio命令的功能,帮助信息,格式,选项和参数说明 1.1 cpio命令的功能 cpio 名字来自 "copy in, copy out"&#xf…...

为什么在 JSON 序列化中不使用 transient

有些小伙伴发现了,明明在返回的实体类中指定了属性为transient。为什么前端得到的返回json中还是有这个属性的值? 类: private String name; private transient String password;返回结果: { name:"刘大大", password:…...

K8S - Volume - NFS 卷的简介和使用

在之前的文章里已经介绍了 K8S 中两个简单卷类型 hostpath 和 emptydir k8s - Volume 简介和HostPath的使用 K8S - Emptydir - 取代ELK 使用fluentd 构建logging saidcar 但是这两种卷都有同1个限制, 就是依赖于 k8s nodes的空间 如果某个service pod中需要的vol…...

IO模型---BIO、NIO、IO多路复用、AIO详解

本篇将想给详细解释一下什么是BIO、NIO、IO多路复用以及AIO~ 同步的阻塞(BIO)和非阻塞(NIO)的区别 BIO:线程发来IO请求后,一直阻塞着IO线程,需要缓冲区这边数据准备好之后,才会进行下一步的操作。 举个🌰&#xff1…...

蓝桥杯真题——约翰的牛奶

输入样例&#xff1a; 8 9 10 输出样例&#xff1a; 1 2 8 9 10 本题是宽搜的模版题&#xff0c;不论怎么倒牛奶&#xff0c;A,B,C 桶里的牛奶可以看做一个三元点集 我们只要找到A桶是空的&#xff0c;B,C桶中的状态即可 #include <iostream> #include <cstring…...

单机docker-compose部署minio

单机多副本docker-compose部署minio 简单介绍 如果服务器有限可以单机挂载多硬盘实现多副本容错&#xff08;生产不推荐&#xff09; 部署好的文件状态 有两个重要文件 docker-compose.yaml和nginx.conf docker-compose.yaml是docker部署容器的配置信息包括4个minio和1个ng…...

Winform实现弹出定时框功能

1、程序 private void TimeDialogInitialize(){for(int i1; i<30;i){cbbTimeDialog.Items.Add(i);}}private void cbbTimeDialog_SelectedIndexChanged(object sender, EventArgs e){foreach(int i in cbbTimeDialog.Items){if(cbbTimeDialog.SelectedItem!null &&…...

【机器学习(四)】分类和回归任务-梯度提升决策树(GBDT)-Sentosa_DSML社区版

文章目录 一、算法概念一、算法原理&#xff08;一&#xff09; GBDT 及负梯度拟合原理&#xff08;二&#xff09; GBDT 回归和分类1、GBDT回归1、GBDT分类二元分类多元分类 &#xff08;三&#xff09;损失函数1、回归问题的损失函数2. 分类问题的损失函数&#xff1a; 三、G…...

Mini-Omni 语言模型在流式传输中边思考边听说应用

引入简介 Mini-Omni 是一个开源的多模态大语言模型,能够在思考的同时进行听觉和语言交流。它具有实时端到端语音输入和流媒体音频输出的对话能力。 语言模型的最新进展取得了显著突破。GPT-4o 作为一个新的里程碑,实现了与人类的实时对话,展示了接近人类的自然流畅度。为了…...

vue devtools的使用

vue devtools的使用 Vue Devtools 是一个强大的浏览器扩展,旨在帮助你调试和开发 Vue.js 应用。它支持 Chrome 和 Firefox 浏览器,并提供了一些工具和功能,可以让你更轻松地查看和调试 Vue 应用的状态和行为。以下是如何安装和使用 Vue Devtools 的详细指南。 安装 Vue De…...

无人机培训:无人机维护保养技术详解

随着无人机技术的飞速发展&#xff0c;其在航拍、农业、救援、环境监测等领域的应用日益广泛。然而&#xff0c;要确保无人机安全、高效地执行任务&#xff0c;定期的维护保养至关重要。本文将深入解析无人机维护保养的核心技术&#xff0c;涵盖基础构造理解、清洁与防尘、电机…...

Mac 创建 Python 虚拟环境

在 macOS 上&#xff0c;您可以使用以下步骤使用 virtualenv 创建虚拟环境&#xff1a; 首先&#xff0c;确保您已经安装了 Python 和 virtualenv。您可以在终端中运行以下命令来检查它们是否已安装&#xff1a; python --version virtualenv --version如果这些命令没有找到&am…...

安卓玩机工具-----无需root权限 卸载 禁用 删除当前机型app应用 ADB玩机工具

ADB玩机工具 ADB AppControl是很实用的安卓手机应用管理工具&#xff0c;无需root权限&#xff0c;通过usb连接电脑后&#xff0c;可以很方便的进行应用程序安装与卸载&#xff0c;还支持提取手机应用apk文件到电脑上&#xff0c;此外还有手机系统垃圾清理、上传文件等…...

中国科技统计年鉴1991-2020年

&#xff08;数据收集&#xff09;中国科技统计年鉴1991-2020年.Excel格式资源-CSDN文库https://download.csdn.net/download/2401_84585615/89475658 《中国科技统计年鉴》是由国家统计局社会科技和文化产业统计司与科学技术部战略规划司共同编辑的官方统计资料书&#xff0c…...

OpenAI / GPT-4o:Python 返回结构化 / JSON 输出

在调用 OpenAI&#xff08;比如&#xff1a;GPT-4o&#xff09;接口时&#xff0c;希望返回的结果是能够在后续任务中自动化处理的结构化 / JSON 输出。GPT 版本&#xff1a;gpt-4o-2024-08-06&#xff0c;提供了这样的功能。 目标&#xff1a;从非结构化输入到结构化数据&…...

通信工程学习:什么是EDFA掺铒光纤放大器

EDFA&#xff1a;掺铒光纤放大器 EDFA&#xff0c;即掺铒光纤放大器&#xff08;Erbium-Doped Fiber Amplifier&#xff09;&#xff0c;是一种在光纤通信中广泛使用的光放大器件。以下是对EDFA的详细解释&#xff1a; 一、定义与基本原理 EDFA是在石英光纤中掺入少量的稀土元…...

机器学习与深度学习的区别

随着人工智能技术的迅猛发展&#xff0c;机器学习&#xff08;Machine Learning, ML&#xff09;和深度学习&#xff08;Deep Learning, DL&#xff09;这两个术语越来越频繁地出现在人们的视野中。尽管它们之间有着紧密的联系&#xff0c;但实际上二者存在显著的区别。本文旨在…...

标准库标头 <barrier>(C++20)学习

此头文件是线程支持库的一部分。 类模板 std::barrier 提供一种线程协调机制&#xff0c;阻塞已知大小的线程组直至该组中的所有线程到达该屏障。不同于 std::latch&#xff0c;屏障是可重用的&#xff1a;一旦到达的线程组被解除阻塞&#xff0c;即可重用同一屏障。与 std::l…...

如何测量一个(传输网络)系统的容量

Little 定律就能反算系统容量&#xff0c;但我这篇文章要正着算。 假想一个理发店场景。李大爷拥有一家占地 50 平米的理发店&#xff0c;经理到店里理发如果已经有经理在理发&#xff0c;就要拿个券等待&#xff0c;请问李大爷需要印多少等待券&#xff1f; 这是个系统容量问…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...