【GAN优化外篇】详解生成模型VAE的数学原理

VAE的原理+直观理解+公式推导+去噪+异常检测 1、VAE原理的直观理解 使用(VAE)生成建模,理解可变自动编码器背后的数学原理 一般设先验分布为标准正态分布,但是也可以是其他分布。 KL项目的是使得q(z|x)与p(z|x)相似,只是后面ELBO经过推导转换成了q(z|x)和p(z)尽可能靠近的问题。 ... 阅读详情

最近在学习生成模型的相关知识,这篇文章将介绍一下变分自编码器(Variational Auto-encoder),本文只介绍一些粗浅内容,不会涉及比较深刻的问题。

作者&编辑 | 小米粥

1. 自编码器

自编码器(autoencoder)在深度学习中占有重要地位,它最开始的目的是用于降维或特征学习。一般的自编码器由编码器(encoder)和解码器(decoder)两个神经网络构成,如下图所示:

样本x经过编码器得到它的某种编码表示z,而且z的维度小于x,再将z送入解码器则可得到样本x的重构x'。如果重构的效果比较好,则认为编码器成功地学到了样本的抽象特征,也可以理解为实现了降维。

当编码器学习到数据的抽象特征z后,我们不仅可以用于重构样本,还可以把提取到的抽象特征用于分类问题,只需要在编码器后接一个分类器即可,如下图所示:

到了VAE,则期望构建一个生成模型,它将z视为生成样本的隐变量(隐变量,顾名思义是指不可观测到的变量,但其对模型中可观察变量的输出存在影响),并对编码器和解码器进行了一些修改,最终实现了一个性能卓越的生成模型。

2.VAE的思想

与FVBN和GAN等生成模型不同,我们希望通过定义一个由隐变量“控制”的生成模型:

这个生成模型生成样本的方式将十分简洁优雅:先从隐变量的分布Pθ(z)中采样得到z,然后在条件分布Pθ(x|z)中采样即可得到生成样本,但是这个生成模型无法搭建出来!因为训练生成模型通常需要将对数似然函数极大化来求解模型参数θ,即对训练样本{x(1),x(2),...,x(n)},要求

这里必然要计算Pθ(x),分析Pθ(x)的计算式,积分号内部的计算没有问题,对于隐变量的先验分布Pθ(z)可以将其设计为简单的高斯分布,对Pθ(x|z)可使用一个神经网络来学习,无法解决的地方是遍历所有的隐变量z求积分!而且,隐变量z的后验分布

也是难以求解的(因为其分母无法计算)。

一般的训练生成模型必须先求解对数似然函数(也就是说以似然函数作为损失函数),然后使其最大,VAE的想法是:虽然无法求解准确的对数似然函数,但可以设法得到对数似然函数的下界,然后令下界极大即可,这就相当于近似地令对数似然函数达到极大了。

具体做法是这样的:刚才说到隐变量z的后验分布Pθ(z|x)是难以计算的,VAE引入了一个新的概率分布qφ(z|x)来逼近Pθ(z|x),这时的对数似然函数为

最终的式子由三项组成,前两项是可以计算的,处理细节下面再说,第三项无法计算,但是根据KL散度的性质可知第三项必定大于等于0(这个性质涉及到泛函中的变分,变分自编码器的变分即来源于此),也就是说

我们将上述不等式右侧称为一个变分下界(ELBO),记为L(x(i);θ,φ),这时只需要最大化变分下界即可,即将变分下界作为模型的损失函数:

VAE的最核心的想法已实现,接下来将描述一些细节,如何将数学模型转换到神经网络上?如何计算变分下界EBLO。

3. 编码器

