变分贝叶斯近似

news2024/11/25 12:30:09

马尔可夫链蒙特卡洛方法(MCMC)是一个非常有用和重要的工具,但在用于估计大型数据集的复杂后验分布或模型时可能会遇到困难。变分近似(variational approximations)变分推断(variational inference)可用于拟合贝叶斯模型(Jordan et al. 1999)。对于完全贝叶斯推断,变分近似通常比MCMC快得多,在某些情况下,它有助于估计其他方法无法估计的模型。作为一种确定性后验近似方法,变分近似保证了收敛性,很容易对收敛性进行评估。变分近似法最适合于其他方法无法解决的完全贝叶斯推断问题。当然,变分近似确实也有一些限制。它可能低估后验分布的变异性。这种被低估的可变性是变分近似的一个缺点,然而,它是直接可控的,取决于一组透明且易于修改的假设。

变分近似为贝叶斯模型的估计提供了一种不同的方法。与EM算法一样,变分近似也是确定性优化算法,他保证了收敛性,通过检查标量中的变化可以轻松地进行评估。与MCMC算法一样,变分近似估计完全后验分布,不需要额外的步骤来执行判断。下面描述变分近似的基础知识。

变分近似的目标是用某一个称为近似分布(approximating distribution)的工作分布q(\theta;\phi)来近似后验分布p(\theta|X)(Bishop, 2006)。为了使这一近似尽可能接近,我们在近似分布的空间上搜索,找qp之间最小的相对熵(Kullback-Leibler divergence, KL-divergence),也称KL散度KL散度常被用来衡量两个概率分布之间的相似性或差异性。当KL散度为0时,表示两个分布完全相同;当KL散度大于0时,表示两个分布之间存在差异。)形式上,我们在近似分布集合中搜索的分布q(\theta;\phi)使下式最小(下面积分运算对离散\theta情况应该为和运算):

KL(q(\theta;\phi)||p(\theta|X))=E_{q(\theta;\phi)}[\log q(\theta;\phi)-\log p(\theta|X)]\\ \\ =-\int q(\theta)\log\{\frac{p(\theta|X)}{q(\theta;\phi))}\}d\theta \quad......\ (1)

或者更确切地说寻求\phi^*,使得

\phi^*=\mathop{\arg \min}\limits_{\phi\in\Phi}KL(q(\theta;\phi)||p(\theta|X))

直接最小化KL是困难的(这里\Phi\phi的空间)。因此,等价地,人们试图最大化证据下限(evidence lower bound, ELBO)。ELBO定义为:

