变分自编码器VAE的数学原理

news2025/1/14 0:52:54

变分自编码器(VAE)是一种应用广泛的无监督学习方法,它的应用包括图像生成、表示学习和降维等。虽然在网络架构上经常与Auto-Encoder联系在一起,但VAE的理论基础和数学公式是截然不同的。本文将讨论是什么让VAE如此不同,并解释VAE如何连接“变分”方法和“自编码器”。

本文更专注于VAE的统计概念和推导。我们将从介绍VAE所要解决的问题开始,解释变分方法在解决方案中所起的作用,并讨论VAE与AE之间的联系。最后还会将VAE应用于图像重建任务来进行具体的演示。

我们考虑一个由随机变量x的N个i.i.d.样本(标量或向量)组成的数据集。假设数据是由一些随机过程产生的,这里包含一个未观察到的随机变量z(即潜在变量)。

生成过程有两个步骤:

值 z⁽ⁱ⁾ 是从某个先验分布 p(z; θ) 生成的, 值 𝐱⁽ⁱ⁾ 是从一些依赖于 𝐳⁽ⁱ⁾ 的条件分布 p(x|z=𝐳⁽ⁱ⁾; θ) 生成的,

其中先验p(z;θ)和条件似然p(x|z;θ)都是未知参数集θ的参数分布。

我们感兴趣的是与给定场景相关的以下三个问题:

  • 参数集θ的MAP/ML估计,使用它可以模拟上述生成过程并创建人工数据。
  • 对于参数θ的选择,给定观测值x,隐变量z的后验推断,即p(z|x;θ),这对表示学习很有用。
  • 对于参数θ的选择,变量x的边际推断,即p(x;θ),这在需要先验x的情况下是有用的。

变分法

变分法是解决上一节提出的三个问题的关键。让我们从后验推理开始,即计算 p(z|x=𝐱⁽ⁱ⁾; θ)。我们可以通过应用贝叶斯定理和概率链式法则写出后验概率:

假设我们可以选择参数θ,因此先验分布p(z;θ)和似然p(𝐱⁽ⁱ⁾|z;θ)由生成过程定义的值是已知的。所以理论上后验p(z|𝐱⁽ⁱ⁾;θ)可以在计算分母中的积分后计算出来,这涉及到枚举不可观测变量z可能具有的所有可能值。

但是如果没有对 p(z|𝐱⁽ⁱ⁾; θ) 或 p(z; θ) 的任何简化假设,积分是难以处理的,这意味着任何用于评估积分的方法(包括枚举运算)的计算复杂度都是指数级的。

变分法就是为这种情况而设计的,它允许我们通过将统计推理问题转化为优化问题来避免棘手的积分问题。变分法提出了一个识别模型 q(z|𝐱⁽ⁱ⁾; ϕ) 作为真实后验 p(z|𝐱⁽ⁱ⁾; θ) 的近似值。通过最小化 q(z|𝐱⁽ⁱ⁾; ϕ) 和 p(z|𝐱⁽ⁱ⁾; θ) 之间的 KL 散度,我们可以解决后验推理问题。为了简化计算,这里将对识别模型和生成模型的参数 φ 和 θ 进行联合优化。

让我们对KL散度做进一步的推导,为简单起见,参数ϕ和θ将被省略。

logp(x)是一个常数,所以在优化过程中可以忽略。我们还要重写ELBO:

优化问题现在等价于:

算法学习的过程

借助变分法可以避免复杂的积分,而下一个挑战是对给定的优化问题使用什么算法。如果能够解决这个问题那么上面提到的三个问题就都不是问题了。

就像其他深度学习模型一样,我们使用随机梯度下降进行优化,将要最大化的优化目标(即 ELBO)重写为要最小化的损失函数的形式:

这里原始期望项使用蒙特卡洛方法进行近似,即对从 q(z|x⁽ⁱ⁾; ϕ) 中提取的 L 个样本 z⁽ⁱ ˡ⁾ 求平均 logp(x⁽ⁱ⁾|z; θ)。给定可微损失函数,VAE 的完整学习算法如下:

  1. 得到由 M 个数据点组成的小批量;
  2. 计算小批量损失 ∑ ℒ(ϕ,θ, x⁽ⁱ⁾) / M;
  3. 计算梯度 ∑ ∇ℒ(ϕ,θ, x⁽ⁱ⁾) / M;
  4. 应用梯度来更新参数 ϕ 和 θ;
  5. 重复前 4 个步骤直到收敛。

