贝叶斯变分方法:初学者指南--平均场近似

一、说明

        变分贝叶斯 (VB) 方法是统计机器学习中非常流行的一系列技术。VB 方法允许我们将 统计推断 问题(即,给定另一个随机变量的值来推断随机变量的值)重写为优化 问题(即,找到最小化某些目标函数的参数值),本文将阐述这种精妙模型。

二、文章绪论

2.1 VB的概念

        变分贝叶斯 (VB) 方法是统计机器学习中非常流行的一系列技术。VB 方法允许我们将 统计推断 问题(即,给定另一个随机变量的值来推断随机变量的值)重写为优化 问题(即,找到最小化某些目标函数的参数值)。

        这种推理-优化二元性非常强大,因为它允许我们使用最新、最好的优化算法来解决统计机器学习问题(反之亦然,使用统计技术最小化函数)。

        这篇文章是变分方法的介绍性教程。我将导出最简单的 VB 方法的优化目标,称为平均场近似。这个目标,也称为 变分下界,与变分自编码器中使用的目标完全相同(一篇简洁的论文,我将在后续文章中对其进行解释)。

 

2.2 本文目录

  1. 预备知识和符号
  2. 问题表述
  3. 平均场近似的变分下界
  4. 正向 KL 与反向 KL
  5. 与深度学习的联系

三、预备知识和符号


        本文假设读者熟悉随机变量、概率分布和期望等概念。  如果您忘记了一些东西,这里有一个回顾。机器学习和统计符号的标准化不是很好,因此在这篇文章中使用非常精确的符号会很有帮助:
  • 大写X表示随机变量
  • 大写P( X)表示该变量的概率分布
  • 小写x∼P _ _( X)表示一个值X采样(~)从概率分布磷( X)通过一些生成过程。
  • 小写p ( X)是分布的密度函数X。它是测度空间上的标量函数X。
  • p ( X= x )(速记p ( x )) 表示在特定值下评估的密度函数X。 

        许多学术论文交替使用术语“变量”、“分布”、“密度”,甚至“模型”。这本身不一定是错误的,因为X,磷( X), 和p ( X)所有这些都通过一一对应来相互暗示。 然而,将这些词混合在一起会令人困惑,因为它们的类型不同(对函数进行采样没有意义,对分布进行积分也没有意义)。 
 

        我们将系统建模为随机变量的集合,其中一些变量(X)是“可观察的”,而其他变量(Z)是“隐藏的”。我们可以通过下图来画出这种关系:
 

                                

 

        边缘绘制自Z到X通过条件分布将两个变量联系在一起磷( X| Z)。
        这是一个更具体的例子:X可能代表“图像的原始像素值”,而Z是一个二元变量,使得Z= 1“如果X是一只猫的图像”。
 

X= 

P( Z= 1 ) = 1(肯定是猫)
X=
P( Z= 1 ) = 0(绝对不是猫)
X= 
P( Z= 1 ) = 0.1(有点像猫)
贝叶斯定理为我们提供了任意一对随机变量之间的一般关系:
 
p ( Z| X)=p ( X| Z) p ( Z)p ( X)


其中的各个部分都与通用名称相关联:

p ( Z| X)是后验概率:“给定图像,这是一只猫的概率是多少?” 如果我们可以从z∼ P( Z| X),我们可以用它来制作一个猫分类器,告诉我们给定的图像是否是猫。

p ( X| Z)是可能性:“给定值为Z  这计算了该图像的“可能性”X属于该类别({“is-a-cat”/“is-not-a-cat”})。如果我们可以从x∼P _ _( X| Z),然后我们生成猫的图像和非猫的图像就像生成随机数一样容易。如果您想了解更多信息,请参阅我关于生成模型的其他文章:[1]、[2]。

p ( Z)是先验概率。这捕获了我们所知道的任何先前信息Z- 例如,如果我们认为现有的所有图像中有 1/3 是猫,那么p ( Z= 1 ) =13和p ( Z= 0 ) =23。

 

3.1 作为先验的隐藏变量


        这是感兴趣的读者的旁白。跳到下一部分继续学习本教程。

        前面的猫示例展示了观察变量、隐藏变量和先验的非常传统的示例。然而,重要的是要认识到隐藏变量/观察变量之间的区别有些任意,并且您可以随意分解图形模型。

