变分自编码器 (VAE) 为生成建模和表征学习提供了一个有原则的概率框架,而生成对抗网络 (GAN) 则擅长生成清晰、高保真的样本。然而,两者都有其局限性。与GAN相比,VAE通常生成更模糊的样本,而GAN则以训练困难著称,并可能出现模式崩溃问题。这自然而然地引出了结合这些方法的想法,以发挥它们各自的优势,从而产生混合模型。VAE-GAN和对抗式自编码器 (AAE) 是这类结合的两个突出实例。这些模型旨在提升样本质量、改进潜在空间属性,或提供其他训练方法。
VAE-GAN:将VAE结构与GAN的真实感相结合
VAE-GAN架构力求通过纳入GAN风格的判别器来提升VAE的样本质量。其核心思想是,用判别器网络提供的学到的特征级损失,替换或增强VAE的像素级重建损失(如均方误差或二元交叉熵)。
动机与架构
标准VAE优化证据下界 (ELBO),它包含一个重建项和一个KL散度项。重建项,通常是像素空间中的L1或L2范数,并非总能很好地与感知相似性对齐 (alignment),从而导致VAE生成样本特有的模糊性。另一方面,GAN训练一个生成器,使其生成的样本对判别器而言与真实数据无法区分,这通常会带来更清晰的结果。
VAE-GAN本质上将VAE的解码器 p(x∣z) 视为GAN设置中的生成器。随后引入判别器网络 D(x),并训练它以区分训练集中的真实数据样本 x 和由VAE解码器生成的样本 x′=p(x∣z)。
整体架构包括:
- 一个编码器 q(z∣x):将输入数据 x 映射到潜在分布(通常是均值为 μ(x)、方差为 σ2(x) 的高斯分布)。
- 一个解码器(生成器) p(x∣z):将潜在样本 z 映射回数据空间,生成 x′。
- 一个判别器 D(x):一个二元分类器,输出样本 x 是真实样本而非解码器生成的样本的概率。
VAE-GAN架构图。VAE的编码器和解码器构成基础,解码器也充当GAN组件的生成器。判别器旨在区分真实数据和解码器生成的数据。
目标函数与训练
VAE-GAN的训练涉及优化一个复合目标。VAE组件(编码器和解码器)被训练为不仅要重建输入(如标准VAE中,通常保留判别器中间层上的传统重建损失项,如L1或L2),还要欺骗判别器。判别器则被训练以正确识别真实样本和生成样本。
VAE(编码器和解码器)的目标通常包括:
- KL散度项:DKL(q(z∣x)∣∣p(z)),与标准VAE中相同,用于规范潜在空间。
- 一个重建损失项:这可以是 x 和 x′ 上的传统像素级损失,或者在VAE-GAN中更常见的是特征级损失。这是通过比较判别器 D 内部 x 和 x′ 的中间特征表示来实现的。例如,如果 Dl(x) 是判别器对于输入 x 的第 l 层的激活,重建损失可能为 ∑l∣∣Dl(x)−Dl(x′)∣∣2。
- 一个解码器(生成器)的对抗损失:这鼓励解码器生成判别器 D 分类为真实样本的 x′,例如,最大化 logD(x′)。
判别器 D 的目标是标准GAN判别器损失:
LD=−Ex∼pdata(x)[logD(x)]−Ez∼q(z∣x)[log(1−D(p(x∣z)))]
编码器 q(z∣x) 和解码器 p(x∣z)(作为生成器 G)被训练以最小化ELBO的各自部分,并最大化与欺骗 D 相关的项。训练通常通过交替更新VAE组件和判别器来进行。
优点与权衡
优点:
- 提升样本质量: VAE-GAN通常生成比标准VAE更清晰、更真实的样本,这得益于对抗损失。
- 有意义的潜在空间: 它们保留了VAE的概率编码器,这与某些GAN变体相比,可以带来更结构化、更有意义的潜在空间。
- 训练稳定: 通常,VAE结构对GAN训练起到稳定作用。
权衡:
- 增加的复杂性: 模型架构和训练过程比独立的VAE或GAN更复杂。
- 平衡损失项: 找到VAE损失组件和GAN损失组件之间的正确平衡可能具有挑战性,需要仔细调整超参数 (parameter) (hyperparameter)。
- 模式覆盖: 尽管通常优于某些GAN,但确保完全模式覆盖仍然是一个问题。
VAE-GAN代表了一种成功的结合,发挥了VAE学习有用潜在表征的能力以及GAN生成高保真样本的能力。
对抗式自编码器 (AAE):对抗性地塑造潜在空间
对抗式自编码器 (AAE) 采用了一种不同的方法来将自编码器与对抗训练相结合。AAEs没有将重心放在数据空间中使用判别器提升生成样本的质量上,而是使用对抗损失来塑造编码器产生的潜在编码 z 的分布。其目标是强制潜在编码的聚合后验分布 q(z) 与预定义的先验分布 p(z) 匹配,例如高斯分布或高斯混合分布。
动机与架构
在标准VAE中,KL散度项 DKL(q(z∣x)∣∣p(z)) 鼓励每个数据点 x 的近似后验 q(z∣x) 接近先验 p(z)。AAE实现了类似的规范化效果,但对聚合后验 q(z)=∫q(z∣x)pdata(x)dx 使用了对抗训练过程。如果KL散度难以处理,或者希望在潜在空间上施加更复杂的先验分布,这会特别有用。
AAE架构由以下部分组成:
- 一个编码器 Q(z∣x):这是一个确定性或随机编码器,将输入数据 x 映射到潜在编码 z。
- 一个解码器 P(x∣z):从潜在编码 z 重建输入数据 x。编码器和解码器共同构成一个标准自编码器。
- 一个潜在判别器 Dlatent(z):训练它以区分从所需先验分布 p(z) 中抽取的样本 zprior,以及编码器从真实数据产生的潜在编码 zencoded=Q(z∣x)。
对抗式自编码器 (AAE) 架构图。编码器将输入数据映射到潜在编码,解码器重建数据。一个独立的潜在判别器试图区分编码样本和从所需先验分布中抽取的样本。
目标函数与训练
AAE的训练涉及两个主要阶段,通常交替进行:
-
重建阶段:
编码器 Q(z∣x) 和解码器 P(x∣z) 被训练以最小化重建误差,类似于标准自编码器。
Lrecon=Ex∼pdata(x)[∣∣x−P(Q(z∣x))∣∣2]
(或另一个合适的重建损失,如二元交叉熵)。
-
规范化阶段(潜在空间的对抗训练):
- 潜在判别器 Dlatent(z) 被训练以区分来自真实先验 p(z) 的样本(标记 (token)为“真实”)和编码器从输入数据生成的潜在编码 zencoded=Q(z∣x)(标记为“伪造”)。它的目标是最大化:
LDlatent=Ezp∼p(z)[logDlatent(zp)]+Ex∼pdata(x)[log(1−Dlatent(Q(z∣x)))]
- 编码器 Q(z∣x) 被训练以“欺骗”潜在判别器,即生成 Dlatent(z) 分类为来自先验 p(z) 的潜在编码 Q(z∣x)。编码器在此阶段的目标是最大化:
Ex∼pdata(x)[logDlatent(Q(z∣x))]
通过训练编码器欺骗 Dlatent,编码表征的聚合后验分布 q(z) 被驱动以匹配目标先验分布 p(z)。
优点与应用场景
优点:
- 灵活的先验匹配: AAE可以将在聚合后验 q(z) 与复杂、任意的先验分布 p(z) 匹配,而不需要KL散度的解析形式。这使得可以施加诸如高斯混合、流形上的均匀分布或其他难以用直接KL项强制执行的结构化先验。
- 良好的生成样本: 一旦 q(z) 与 p(z) 匹配,可以通过从 p(z) 中抽取 z 并将其通过解码器 P(x∣z) 来生成新数据。
- 解耦与可解释性: 通过仔细选择 p(z)(例如,因子分解的高斯分布),AAE可以促进潜在空间中的解耦表征。
- 半监督学习 (supervised learning) (semi-supervised learning): AAE可以通过将标签信息纳入潜在空间的对抗训练来扩展用于半监督分类,鼓励 q(z) 中的簇与不同类别对应。
应用场景:
- 需要特定潜在空间结构的生成建模。
- 需要解耦表征的应用。
- 半监督学习任务。
- 数据可视化和流形学习。
AAE为VAE规范潜在空间提供了一个有力的替代方案,凭借对抗训练的优势,在先验分布 p(z) 的选择上提供了更大的灵活性。
VAE-GAN 与 AAE:主要区别
尽管VAE-GAN和AAE都将自编码结构与对抗训练相结合,但它们的主要目标和机制有所不同:
- 对抗目标:
- VAE-GAN: 判别器在数据空间中运行,旨在使VAE的解码样本 p(x∣z) 更具真实感。
- AAE: 判别器在潜在空间中运行,旨在使编码器的聚合输出分布 q(z) 与预定义的先验 p(z) 匹配。
- 主要目的:
- VAE-GAN: 提升VAE解码器生成样本的感知质量(例如,清晰度)。
- AAE: 通过将其分布与目标先验匹配来规范潜在空间,通常是为了更好的表征学习或更可控的生成。
- VAE组件:
- VAE-GAN: 通常保留VAE的随机编码器和KL散度项(或其变体)作为其目标的一部分,此外还有生成样本上的对抗损失。
- AAE: 使用标准自编码器(编码器可以是确定性或随机的)进行重建,并用潜在编码上的对抗损失替换显式KL散度。
选择VAE-GAN还是AAE取决于具体的应用。如果主要目的是从类似VAE的架构生成高保真样本,VAE-GAN是一个有力的候选方案。如果重心在于在潜在空间中施加特定结构或复杂先验,而无需直接计算KL,AAE则提供了一个有吸引力的替代方案。
VAE-GAN和AAE都阐明了结合不同生成模型系列思想的多功能性。通过理解它们各自的架构和训练目标,您可以选择或调整这些混合方法以应对表征学习和生成建模中的特定挑战。这些模型的实践应用,如动手练习中所展示的,将进一步加深您对它们潜力和复杂性的理解。