首先关注EBLO的第二项 ,它是计算隐变量的后验分布的近似分布qφ(z|x(i))和隐变量的先验分布Pθ(z)的KL散度。在基于实际中的经验,作出两个假设:1.隐变量的先验分布Pθ(z)为D维标准高斯分布N(0,I),注意这时的Pθ(z)将不包含任何参数,重新记为P(z);2.隐变量的后验分布的近似分布qφ(z|x(i))为各分量彼此独立的高斯分布N(μ,Σ;x(i)),也就是说对每一个样本x(i),均对应一个高斯分布N(μ,Σ;x(i))。现在需要只要再知道μ(x(i)),Σ(x(i))就可以计算KL散度了,我们用两个神经网络(即编码器,参数为φ)来求解均值、方差的对数(因为方差的对数的值域为全体实数,而方差的值域为全体正实数,使用神经网络拟合方差的对数不需要精确设计激活函数的值域,相对方便)。由于D维的隐变量z的每个维度彼此独立,则均值为D维向量,而方差为D维对角矩阵,即

方差其实也只有D个需要学习参数,而不是DxD个。这里所谓的编码器的输入为样本x(i),第一个编码器输出D维向量为

第二输编码器出也为D维向量,即:

即有

由于两个高斯分布每个维度彼此独立,KL散度可分开计算,其中第d维的KL散度值为:

上述计算过程比较简单,在此不展开。由于每个分量彼此独立,易知总KL散度为:

在计算上,通过让编码器学习隐变量后验分布的近似分布的均值和方差,得到了隐变量后验分布的近似分布的表达式,从而可以计算KL散度,本质上,VAE训练编码器是希望KL散度值达到最小,即令后验近似分布趋近于标准正态分布,就是说对每个样本 , qφ(z|x(i)) 都向标准高斯分布靠拢。

4. 解码器

现在关注ELBO的第一项 ,为了计算这一项,需要使用一个经验上的近似

意思是说计算这项时并不需要采样所有不同z再计算log P(x(i)|z)求均值,而只需要从中采样一次即可。这样的做法看似是不合理,但实际效果证明约等于的关系是成立的,联想到普通自编码器中是一一映射的,一个样本x对应一个隐变量z,可想象qφ(z|x(i))是一个非常锐利的单峰分布,故多次采样计算均值和一次采样效果相差不大。

接下来,为了计算log P(x(i)|z),我们再次作出假设,假设Pθ(x|z)是伯努利分布或高斯分布。当假设为伯努利分布时,对应x为二值 、Q个维度彼此独立的向量,而伯努利分布的Q个参数交给神经网络学习,这个神经网络即解码器,它由θ来参数化,输入为隐变量z,输出为:

即

现在可以计算样本的似然为:

相应的对数似然为:

所以只需要把编码器的最后一层激活函数设计为sigmoid函数,并使用二分类交叉熵作为解码器的损失函数即可。

若假设Pθ(x|z)为高斯分布,对应x为实值、Q个维度彼此独立的向量,而高斯分布每个维度的方差固定为某个常数σx σ,Q个均值参数交给神经网络学习,这个神经网络即解码器,它由θ来参数化,输入为隐变量 ,输出为

解码器即

现在可以计算样本的似然函数为:

相应的对数似然为:

所以需要把编码器的最后一层激活函数设计值域为全体实值的激活函数,并使MSE作为损失函数即可。

在计算上,基于经验知识使用了一次采样的近似操作,并依靠编码器学习Pθ(x|z)的参数,最后计算了条件概率下样本的似然。VAE希望将解码器部分对应的损失函数最大,本质上是希望样本的重构误差最小,这在伯努利分布中非常明显,在高斯分布中,MSE损失希望将编码器的输出(高斯分布的均值)与样本接近。

5.重参数

回顾上面的过程,正向推断过程是这样的:将样本x(i)送入编码器可计算得到隐变量后验近似分布的各项参数(即高斯分布的均值和方差),这时需要从分布中采样一个隐变量z,然后将z送入编码器,最后计算损失函数,反向传播更新参数。