我们可以通过交换术语来重写贝叶斯定理:

 
p ( Z| X) p ( X)p ( Z)= p ( X| Z)



        所讨论的“后”是现在磷( X| Z)。隐藏变量可以从贝叶斯统计

        框架 解释  为  附加到观察到的变量的先验信念。例如,如果我们相信X是多元高斯分布,隐藏变量Z可能代表高斯分布的均值和方差。参数分布磷( Z)那么 先验 分布为磷( X)。

        您还可以自由选择哪些值X和Z代表。例如,Z可以改为“平均值、方差的立方根,以及X+ Y在哪里是∼ N( 0 , 1 )”。这有点不自然和奇怪,但结构仍然有效,只要磷( X| Z)进行相应修改。

        您甚至可以向系统“添加”变量。先验本身可能依赖于其他随机变量磷( Z| θ),它们有自己的先验分布磷( θ ),并且那些仍然有先验,等等。任何超参数都可以被认为是先验。在贝叶斯统计中, 先验一直向下。

 

3.2 问题表述


        我们感兴趣的关键问题是后验推理,或者隐藏变量的计算函数。Z。后验推理的一些典型例子:
  • 鉴于这段监控录像X,嫌疑人出现在其中吗?
  • 鉴于此推特提要X,作者郁闷吗?
  • 鉴于历史股价X1 : t − 1,什么会Xt是?
         我们通常假设我们知道如何计算似然函数上的函数磷( X| Z)和先验磷( Z)。

        问题是,对于上面这样的复杂任务,我们通常不知道如何从中采样磷( Z| X)或计算p ( X| Z)。或者,我们可能知道以下形式p ( Z| X),但相应的计算非常复杂,我们无法在合理的时间内对其进行评估。我们可以尝试使用基于采样的方法,例如MCMC,但这些方法收敛速度很慢。

 

四、平均场近似的变分下界


        变分推理背后的想法是这样的:让我们对一个简单的参数分布进行推理问φ( Z| X)(如高斯)我们知道如何进行后验推理,但调整参数φ以便问φ是一样接近磷尽可能。

        下面直观地说明了这一点:蓝色曲线是真正的后验分布,绿色分布是我们通过优化拟合到蓝色密度的变分近似(高斯)。

 
分布“接近”意味着什么?平均场变分贝叶斯(最常见的类型)使用反向 KL 散度作为两个分布之间的距离度量。
KL(Q_\phi(Z|X)||P(Z|X)) = \sum_{z \in Z}{q_\phi(z|x)\log\frac{q_\phi(z|x)}{p(z|x)}}
  
 

        反向 KL 散度衡量信息量(以 nat 或单位为单位\frac{1}{\log(2)})需要“扭曲”P(Z)使其适应Q_\phi(Z)。我们希望最大限度地减少这个数量\phi

        根据条件分布的定义,p(z|x) = \frac{p(x,z)}{p(x)} 。让我们把这个表达式替换成我们原来的表达式KL表达式,然后分布:

尽量减少KL(Q||P) 关于变分参数φ,我们只需最小化\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}}   , 因为 \log{p(x)}相对于固定φ。让我们将这个数量重写为分布的期望 Q_\phi(Z|X) 。

        最小化这个相当于 最大化 这个函数的负数:



在文学中,\mathcal{L}被称为变分下界,并且如果我们可以评估,则在计算上是易于处理的p ( x | z) , p ( z) , q( z| x)。我们可以进一步重新排列术语,产生直观的公式:



        如果抽样z \sim Q(Z|X) 是一个转换观察结果的“编码”过程X到潜在代码z,然后采样x \sim Q(X|Z) 是一个“解码”过程,从z。

        它遵循L是预期“解码”可能性的总和(我们的变分分布可以解码样本的效果如何)Z回到样本X),加上变分近似与先验之间的 KL 散度Z。如果我们假设Q (Z| X)是条件高斯的,然后先验Z通常选择均值为 0、标准差为 1 的对角高斯分布。

        为什么L称为变分下界?替代L回到方程。(1),我们有:

        等式的含义 (4),用通俗的语言来说,就是p ( x ),数据点的对数似然X在真实分布下,是 \mathcal{L},加上一个误差项KL(Q||P) 捕获之间的距离Q(Z|X=x) 和 P(Z|X=x) 在该特定值X

        自从KL ( Q | | P) ≥ 0,日志p ( x )必须大于L。所以L是下界_日志p ( x )。L也称为证据下界 (ELBO),通过替代公式:
 
L =对数p ( x ) − KL ( Q ( Z| X) | | 磷( Z| X) ) =乙问[日志p ( x | z) ] −KL ( Q ( Z| X) | | 磷( Z) )


注意L本身包含近似后验和先验之间的 KL 散度项,因此总共有两个 KL 项日志p ( x )。
 