在实际 应用中,样本 z⁽ⁱ ˡ⁾ 不是直接从 q(z|𝐱⁽ⁱ⁾; ϕ) 中抽取的,因为 q 可以是任意复杂的分布并且难以采样。为了提高采样效率,可以通过设置g(ϵ⁽ⁱ ˡ⁾, 𝐱⁽ⁱ⁾; ϕ),其中g(*, *;ϕ)可以是任何以噪声ϵ⁽ⁱ ˡ⁾,而𝐱⁽ⁱ⁾是神经网络的输入。噪声ϵ⁽ⁱ ˡ⁾是从一些简单分布p()中采样的(例如高斯分布)。

除了采样效率之外,重新参数化技巧的另一个优点是它允许对 ϕ 和 θ 进行更好和更全面的优化。假设我们直接从 q(z|𝐱⁽ⁱ⁾;ϕ)中抽取样本,损失中 MC 估计项的梯度只会反向传播到采样的潜在变量 z⁽ⁱˡ⁾, 它的梯度 w.r.t ϕ 不会被计算,所以参数 θ 只能通过损失中的 KL 散度项来优化,这对于学习稳定性来说可能不是最优的。

VAE vs. AE

我们对VAE和AE进行比较,这样可以帮助我们从自编码理论的角度更好地理解VAE。

在自编码器的世界中,编码器f(x)处理数据点𝐱⁽ⁱ⁾,然后生成z⁽ⁱ⁾。解码器g(z)将z⁽ⁱ⁾作为输入,并重建的x̂⁽ⁱ⁾。自动编码器一般都是在重建损失ℒ(𝐱⁽ⁱ⁾),平方误差,||x̂⁽ⁱ⁾ − x⁽ⁱ⁾||²下学习。

对于 VAE,未观察到的变量 z 可以解释为分布编码。识别模型 q(z|x; ϕ) 可以被视为概率编码器,因为给定数据点 x 它会产生 z 的可能值的分布,而p(x|z;θ)可以看作一个概率解码器:给定一个编码z,它产生x的可能对应值的分布。

VAE损失函数中的MC估计项恰好是负对数似然的形式,因此可以作为重建损失,损失函数中还包含一个 KL 散度项,它充当正则化项并强制分布 q(z|x; ϕ) 接近先验 p(z; θ)。

所以VAE 可以看作是 AE 的概率版本,它们都是表示学习的有用工具。而VAE 相对于 AE 的优势在于它明确地模拟了生成过程,并且能够通过从 p(x|z; θ) 中采样来生成类似于真实数据的人工数据点。更重要的是VAE 学习的分布在统计分析中非常有用。

使用MNIST的演示VAE

在所有的理论解释之后,我们使用MNIST图像重建任务的演示VAE。VAE模型的结构如下:

高斯编码器:由于其稳定的静态特性和简单的采样,我们选择多元高斯作为编码器输出分布,其中的均值和方差值由前馈网络建模。

伯努利解码器:MNIST数据是灰度图像,其中每个像素都可以表示为0到1之间的一个浮点数,因此伯努利分布是我们解码器的首选。Fσ是元素级sigmoid激活函数,公式如下:

损失函数:为简单起见,我们将先验p(z)设置为正态分布𝒩(0,I)。概率编码器的分布是𝒩(𝐳;𝛍,𝛔²𝐈),其中μ∈ℝᴶ,σ²∈ℝ₊ᴶ和μⱼ,σ²分别是均值/向量的第j个分量。KL散度项为:

对于期望项,我们设置样本数L=1并使用MC估计logp(x⁽ⁱ⁾|z⁽ⁱ¹⁾)来代替原始期望项,其中代码z⁽ⁱ¹⁾通过重新参数化技巧进行采样。也就是说z⁽ⁱ ¹⁾=μ+σ⊙ϵ⁽ⁱ ¹⁾,噪声ϵ⁽ⁱ¹⁾从正态分布中采样𝒩(0, I), ϵ ∈ ℝᴶ,μ/σ²是编码器中的均值/向量。