其实这里一个小问题,从分布中采样的过程是不可导的,即编码器计算的均值和方差参数在采样得到隐变量后就被“淹没”了,解码器面对的只是一个孤立的不知从哪个高斯分布采样得到的z。需要把μ和Σ告诉编码器,否则反向传播时,梯度传到采样得到的z就会断掉。

重参数技巧(Reparameterization Trick)做了一个简单的处理,采样隐变量时,直接在标准正太分布N(0,I)中采样得到  ,然后考虑编码器学得的均值和方差参数,令

这样,反向传播的环节被打通。为了便于直观理解,整个VAE的正向流程如下图所示:

训练完成后,推断时,直接从标准高斯分布p(z)中采样得到隐变量z,然后送入解码器,在伯努利分布中解码器输出概率值;在高斯分布中解码器输出均值,即生成的样本。

6. 小评

VAE与GAN不同,GAN属于隐式概率生成模型,在GAN中没有显式出现过似然函数,而VAE属于显式概率生成模型,它也力求最大化似然函数,但是不像FVBN模型中存在精确的似然函数以供最大化,VAE得到了似然函数的下界,近似地实现了极大似然。

在图像生成问题上,VAE的优点是多样性好,而一个比较明显的缺点是,生成图像模糊,这可能是使用极大似然的模型的共同问题,因为极大似然的本质是最小化

再深入一些,这个问题的解释设计到KL散度的性质,在此便不再展开。

[1]Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint arXiv:1312.6114 (2013).

总结

这篇文章讲了一下原始的自编码器,然后讲了VAE的基本思想,以及如何构造编码器和解码器,最后简要对VAE的一个缺点进行了评价。

知识星球推荐

有三AI知识星球由言有三维护,内设AI知识汇总,AI书籍,网络结构,看图猜技术,数据集,项目开发,Github推荐,AI1000问八大学习板块。

转载文章请后台联系

侵权必究

往期精选