4.1 正向 KL 与反向 KL


        KL散度不是对称 距离函数,即KL(P||Q) \neq KL(Q||P) (除非当Q = P)第一种称为“正向KL”,而后者则称为“反向KL”。那么为什么我们要使用Reverse KL呢?这是因为由此产生的推导需要我们知道如何计算p(Z| X),这就是我们首先想做的。


        我真的很喜欢 Kevin Murphy 在PML 教科书中的解释,我将尝试在这里重新表述:

        让我们首先考虑前锋 KL。正如我们从上面的推导中看到的,我们可以将 KL 写成“惩罚”函数的期望\log \frac{p(z)}{q(z)}通过权重函数p ( z)。

        无论何时p(Z) > 0,惩罚函数都会对总 KL 造成损失。因为p(Z)>0,\lim_{q(Z) \to 0} \log \frac{p(z)}{q(z)} \to \infty 。这意味着无论在哪里,前向 KL 都会很大Q(Z) 未能“掩盖”P(Z)


        因此,当我们确保q(z) > 0 无论在哪里p ( z) > 0。优化的变分分布Q(Z) 被称为“避免零”(当密度避免为零时p ( Z)为零)。



最小化 Reverse-KL 具有完全相反的行为:

KL ( Q | | P)=Σzq( z)记录q( z)p ( z)=乙p ( z)[日志q( z)p ( z)]
 

如果p ( Z) = 0,我们必须保证权重函数q( Z) = 0无论分母在哪里p ( Z) = 0,否则 KL 就会爆炸。这称为“迫零”:


        总而言之,最小化前向 KL 会“拉伸”你的变分分布Q (Z)覆盖整个P( Z)就像防水布一样,同时最大限度地减少反向KL“挤压”Q (Z) 在下面 P( Z)。

        在机器学习问题中使用平均场近似时,请务必牢记使用反向 KL 的含义。如果我们将单峰分布拟合到多峰分布,我们最终会得到更多的假阴性(实际上有概率质量P( Z)我们认为没有的地方Q (Z))。

 

4.2 与深度学习的联系


        变分方法对于深度学习非常重要。我将在后面的文章中详细阐述,但这里有一个快速剧透:
  1. 深度学习非常擅长使用大量数据对非常大的参数空间进行优化(特别是梯度下降)。
  2. 变分贝叶斯为我们提供了一个框架,通过它我们可以将统计推理问题重写为优化问题。
        深度学习和 VB 方法的结合使我们能够对极其复杂的后验分布 进行推理。事实证明,像变分自动编码器这样的现代技术优化了本文中导出的完全相同的平均场变分下界!

        感谢您的阅读,敬请关注!

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

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

相关文章

服务熔断保护实践--Hystrix

概述 微服务有很多互相调用的服务,构成一系列的调用链路,如果调用链路中某个服务失效或者网络堵塞等问题,而有较多请求都需要调用有问题的服务时,这是就会造成多个服务的大面积失效,造成服务“雪崩”效应。 服务“雪…

【C语言】优化通讯录管理系统

大家好,我是苏貝,本篇博客带大家优化上一篇的通讯录,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 前言二. 动态通讯录2.1 通讯录结构体2.2 初始化通讯录2.3 增加联系人2.4 销毁通讯…

Redis原理-IO模型和持久化

高性能IO模型 为什么单线程Redis能那么快 一方面,Redis 的大部分操作在内存上完成,再加上它采用了高效的数据结构,例如哈希表和跳表,这是它实现高性能的一个重要原因。另一方面,就是 Redis 采用了多路复用机制&#…

HTML简单实现v-if与v-for与v-model

Vue启动!! 首先VIewModel将View和Model连接一起,Model的数据改变View的数据也变 使用Visual Studio Code 启动Vue需要vue.js插件和导入CDN(包) vue.js插件:CTRL shift x 在搜索栏搜 索vue.js安装即可 CDN: http…

orb-slam3编译手册(Ubuntu20.04)

orb-slam3编译手册(Ubuntu20.04) 一、环境要求1.安装git2.安装g3.安装CMake4.安装vi编辑器 二、源代码下载三、依赖库下载1.Eigen安装2.Pangolin安装3.opencv安装4.安装Python & libssl-dev5.安装boost库 三、安装orb-slam3四、数据集下载及测试 写在…

k8s集群升级

目录 1. 部署cri-docker (所有集群节点) 2. 升级master节点 3. 升级worker节点 4. 部署containerd 1. 部署cri-docker (所有集群节点) k8s从1.24版本开始移除了dockershim,所以需要安装cri-docker插件才能使用docker …

MySQL6:索引使用原则,联合索引,联合主键/复合主键,覆盖索引、什么是回表?索引条件下推,索引的创建与使用,索引的创建与使用,索引失效