结合KL和MC估计项可以得到完整的损失函数(负ELBO):

这是概率解码器 p(x|z; θ) 生成的手写数字图像的有趣可视化。

总结

总最后总结本文的关键要点:

  • VAE用于解决3个统计问题,分别是参数估计、后验推断和边缘分布推断。
  • 通过使用变分方法,可以构造一个损失函数为负ELBO的参数优化问题,通过重新参数化技巧和随机梯度下降算法来解决VAE的统计问题。
  • 变分法引入的识别模型q(z|x; ϕ)和预定义的生成模型p(x|z; θ)分别对应概率编码器和解码器,而损失函数可以解释为组合重建损失以及正则项。

以上就是本文的所有内容,对于VAE的实现代码,请看这里:

https://avoid.overfit.cn/post/3da44e8799104455b554f40c3c04fef6

作者:JZ

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

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

相关文章

【JVS低代码】一分钟学会如何快速创建应用

应用中心功能介绍 在JVS角色中有“应用管理员”的角色,如果赋予该角色,则用户为应用管理员,应用管理员有进入应用配置中心的权限。 创建空白应用: 从模板创建应用: 应用中心入口 具备应用管理员权限的用户&#xff…

嵌入式软件开发为什么需要DevOps?

DevOps提出至今已逾十年,作为热门概念,DevOps近年来频频出现于各大技术社区和媒体文章中,备受行业大咖追捧。作为新一代持续集成/持续开发(CI/CD)的方法论,DevOps正被快速引入嵌入式软件开发领域中。 为什…

【C++】类和对象(C++门槛)

