概率的艺术:变分下界(ELBO)与VAE

本文介绍了作者今年关注的LLM和AIGC技术领域,重点研究了StableDiffusion中的扩散模型,特别是其核心原理DDPM和背后的数学推导。文章详细解读了ELBO、VAE和HVAE的概念,以及它们在生成模型中的应用,特别强调了扩散模型如何通过最大化ELBO来生成细致的图像。
摘要由CSDN通过智能技术生成

按照年初的规划,LLM和AIGC是笔者今年重点学习的两大方向,目前已经分两条线在逐步展开中。笔者最近对Stable Diffusion在本地进行了部署,深度尝试使用了三周时间,对SD常规用法、LoRA、Textual Inversion、Dreambooth和ControlNet均小有尝试,以下均为笔者使用SD绘制的效果图片(相关模型均来自Civitai)。

cf8279d8e8ab184cd8280b4f7a7be877.png

SD等绘图工作背后的核心技术就是目前非常火热的扩散模型(Diffusion Models),原理部分涉及了大量概率统计的数学推导,面对铺天盖地的公式,笔者一开始内心是拒绝的。但是本着不把原理搞清楚就用着不踏实的心态,笔者还是花了好几天研究了相关论文,对扩散模型的相关理论做了一个全面的梳理。

扩散模型的核心论文Denoising Diffusion Probabilistic Models,也就是著名的DDPM (http://arxiv.org/abs/2006.11239),但是这篇论文对于原理的数学推导相对简略,对于很多初次接触生成模型的读者而言不是很友好,于是笔者用从Arxiv上找到了谷歌出品的一篇关于扩散模型的数学推导式综述,对于扩散模型的来龙去脉和理论溯源非常详尽,笔者读完受益匪浅。所以,本系列关于扩散模型的主要内容解读多数来自该论文。这篇论文的题目是Understanding Diffusion Models: A Unified Perspective,希望各位对扩散模型感兴趣的读者认真研读(http://arxiv.org/abs/2208.11970)。

本文主要对扩散模型必备的前序背景知识,变分下界(Evidence Lower Bound, ELBO)和变分自编码器(Variational Autoencoders, VAE)进行必要的推导和解读。

ELBO

ELBO是变分推断的核心概念,一般用于近似复杂概率分布的对数似然。在生成模型中,对数似然 通常不易直接计算,而变分推断提供了一种曲线救国方式,即通过引入一个容易处理的关于隐变量 的近似分布 来接近实际的后验分布 。

关于隐变量 和观察数据 之间的联合概率分布可以表达为 ,根据极大似然估计,我们需要基于观察数据 来最大化似然函数 。那么一般有两种方式可以求 ,一种是对隐变量求积分:

或者是根据全概率公式直接计算:

但实际情况是两种方案都不可取,要么是复杂分布对隐变量求积分很困难,要么是潜变量的后验分布 无法直接获得。所以此时ELBO就派上用场了。ELBO一般叫做变分下界,也叫证据下界,最大化ELBO可以作为隐变量建模的替代优化目标。ELBO的一般表达式为:

b5b5944dc2d24f9411afa1df57e4e64a.png

那么对数似然 的变分下界可以表达为:

deea2c42d75845b4797d2aeeae328168.png

下面我们来看ELBO的推导过程。

19cd768513689018c36b024669ab7457.png

我们对上述推导进行逐步解读。

根据积分的归一性,对式(5)乘以一个 的归一项 ,并将对数似然纳入到积分里面,这样就得到了式(6)。根据数学期望的定义,可以直接将式(6)改写为在分布 下对 的期望,再结合式(2)可得式(8),然后对式(8)乘以一个 ,并利用对数公式对式(9)展开得到式(10)。进一步地,根据KL散度的定义,式(10)的第二项可以直接改写为 与 的KL散度,得到式(11)。

根据上述推导,我们能够看到,对数似然等于ELBO项加上一个隐变量的近似后验分布 与真实后验分布 之间的KL散度项。根据KL散度大于0的性质,最终ELBO就是对数似然的下界(lower bound),即式(12)。理解这个不等式的关键在于,当我们尝试通过调整 来最大化ELBO时,我们也在提高 的下界,因此间接地提高了 的估计。对数似然始终是一个相对于 的常数,此时最大化ELBO项,就相当于最小化KL散度项。

VAE

变分自编码器(Variational Autoencoders, VAE)是一种深度生成模型,用于学习输入数据的高维分布。VAE通过将数据映射到一个低维潜在空间,并从这个空间中生成数据,以此来理解数据的结构。它结合了自编码器的架构和变分推断的原理,既能进行数据的压缩表示,也能用于数据的生成。

VAE主要由编码器(Encoder)和解码器(Decoder)构成。

  • 编码器。编码器将输入数据映射到潜在空间,即对于每个输入 ,编码器会输出潜在空间参数的两组值:均值 和方差 。这些参数定义了潜在空间中的一个高斯分布,我们可以从中采样得到潜在表示 。

  • 解码器。解码器将潜在空间的点映射回原来的数据空间,即从潜在表示 生成数据 。解码器试图重构输入数据,使得重构的数据 尽可能接近原始数据 。

VAE的编码器与解码器如图2所示。

6c98ea426db51dde32afe3c9c120a68b.png

我们重新回到ELBO的推导,重新对ELBO进行分析:

92e9d061327a2a9f6ded853d4d13d3d2.png

式(15)给出了VAE的ELBO最终表达式,其中第一项为重构项(reconstruction term), 可视为解码器,即在给定潜在表示 的情况下,重构数据和原始数据之间的对数似然。这一项鼓励解码器生成的数据与真实数据尽可能接近。第二项为KL散度项,这一项用于衡量变分后验 (编码器输出的分布)和潜在空间的先验 之间的差异,也叫先验匹配项(prior matching term)。

在实际训练时,VAE的编码器部分输出的分布通常为正态分布,而从该分布中采样操作不是一个可微的操作,这导致无法直接通过该采样节点反向传播梯度。因而VAE采用了重参数(reparameterized tricks)的技巧来实现采样。当训练好一个VAE之后,我们就可以直接从潜在空间 进行采样然后送入到解码器中生成新的数据。

HVAE

层次变分自编码器(Hierarchical Variational Autoencoder, HVAE)将VAE扩展到带有多个层级潜变量空间中。在这种情况,潜变量本身能够被解释为由其他更高层次、更抽象的潜变量生成。扩散模型正因为有这种层级化的潜变量表示,才能够生成与VAE相比更加细致和逼真的图像。

在具有 个层次的HVAE中,每个潜变量都能以前面的所有潜变量为条件,现在我们考虑一种特殊情况,即马尔可夫HVAE(MHVAE)。在MHVAE中,生成过程是一个马尔可夫链,也就是说,层次结构中的每个转换都是马尔可夫过程,每个潜变量 的生成只取决于之前的潜变量 (马尔科夫过程的无记忆性)。所以图2可进一步地修改为图3中的形态。

ec83fadbd5dc43ae975e035155054692.png

MHVAE的联合概率分布和后验分布可以表示为:

进一步地,MHVAE的ELBO可以表示为:

3cd59dc320c6fece268e8484f9386bcf.png

将式(16)和(17)代入到MHVAE的ELBO中,可得:

ba387af17980de12da0dbc3ae262e508.png

总结

本文主要聚焦于扩散模型的必备背景知识,对ELBO、VAE和MHVAE等相关概念和推导做了必要的介绍。ELBO是VAE和扩散模型等基于似然的生成模型的核心概念,最大化ELBO就相当于最小化编码器 与先验 之间的KL散度。关于扩散模型的详细推导,笔者将在下一篇进行介绍。

参考文献

[1] Jonathan Ho, Ajay Jain, and Pieter Abbeel. Denoising diffusion probabilistic models. Advances in Neural Information Processing Systems, 33:6840–6851, 2020. 

[2] Diederik Kingma, Tim Salimans, Ben Poole, and Jonathan Ho. Variational diffusion models. Advances in neural information processing systems, 34:21696–21707, 2021. 

[3] Calvin Luo. Understanding diffusion models: A unified perspective. arXiv preprint arXiv:2208.11970, 2022. 

[4] https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php

  • 27
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值