ELBO(\phi)=E_{q(\theta;\phi)}[\log p(X|\theta)+\log p(\theta)-\log q(\theta;\phi)\\\\=E_{q(\theta;\phi)}[\log p(X,\theta)-\log q(\theta;\phi)] \quad...... \ (2)

因此,问题归结为寻求\phi^*,使得

\phi^*=\mathop{\arg \min}\limits_{\phi\in\Phi}ELBO(\phi)

显然,当q(\theta;\phi)=p(\theta|X)时,(1)式和(2)式被最大化。当然,这并不是特别有帮助,但可以作为选择q的一种参考。我们在近似分布中引入了额外的假定以使得推断可以操作。这里使用类似于Jordan et al. (1999) 和 Bishop (2006) 所使用的分布形式。这里假定所谓的近似分布在参数之间的独立性,这种独立性对于真实后验分布可能并不存在。但除此之外没有任何其他假定。选择这种近似分布,也是因为它在应用于大量模型时已经被证明表现良好。Wang and Titterington (2004) 证明,在足够多的观测结果下,这种近似分布家族将正确地描述后验均值,而这对基于抽样的推断方法一般是不成立的。

我们首先将\theta划分为K块:\theta=(\theta_1,\theta_2,...,\theta_n),近似分布在参数之间独立意味着

q(\theta)=\prod_{k=1}^Kq(\theta_k)

变分算法将识别(而不是假定)构成分解分布的每个组成部分的特定参数族。类似于EM算法的迭代,我们的步骤为下面两步的迭代(直到收敛):

(1)假定有了第i步的估计:\{q^{(i)}(\theta_k)\}_{k=1}^K

(2)为更新第k个因子(k=1,2,...,K) ,定义:

E_{j\neq k}[\log p(\theta|X)]=\int \prod_{j\neq k}\log p(\theta,X)q^{(i)}(\theta_j)d\theta_j

k=1,2,...,K,令

q^{(i+1)}(\theta_k)=\frac{\exp\{E_{j\neq k}[\log p(\theta|X)]\}}{\int\exp\{E_{j\neq k}[\log p(\theta|X)]\}d\theta_k} 

变分推断可能非常耗时,并且在某些情况下是不可行的。关于这部分的细节请参看Blei et al.

最大化ELBO的另一种方法是自动微分变分推断(automatic differentation variational inference, ADVI)这是一种基于梯度的方法,仍然使用迭代优化程序来获得\phi^*。人们使用类似(随机)梯度下降的理念。这需要根据参数计算ELBO关于参数\phi的导数。在复杂的模型中,这可能非常繁琐。在软件存在自动微分(AD)库的情况下,可以依赖库来准确计算导数。AD依赖成为“对偶数(dual numbers)”的变量表示来有效地计算梯度。

首先假设所有模型参数都是连续的。在ADVI中,ELBO被重写为

ELBO(\phi)=E_{q(\zeta;\phi)}\{\log p[X,T^{-1}(\zeta)]+\log|\det J_{T^{-1}}(\zeta)|-\log q(\zeta;\phi)\}

这里的T是一个把\theta转换到\zeta的函数,其值域\zeta \in R^{\dim(\theta)}。因此,需要将数据和模型参数的对数联合密度与雅可比行列式的对数绝对值相加。因为变换后的模型参数\zeta的支撑在实轴,所以多元正态分布为一个合适的变分分布。

将多元正态作为变分分布允许我们使用蒙特卡洛估计在ELBO中计算期望及其梯度。也就是说,为估计ELBO,可以从变分正态分布中抽样,并评估上述期望值内的表达式。

为了最大化ELBO,需要ELBO相对于变分参数的梯度。即

 \nabla_{\phi}ELBO(\phi)\\\\=\nabla_{\phi}E_{q(\zeta;\phi)}\{\log p[X,T^{-1}(\zeta)]+\log|\det J_{T^{-1}}(\zeta)|-\log q(\zeta;\phi)\}\\\\\approx \log p[X,T^{-1}(\hat \zeta)]+\log|\det J_{T^{-1}}(\hat \zeta)|-\log q(\hat \zeta;\phi)

上面的近似是由蒙特卡洛积分得到的,这里的\hat \zeta=\mu+z\sigma\mu\sigma分别是变分的均值和标准差,而z抽自(多元)标准正态分布。

剩下的就是进行某种梯度下降法以获得\phi的解。注意,变量参数应首先转换为无约束空间,即在对数尺度上的标准差,并不需要雅可比行列式。

ADVI可以在PyMC3、Stan以及一个名为Edward的包中实现。关于ADVI的细节请参看Kucukelbir et al. (2017)

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

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

相关文章

搅拌站erp系统|从单站到集团公司,不同规模搅拌站如何选择ERP?

搅拌站在采购ERP时经常感到困惑:市场上ERP这么多,功能看上去也大同小异,到底应该怎么选择? 其实,不同规模的搅拌站,所处的发展阶段不同,工作流程不同,在选择ERP过程中需要考量的维度…

VIOOVI干货分享:生产标准工时的计算与观测次数确认

在制造业中,生产标准工时是一个关键指标,它可以帮助企业确定生产效率、评估员工绩效以及优化生产流程。本文将介绍生产标准工时的计算方法,并探讨如何确认观测次数,以充分利用ECRS工时分析软件。 一、生产标准工时的计算 生产标准…

Vue - 实现文件导出文件保存下载

1 文件导出:使用XLSX插件 需求背景:纯前端导出,如 在前端页面勾选部分表格数据,点击"导出"按钮导出Excel文件。 实现思路: 1.通过XLSX插件的 XLSX.utils.book_new()方法,创建excel工作蒲对象wb…

计量经济学|学习笔记以及学习感悟

初级计量经济学着重于介绍基本的统计工具和经济模型,以帮助理解经济数据和经济现象之间的关系。它包括回归分析、假设检验和预测方法等内容。中级计量经济学则深入研究这些方法的理论基础和实际应用,包括更复杂的模型和技术,如面板数据分析、…

【C语言】数据结构——排序二(快排)

💗个人主页💗 ⭐个人专栏——数据结构学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读:数组打印与交换1. 交换排序1.1 基本思想:1.2 冒泡与快排的异同 2. 冒泡排序2.1 基本思想2.2 …

【模型】模型量化技术:动态范围、全整数和Float16量化

目录 一 动态范围量化 二 全整数量化 三 float16量化 通常,表示神经网络的数据类型是32位浮点数(float32),这种数据类型可以提供高精度的计算,但是在计算资源和存储空间有限的设备上运行神经网络时,会带…

小型内衣洗衣机什么牌子好?口碑好的小型洗衣机

想必大家都知道,我们的内衣裤、袜子这些衣物对卫生方面的要求是比较的高,毕竟是贴身的衣物,因此是要分开清洗的,而不能够跟我们其他的大件衣服一起放入到大型洗衣机里进行混洗,很多就选择了分开单独的手洗,…

【Python排序算法系列】—— 冒泡排序

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 冒泡排序 过程演示: 冒泡排序实现代码: 分析冒泡排序: P…

车载毫米波雷达及芯片新趋势研究2--“CMOS+AiP+SoC”与4D毫米波雷达推动产业越过大规模发展临界点

2.1 MMIC芯片工艺发展至CMOS时代,芯片集成度更高、体积与成本下降  MMIC芯片工艺经GaAs、SiGe已发展至CMOS时代,CMOS MMIC具有更低成本、更高集成度的优势。 工艺的主要变化发生在MMIC芯片的射频材料部分,目前SiGe仍为主流工艺。 SiGe虽在…

c# label 自定义行间距

label 添加 Paint 事件。用"\n" 段落换行 private void label2_Paint(object sender, PaintEventArgs e){int LineDistance 8;//行间距System.Windows.Forms.Label label sender as System.Windows.Forms.Label;System.Drawing.Font drawFont label.Font;label.Au…

Tips:电池电源电压转换为220V

今天在进行操作的时候,看到一个新的东西,就是如何普通的电瓶电压转化为220V交流电。 当在室外或者工作地距离电源比较远的情况下,一般是选取拉线的方式进行采电,但是当距离电源过远,使用拉线的方式就不可用了。如何在…

【Vue2+3入门到实战】(9)Vue基础之组件的三大组成部分(结构/样式/逻辑) 详细示例

目录 一、学习目标1.组件的三大组成部分(结构/样式/逻辑) 二、scoped解决样式冲突**1.默认情况**:2.代码演示3.scoped原理4.总结 三、data必须是一个函数1、data为什么要写成函数2.代码演示3.总结 一、学习目标 1.组件的三大组成部分&#x…

ksuser.dll文件缺失怎么办?软件或游戏无法启动,一键自动修复

很多小伙伴反馈,自己的电脑中了病毒,被杀毒软件清理后,在打开游戏或软件的时候,经常会报错“提示无法找到ksuser.dll文件,建议重新安装软件或游戏”。自己根据提示重装后,还是报错,不知道应该怎…

php学习05-常量

常量可以理解为值不变的量。常量值被定义后,在脚本的其他任何地方都不能改变。一个常量由英文字母、下划线和数字组成,但数字不能作为首字母出现。 在PHP中使用define()函数来定义常量,该函数的语法格式如下: define(string cons…

[SWPUCTF 2021 新生赛]error

[SWPUCTF 2021 新生赛]error wp 信息搜集 查看页面: 输个单引号会报错: 显然是 SQL 注入。 提示看看有没有什么捷径,你要说捷径的话,sqlmap?你不说我也会用 sqlmap 先跑一下,哈哈。 sqlmap 的使用 先简…

基于优化的规划方法 - 数值优化基础 Frenet和笛卡尔的转换 问题建模 实现基于QP的路径优化算法

本文讲解基于优化的规划算法,将从以下几个维度讲解:数值优化基础、Frenet与Cartesian的相互转换、问题建模OSQP 1 数值优化基础 1.1 优化的概念 一般优化问题公式: f ( x ) f(x) f(x):目标/成本函数 x x x:决策变…

Python圣诞树代码

Python圣诞树代码 # 小黄 2023/12/25import turtle as t # as就是取个别名,后续调用的t都是turtle from turtle import * import random as rn 100.0speed(20) # 定义速度 pensize(5) # 画笔宽度 screensize(800, 800, bgblack) # 定义背景颜色,可…

共建鸿蒙世界,信息流合作突破500家;程序员能入局吗?

12月28日,华为信息流在上海举办了创作者系列沙龙。HarmonyOS是面向万物互联全场景时代的智能终端操作系统,鸿蒙正致力于打造“一切皆服务,万物可分享”自主创新的移动应用生态。到目前为止,鸿蒙生态的设备数量已经超过7亿&#xf…

Spire.Office for Java 8.12.0

Spire.Office for Java 8.12.0 发布。在该版本中,Spire.XLS for Java支持检索使用WPS工具添加的嵌入图像;Spire.PDF for Java 增强了从 PDF 到 SVG、PDF/A1B 和 PDF/A2A 的转换。此外,该版本还修复了许多已知问题。下面列出了更多详细信息。 …

Modbus转Profinet,不会编程也能用!轻松快上手!

Modbus转Profinet是一种用于工业自动化领域的通信协议转换器,可以将Modbus协议转换为Profinet协议,实现设备之间的数据交换与通信。这个工具的使用非常简单,即使没有编程经验的人也可以轻松上手。即使不会编程的人也可以轻松快速上手使用Modb…