唯有奋力奔跑,才能方得始终。 文章目录一、struct > class(类 方法/成员函数 属性/成员变量)1.自定义类型 struct 和 class 的区别2.类放在内存中的什么存储区?3.类中函数的两种定义方式3.1 声明和定义分离(增强代码可读性,…

docker 搭建 Nuget 服务器,CentOS,宝塔面板

docker 搭建 Nuget 服务器,CentOS,宝塔面板创建容器挂载目录给目录指定写入权限创建并运行 Nuget 服务创建Nuget包项目属性修改包版本号预生成事件执行重新生成手动上传vs菜单命令上传 记得上传在前修改版本号添加外部工具添加自定义命令项目文件夹下面新建 push.cm…

stable diffuison论文阅读

论文链接:High-Resolution Image Synthesis with Latent Diffusion Models 文章目录摘要引言普及高分辨率图像合成向潜空间出发相关工作图像合成的生成模型两阶段法图像合成方法感知图像压缩隐空间扩散模型扩散模型隐空间表征的生成模型条件机制实验感知压缩权衡基于…

【发表案例】计算机科学类SCI,仅1个月零6天录用,涵盖软件、信息、数据云计算、网络、建模等研究方向

【期刊简介】IF:0.5-1.0,JCR4区,中科院4区 【版面情况】SCI 在检,正刊 【征稿领域】计算机科学和控制系统相关问题的广泛领域,包括:软硬件工程;管理系统工程;信息系统和数据库;嵌入…

GPS(rinex格式)数据解析详细解读

RINEX格式现如今已成为GPS测量应用中的标准数据格式,目前应用最为广泛、最普遍的是RINEX格式的第2个版本,该版本能够用于包括静态和动态GPS测量在内的不同观测模式数据。在该版本中定义了6种不同类型的数据文件,分别用于存放不同类型的数据&a…

【经典设计】构建业务架构的3大视图

​ 在软件设计过程中,架构设计、功能设计和数据设计是三个不同层次的设计工作。而业务架构是系统整体规划中重要的基础工作,通常用业务架构图来表达业务架构。 业务架构定义了企业的治理结构、业务能力、业务流程、业务数据。业务能力说明企业做什么&a…

I/O指令和I/O地址译码

目录 掌握 I/O指令和I/O地址译码 独立编址(标准的I/O寻址方式) 8086/8088采用 特点 统一编址(存储器映像I/O寻址方式又称存储器对应I/O寻址方式) 特点 优点 缺点 输入输出指令 输入指令 输出指令 I/O接口的端口地址译…

rtt 线程管理

1.线程管理的定义 在日常生活中,我们要完成一个大任务,一般会将它分解成多个简单、容易解决的小问题,小问题逐个被解决,大问题也就随之解决了。在多线程操作系统中,也同样需要开发人员把一个复杂的应用分解成多个小的、…

第二证券|这个板块全线上涨,机构看好板块估值修复空间!

本周部分个股获杠杆资金逆市买入,医药生物股最受资金喜爱。 职业教育股早盘领涨两市 12月23日早盘,职业教育板块强势走高,概念指数上涨3.89%。其间全通教育20cm涨停,凯文教育、陕西金叶10%涨停,世纪鼎利、天舟文化早盘…

web前端-javascript-初识 RegExp 正则表达式(说明,创建的语法,正则的test方法,邮箱正则)

初识 RegExp 正则表达式 1. 说明 正则表达式用于定义一些字符串的规则计算机可以根据正则表达式,来检查一个字符串是否符合规则 或者将字符串中更符合规则为的内容提取出来 2. 创建正则语法 var 变量 new RegExp(“正则表达式”,“匹配模式”);使用typeof检查…

LeetCode 93 双周赛

2496. 数组中字符串的最大值 一个由字母和数字组成的字符串的 值 定义如下: 如果字符串 只 包含数字,那么值为该字符串在 10 进制下的所表示的数字。否则,值为字符串的 长度 。 给你一个字符串数组 strs ,每个字符串都只由字母…

【服务器数据恢复】Storwize系列存储raid5数据恢复案例

服务器故障: 某品牌Storwize系列存储中raid5阵列有一块硬盘出现故障离线,热备盘启用替换离线盘,开始同步数据。这时与离线盘同一组Mdisk中的另一块磁盘故障离线,热备盘同步失败,这组Mdisk失效,整个通用卷无…

阿里灵杰:与开发者一起推动AI创新落地

对于人工智能领域而言,“AIGC”无疑是贯穿2022年的热点。12月16日,Science杂志发布了2022年度科学十大突破,AIGC赫然在列。以文生图,对话机器人等AI创新应用的落地,引发一轮又一轮的全民狂欢热潮。AI技术蓬勃发展&…

全国职业院校技能大赛中职组网络安全竞赛—[中科磐云](总结经验分享)

全国职业院校技能大赛中职组网络安全竞赛—[中科磐云](总结经验分享)通过本项目竞赛,使中职学生能熟练运用网络信息安全技术对网络、操作系统、应用、服务器等目标进行信息和数据安全防护与渗透,具有分析、处理现场安全问题的能力…

DBCO-PEG-FITC二苯基环辛炔-聚乙二醇-异硫氰基荧光素说明;DBCO用于无铜点击化学。在没有铜催化剂的情况下,与叠氮化合物的反应迅速。

DBCO-PEG-FITC二苯基环辛炔-聚乙二醇-异硫氰基荧光素 FITC-DBCO荧光标记点击试剂 中文名称:荧光素-聚乙二醇-二苯基环辛炔 英文名称:DBCO-PEG-FITC 简 称:DBCO-PEG-FITC 性 状:液体/固体白色或淡黄色粉末,取决于分…

【技术er圣诞创意大赏】基于Flink的实时数据平台

一、前言 迪拜是否过圣诞节日,迪拜信基督教的人过圣诞,其他一般不过。 圣诞节(Christmas)又称耶诞节、耶稣诞辰,译名为“基督弥撒”,是西方传统节日,起源于基督教,在每年公历12月2…

MySQL字段长度修改 锁表情况分析

前言 最近发现有一个780w左右的表的某个字段长度设置不合理,导致数据无法插入 , 于是计划修改长度。 担心会锁表阻塞业务所以选择晚上执行修改, 结果在晚上发现这个修改是秒生效, 并没有阻塞数据库,于是分析下原因。 …

全国数据治理认证DAMA-CDGA/CDGP(线上班)招生简章

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…