【深度学习】VAE(Variational Auto-Encoder)原理 下面的内容是从李宏毅2017年机器学习课程中关于VAE一节[1]中整理的。课程讲解的非常细致,再整理一遍方便理解查阅。 一、AE与VAE AE(Auto-Encoder)是一个应用很广泛的机器学习方法。 主要内容即是:将输入(Input)经过编码器(encoder)压缩为一个编码(code),再通过解码器(decoder)将编码(code)解码为输出(Output)。 学习的目标即:要使得输出(... 阅读详情

相关推荐

变分自编码器(VAE)的数学原理以及实现

变分自编码器(VAE)是一种基于神经网络的生成模型,它结合了深度学习和贝叶斯推断的概念。VAE的主要目标是学习输入数据的潜在表示,并能够生成新的数据实例。

h52013141的博客 2268

VAE(变分自编码器)原理简介

变分自编码器(VAE)是一种深度生成模型,可以用于从高维数据中提取潜在的低维表示,并用于生成新的样本数据。自编码器(Autoencoder)是深度学习领域中常用的一种无监督学习方法,其基本思想是通过将输入数据压缩到低维表示,然后将其解压缩回原始空间,从而实现对数据的重构。自编码器的训练过程可以通过最小化重构误差来完成。但是,传统的自编码器无法对数据进行采样或生成,因此无法应用于生成模型中。VAE是一种改进的自编码器模型,它采用了概率编码和解码的方式,并通过引入KL散度来强制潜在表示服从预先定义的高斯分布。

qq_41771998的博客 6826

VAE和GAN结构、优化目标、代码实现

对VAE和GAN的模型结构和代码实现,及其数据表示。此外包含VAE和GAN的对应的优化目标和损失函数的原理和实现

欢迎大家一起交流学习! 2856

一文读懂变分自编码(VAE)

变分自编码器(Variational Autoencoder, VAE)是一种生成模型,用于学习数据的潜在表示并生成与原始数据分布相似的新数据。它是一种概率模型,通过结合深度学习和变分推断的思想,解决了传统自编码器无法生成数据的限制。

m0_74259787的博客 1万+

生成模型(VAE、GAN与DDPM)

VAE结合深度学习和贝叶斯推断,通过编码-解码结构学习数据的潜在分布。它假设数据由潜在变量zzz生成,并使用变分推断近似后验分布。GAN通过生成器和判别器的对抗训练,生成与真实数据分布一致的样本。生成器从噪声生成样本,判别器区分真实和生成样本。DDPM通过模拟数据加噪和去噪过程,学习生成与训练数据一致的样本。它在图像生成中表现优异,生成质量高且多样。VAE:稳定、理论强,但生成样本模糊。GAN:生成样本清晰,但训练复杂。DDPM:生成质量高、样本多样,但生成速度慢。

Rhett_Butler0922的博客 637

GAN(对抗生成网络)的数学原理及基本算法

从structured learning看GAN Machine Learning (ML) 本质上是寻找一个函数f:X→Yf:X\to Yf:X→Y,通过网络来近似这个函数。Structured Learning (SL) 输出相对于ML更加复杂,可能是图、树、序列……通常ML的问题,每个类别都会有一些样本,但是SL则不会——输出可能是输入从来没见过的东西。 在GAN 之前,auto-encod...

abril4416的博客 3245

深度生成AI核心技术解析:从VAE、GAN到扩散模型的完整指南

深度生成模型作为人工智能领域的重要分支,通过学习数据分布来创造全新样本。其核心原理基于概率分布建模,能够从训练数据中提取内在结构特征。在技术价值方面,生成模型突破了传统判别模型的局限性,为内容创作、药物研发等场景提供了强大的数据生成能力。当前主流的生成模型技术包括变分自编码器(VAE)、生成对抗网络(GAN)和扩散模型等,每种技术都有其独特的优势和应用场景。VAE通过编码器-解码器结构实现稳定的潜在空间学习,GAN则通过生成器与判别器的对抗训练产生高质量样本,而扩散模型则采用逐步去噪的机制达到当前最先进的生

weixin_34220179的博客 341

VScode远程连接开发嵌入式开发板

VScode远程连接开发调试嵌入式开发板

qq_53221728的博客 5892

AIGC无条件生成实战:如何用Python快速搭建生成模型?

本文旨在为人工智能开发者和机器学习爱好者提供一套完整的无条件生成模型搭建指南。通过深入解析三种主流生成模型(GAN、VAE、扩散模型)的核心算法,结合PyTorch框架实现可运行的生成系统,覆盖从数学原理到工程落地的全流程。生成模型基础理论与核心架构对比基于PyTorch的模型实现与代码解析数据集预处理与训练流程优化生成结果评估与可视化技术核心概念:解析生成模型核心原理与架构差异算法实现:提供三种模型的数学推导与Python代码实战案例:基于MNIST/CIFAR-10的完整项目开发。

AI 原生应用开发的博客 422

宜搭子表单(自定义页面全部展示)

效果:增加自定义页面添加表格组件,配置数据源变量: formUuid'表单编码'变量: pageSize10变量: currentPage1。

2301_80286061的博客 2282

易语言游戏Call调用避坑指南:主线程绑定与反检测实战

本文详细解析了易语言游戏Call调用中的主线程绑定与反检测技术,帮助开发者避免游戏崩溃和断线问题。通过分析线程检测原理、提供易语言实现方案及高级反检测技巧,如动态线程绑定和上下文伪装,确保Call调用的稳定性和安全性。文章还包含常见问题排查和性能优化建议,适用于游戏辅助开发领域。

weixin_29323365的博客 460

谷歌浅析:扩散模型背后的数学原理

来源:机器之心扩散模型背后的数学可是难倒了一批人。最近一段时间,AI 作画可谓是火的一塌糊涂。在你惊叹 AI 绘画能力的同时,可能还不知道的是,扩散模型在其中起了大作用。就拿热门模型 OpenAI 的 DALL·E 2 来说,只需输入简单的文本(prompt),它就可以生成多张 1024*1024 的高清图像。在 DALL·E 2 公布没多久,谷歌随后发布了 Imagen,这是一个文本到图像的 A...

idol24的博客 482

5个免费股票数据API实测对比:从AkShare到BaoStock,哪个最适合你的AI量化项目?

本文深度评测了AkShare、BaoStock、yfinance、Alpha Vantage和EOD Historical Data这五个免费股票数据API,从数据质量、覆盖范围、更新频率、稳定性及易用性进行对比。针对AI量化项目,文章提供了详细的选型策略,帮助开发者根据项目阶段与需求,精准选择最适合的数据源,并强调了多源验证与数据清洗的重要性。

weixin_29290947的博客 5104

math10&11

weixin_50490881的博客 15

电阻、电容、电感的实际等效模型

1、电阻的等效模型 2、电容的寄生参数 3、电容的等效参数 4、理想铝电解电容与实际铝电解电容的区别 5、电感的等效模型  

鸟宿江边树的博客 4万+

相机标定-张正友棋盘格标定法

(X,Y,Z)为在世界坐标系下一点的物理坐标 ( u , v ) 为该点对应的在像素坐标系下的像素坐标 引入齐次坐标的原因:引入齐次坐标的目的是为了升维,将坐标从二维坐标变为三维坐标。 2.相机成像过程 相机成像系统中,共包含四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。 (1)世界坐标系(,,) 描述目标在真实世界中的位置引入的参考坐标系。 (2)相机坐标系(,,) ...

qq_41275123的博客 1万+

深度学习——深度生成模型(GAN,VAE)

一.GAN的基本要素 1.真实数据集,初始化虚假数据集(噪音) 2.生成器,鉴别器: 生成器: 输入:原始数据的维数(一条数据) 输出:原始数据的维数(一条数据) ...

weiwei935707936的博客 4130

本地部署大模型:dgx-spark-ai项目硬件选型、部署与私有化AI构建指南

大语言模型(LLM)的本地部署是当前AI工程实践中的重要方向,其核心原理在于将模型权重与计算过程完全置于用户可控的硬件环境中。这项技术的核心价值在于实现了数据主权与隐私安全,避免了云端服务的延迟、持续订阅成本及数据外泄风险。从技术实现看,本地部署的关键在于硬件选型与软件环境适配,尤其是NVIDIA GPU的CUDA生态、显存容量与内存带宽的匹配。在应用场景上,本地化部署特别适合对数据敏感性要求高的领域,如企业内部代码助手、金融分析或医疗研究,能够支持私有化模型微调与定制化工作流构建。本文以dgx-spark

weixin_42531579的博客 505

【神经网络与深度学习】VAE 和 GAN

VAE(变分自编码器)和 GAN(生成对抗网络)是深度学习中两种主要的生成模型,它们在数据生成任务中发挥着重要作用。虽然它们的目标相似,都是生成与训练数据分布相匹配的新样本,但在训练方式、潜在空间结构、生成样本质量和稳定性方面存在显著差异。本文将从多个方面对 VAE 和 GAN 进行对比分析,以帮助初学者更直观地理解它们的特点和区别。

weixin_50512050的博客 1442

YOLOv11与3D点云检测融合技术深度解析:从2D检测到三维空间投影的完整实现

2D-3D融合目标检测技术研究 本文系统阐述了基于YOLOv11的2D-3D目标检测融合技术,重点分析了YOLOv11在融合系统中的定位优势及其架构设计。研究表明,2D图像与3D点云数据具有显著的互补特性:2D图像提供丰富语义信息,而3D点云则精确描述几何结构。 关键技术要点: YOLOv11通过GSConv平衡卷积和VoVGSCS特征融合模块,在保持实时性的同时提升了检测精度 系统采用模块化设计,包含坐标投影、点云分割、边界框拟合等核心组件 针对点云数据的非均匀分布特性,提出了多尺度特征增强和距离差异化检

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1129

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[生成对抗网络GAN入门指南](2)理解生成对抗网络

一. Generative Model 生成新数据应用: 生成超高解析度成像,将低分辨率的照片转化成高分辨率; 艺术创作:图像转换、文字到图像的转换;消费市场。   二. Auto-Encoder 将输入先进行编码,然后经过多层感知器的神经网络,相当于进行了降维和数据压缩。 而在生成模型中,我们仅适用压缩后编码到解码器的这一后半部分。   三. Variational Auto-...

gdtop的个人笔记 1932

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

只知道GAN你就OUT了——VAE背后的哲学思想及数学原理

作者:李乐——优快云 AI专栏作家 引言短短三年时间,变分编码器VAE(Variational Auto-encoder)同GAN一样,成为无监督复杂概率分布学习的最流行的方法。VAE之所以流行,是因为它建立在标准函数逼近单元,即神经网络,此外它可以利用随机梯度下降进行优化。本文将解释重点介绍VAE背后的哲学思想和直观认识及其数学原理。VAE的最大特点是模仿自动编码机的学习预测机制,在可测...

qunnie_yi的博客 3293

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VQ-VAE,VQ-GAN,Diffusion Model的异同和优劣是什么

应用场景VQ-VAE:适合需要隐空间语义连续性和编辑能力的任务,如图像插值、特征提取等。VQ-GAN:适合需要高分辨率生成和实时生成的任务,如游戏角色生成、工业设计等。:适合生成高质量、可控性强的图像,如AI绘画、科学发现、文本生成图像等。发展趋势VQ-VAE:随着模型规模的扩大和计算资源的提升,VQ-VAE在图像生成中的应用将更加广泛。VQ-GAN:在实时生成和工业设计中的优势将使其在特定领域持续发挥作用。:凭借其极高的生成质量和可控性,成为当前多模态生成的主流技术,但需权衡计算成本。

具身机器人和通用AI 1436

从理论到实战:VAE、GAN与VAE-GAN的PyTorch实现与特征可控生成解析

本文深入解析了VAE、GAN及VAE-GAN的PyTorch实现与特征可控生成技术。通过对比VAE的概率图模型与GAN的对抗训练机制,详细介绍了混合架构VAE-GAN的设计原理与实战技巧,包括多尺度特征匹配、潜在空间约束等关键方法,并提供了MNIST数字生成的PyTorch代码示例,帮助开发者掌握深度生成网络模型的核心应用。

weixin_29057163的博客 254

Diffusion、VAE、GAN三大生成模型实战对比:从原理到代码实现(PyTorch版)

本文深入对比了Diffusion、VAE和GAN三大生成模型的原理与实战应用,通过PyTorch代码实现详细解析了它们在MNIST和CIFAR-10数据集上的表现差异。文章涵盖了VAE的概率编码、GAN的对抗训练以及Diffusion的渐进式去噪技术,并提供了优化技巧和性能对比数据,帮助开发者根据实际需求选择最适合的生成模型。

stone的博客 274

【AIGC】深入解析变分自编码器(VAE):理论、数学原理、实现与应用

变分自编码器是一种结合了概率图模型与深度神经网络的生成模型。与传统的自编码器不同,VAE不仅关注于数据的重建,还致力于学习数据的潜在分布,从而能够生成逼真的新样本。VAE由编码器和解码器两部分组成。编码器将输入数据映射到潜在空间的参数(均值和对数方差),解码器则从潜在向量重构数据。# 编码器部分nn.ReLU()# 解码器部分nn.ReLU(),eps = torch.randn_like(std) # 采样自标准正态分布VAE的损失函数由重构误差和KL散度两部分组成。

万物皆有灵 1949
上一篇: 【通知】有三AI项目研发组成员招收条件及可对接业务暂行方案
下一篇: 【杂谈】为什么我们从来不追热点,循序渐进学习它不好吗?
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值