MySQL6:索引使用原则,联合索引,联合主键/复合主键,覆盖索引、什么是回表?索引条件下推,索引的创建与使用,索引的创建与使用,索引失效 索引使用原则列的离散(sdn)度 联合索引创建联合…

Harbor私有镜像仓库搭建

本文基于:https://zhuanlan.zhihu.com/p/143779176 1.环境准备 IP:192.168.10.136/24 操作系统:centos7 2.安装Docker、Docker-compose 2.1安装Docker-CE $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.re…

数据库简史:多主数据库架构的由来和华为参天引擎的机遇

注:本文发表后,收到了很多后台反馈,其中关于大型机的早期成就不容省略。微调重发本文,纯属个人观点,错谬之处,仍然期待指正。 2023年10月13日,在北京举办的“2023金融业数据库技术大会"上&…

redis6.0源码分析:跳表skiplist

文章目录 前言什么是跳表跳表(redis实现)的空间复杂度相关定义 跳表(redis实现)相关操作创建跳表插入节点查找节点删除节点 前言 太长不看版 跳跃表是有序集合zset的底层实现之一, 除此之外它在 Redis 中没有其他应用。…

电力巡检/电力抢修行业解决方案:AI+视频技术助力解决巡检监管难题

一、行业背景 随着国民经济的蓬勃发展,工业用电和居民用电需求迅速增加,电厂、变电站、输电线路高负荷运转,一旦某个节点发生故障,对生产、生活造成巨大的影响。目前电力行业生产现场人员、设备较多,而生产监督员有限…

基于vue小红书平台用户数据分析与可视化

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

【马蹄集】—— 搜索专题

搜索专题 目录 MT2238 数的增殖MT2239 二维矩阵中的最长下降序列MT2240 传染病MT2241 循环空间BD202303 第五维度 MT2238 数的增殖 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 给定一个数 n ( n < 1000 ) n (n<1000) n…

Java I/O (输入/输出)

1.流的概念 流是一种有序的数据序列&#xff0c;根据操作类型&#xff0c;可以分为输入流和输出流两种。I/O流&#xff08;输入输出&#xff09;提供了一条通道程序&#xff0c;可以使用这条通道把源中的字节序列送到目的地。 1.1 输入流&#xff1a; 程序从指向源的输入流中读…

51单片机汽车胎压大气气压测量仪仿真设计_数码管显示(代码+仿真+设计报告+讲解)

51单片机汽车胎压大气气压测量仪仿真设计_数码管显示 (代码仿真设计报告讲解) 仿真原版本&#xff1a;proteus 7.8 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0018 目录 51单片机汽车胎压大气气压测量仪仿真设计_数码管显示功…

技术分享| anyRTC低延时直播优化

直播系统就是把活动现场的音频或视频信号经数字压缩后&#xff0c;传送到直播多媒体服务器(CDN)上&#xff0c;在互联网上供广大网友或授权特定人群收听或收看。而随着技术的日益更新&#xff0c;人民对于直播的互动性&#xff0c;实时性要求更高了&#xff0c;传统的直播少则几…

React-表单受控绑定和获取Dom元素

一、表单受控组件 1.声明一个react状态 说明&#xff1a;useState const [value,setValue]useState("") 2.核心绑定流程 2.1绑定react状态 <div><input value{value}type"text"></input> 2.2绑定onChange事件 说明&#xff1a;e.…

队列(Queue)概念+通过单、双链表来模拟队列+环形队列+OJ面试题(用队列实现栈、用栈实现队列、设计环形队列)

文章目录 队列(Queue)一、 概念1.尾进头出 二、模拟队列1.单链表实现队列1.1 设置结点1.2 入队offer1.3出队 poll1.4 empty方法&#xff0c;peek方法&#xff0c;getUsedSize方法 2.双链表实现队列2.1 创建结点2.2 入队列2.3 出队列2.4 peek、size、isEmpty方法 三、环形队列1.…

vivo自研AI大模型即将问世,智能手机行业加速迈向AI时代

当前&#xff0c;以大模型为代表的人工智能技术已发展为新一轮科技革命和产业变革的重要驱动力量&#xff0c;被视作推动经济社会发展的关键增长极。 AI大模型潮起&#xff0c;千行百业走向百舸争流的AI创新应用期&#xff0c;前沿信息技术向手机、PC、车机等消费级终端加速渗…

AJAX原理及介绍

文章目录 AJAX&#xff08;Asynchronous Javascript And Xml&#xff09;传统请求及缺点AJAX概述XMLHttpRequest对象AJAX GET请求AJAX GET请求的缓存问题AJAX POST请求基于JSON的数据交换基于XML的数据交换AJAX乱码问题AJAX的异步与同步AJAX代码封装AJAX实现省市联动AJAX跨域问…