Understanding Diffusion Models: A Unified Perspective(一)
- 文章概括
- 引言:生成模型
- 背景:ELBO、VAE 和分层 VAE
- 证据下界(Evidence Lower Bound)
- 变分自编码器 (Variational Autoencoders)
- 分层变分自编码器(Hierarchical Variational Autoencoders)
文章概括
引用:
@article{luo2022understanding,
title={Understanding diffusion models: A unified perspective},
author={Luo, Calvin},
journal={arXiv preprint arXiv:2208.11970},
year={2022}
}
Luo, C., 2022. Understanding diffusion models: A unified perspective. arXiv preprint arXiv:2208.11970.
原文: https://arxiv.org/abs/2208.11970
代码、数据和视频:https://arxiv.org/abs/2208.11970
系列文章:
请在
《
《
《文章
》
》
》 专栏中查找
引言:生成模型
给定来自目标分布的观测样本 x x x,生成模型的目标是学习对其真实数据分布 p ( x ) p(x) p(x)的建模。一旦学习完成,我们可以随意从我们近似的模型中生成新样本。此外,在某些形式下,我们还可以使用学习到的模型来评估观测数据或采样数据的似然性。
这句话描述了生成模型(Generative Model)的核心目标,即通过学习来对观测数据的真实分布进行建模。以下是对这句话的详细解释:
目标分布和观测样本:
- 目标分布 p ( x ) p(x) p(x)是指数据的真实分布,也就是数据在真实世界中是如何产生的。这种分布通常是未知的。
- 观测样本 x x x是从这个目标分布 p ( x ) p(x) p(x)中抽取的样本数据。例如,在图像生成任务中,这些样本可能是大量的真实图片。
生成模型的目标:
- 生成模型的任务是通过学习这些观测样本 x x x,构建一个近似目标分布 p ( x ) p(x) p(x)的模型 q ( x ) q(x) q(x),使得生成的分布尽可能接近真实分布。
- 换句话说,生成模型需要学会捕捉数据的统计规律,并基于这些规律生成新的数据点,这些新数据点看起来就像是从真实分布 p ( x ) p(x) p(x)中采样的一样。
学习真实分布 p ( x ) p(x) p(x):
- 在数学上,这通常通过最小化生成分布和真实分布之间的某种差异来实现,比如:
- 最大似然估计(Maximum Likelihood Estimation, MLE):直接最大化生成分布 q ( x ) q(x) q(x)在真实样本 x x x上的概率。
- KL散度(Kullback-Leibler Divergence):度量两种分布之间的差异。
- 对抗训练:比如在生成对抗网络(GAN)中,通过生成器和判别器之间的博弈学习生成分布。
- 其他方法:比如变分自编码器(VAE)使用证据下界(ELBO)来优化生成分布。
应用:
- 当生成模型成功学到 p ( x ) p(x) p(x)后,它不仅可以用来生成与观测样本类似的新样本,还可以用于缺失数据补全、数据增强、无监督学习等任务。
简而言之,这句话的意思是:生成模型的任务是通过观测到的数据样本 x x x,学习一种方法来逼近数据在真实世界中的分布 p ( x ) p(x) p(x),从而能够理解、生成或模拟类似的数据。
当前文献中有几种众所周知的发展方向,我们将在高层次上简要介绍这些方向。生成对抗网络(Generative Adversarial Networks, GANs)通过对复杂分布的采样过程进行建模,并以对抗的方式学习该分布。另一类生成模型被称为“基于似然的模型”,其目标是学习一个能够对观测数据样本赋予高似然的模型。这包括自回归模型、正常化流(normalizing flows)和变分自编码器(Variational Autoencoders, VAEs)。
一. 生成对抗网络(Generative Adversarial Networks, GANs)
GAN 是一种生成模型,其主要目标是通过对抗方式学习复杂的目标分布 p ( x ) p(x) p(x)。GAN 包含两个核心组成部分:
- 生成器(Generator, G G G):试图生成与真实数据分布相似的样本。
- 判别器(Discriminator, D D D):区分生成样本和真实样本。
工作原理:
- 生成器从简单分布(例如,高斯分布)中采样随机噪声 z z z,并通过神经网络 G ( z ) G(z) G(z) 生成样本。
- 判别器接收生成样本和真实样本,输出一个概率,表示输入样本来自真实分布的可能性。
- 两者之间的目标是博弈式的:
- 生成器的目标是迷惑判别器,使其认为生成样本是真实的;
- 判别器的目标是尽可能准确地区分真实样本和生成样本。
损失函数:
GAN 的目标是最小化以下损失函数: min G max D E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] \min_G \max_D \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))] GminDmaxEx∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))]GAN 的损失函数来源于生成对抗博弈的设计思想,目标是让生成器 G G G 和判别器 D D D 进行一个两人零和博弈,即 G G G 尝试生成尽可能真实的数据以欺骗 D D D,而 D D D 试图区分真实数据和生成数据。以下是这个损失函数推导的详细步骤:
a. GAN 的目标定义 GAN 的核心思想是让生成器 G G G 和判别器 D D D 博弈。判别器 D D D 的输出是一个概率值 D ( x ) ∈ [ 0 , 1 ] D(x) \in [0, 1] D(x)∈[0,1],表示输入 x x x 是真实数据的可能性。
- 对于真实数据 x ∼ p data x \sim p_{\text{data}} x∼pdata:
- 判别器希望输出 D ( x ) = 1 D(x) = 1 D(x)=1(即识别为真实)。
- 对于生成数据 G ( z ) ∼ p g G(z) \sim p_g G(z)∼pg,其中 z ∼ p z ( z ) z \sim p_z(z) z∼pz(z) 是随机噪声:
- 判别器希望输出 D ( G ( z ) ) = 0 D(G(z)) = 0 D(G(z))=0(即识别为假的)。
- 生成器希望生成的 G ( z ) G(z) G(z) 被判别器认为是真实的(即 D ( G ( z ) ) = 1 D(G(z)) = 1 D(G(z))=1)。
因此,GAN 的目标是一个极小极大优化问题: min G max D V ( D , G ) , \min_G \max_D V(D, G), GminDmaxV(D,G), 其中,价值函数 V ( D , G ) V(D, G) V(D,G) 为: V ( D , G ) = E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] . V(D, G) = \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]. V(D,G)=Ex∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))].
b. 目标函数的含义
判别器的目标:
- 判别器希望最大化 V ( D , G ) V(D, G) V(D,G),即: max D E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] . \max_D \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)] + \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]. DmaxEx∼pdata[logD(x)]+Ez∼pz[log(1−D(G(z)))].
- 对真实样本 x x x,最大化 log D ( x ) \log D(x) logD(x),让判别器尽量给出高概率。
- 对生成样本 G ( z ) G(z) G(z),最大化 log ( 1 − D ( G ( z ) ) ) \log(1 - D(G(z))) log(1−D(G(z))),让判别器尽量给出低概率。
生成器的目标:
- 生成器希望最小化 V ( D , G ) V(D, G) V(D,G),即: min G E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] . \min_G \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))]. GminE