社区计算机视觉课程文档

变分自编码器

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

变分自编码器

自编码器简介

自编码器是一类主要用于无监督学习和降维的神经网络。自编码器的基本思想是将输入数据编码为低维表示,然后将其解码回原始数据,旨在最小化重建误差。自编码器的基本架构由两个主要组件组成——编码器解码器

  • 编码器: 编码器负责将输入数据转换为压缩的或潜在的表示。它通常由一个或多个神经元层组成,这些层逐渐减小输入的维度。
  • 解码器: 另一方面,解码器接收编码器产生的压缩表示,并尝试重建原始输入数据。与编码器一样,它通常由一个或多个层组成,但顺序相反,逐渐增加维度。

Vanilla Autoencoder Image - Lilian Weng Blog

这个编码器模型由一个编码器网络(表示为 $g_\phi$)和一个解码器网络(表示为 $f_\theta$)组成。低维表示在瓶颈层中学习为 $z$,重建输出表示为 $x' = f_\theta(g_\phi(x))$,目标是 $x \approx x'$。

这种普通自编码器中常用的损失函数是L(θ,ϕ)=1ni=1n(x(i)fθ(gϕ(x(i))))2L(\theta, \phi) = \frac{1}{n}\sum_{i=1}^n (\mathbf{x}^{(i)} - f_\theta(g_\phi(\mathbf{x}^{(i)})))^2

它试图最小化原始图像和重建图像之间的误差。这也被称为重建损失

自编码器对于数据去噪、特征学习和压缩等任务非常有用。然而,传统自编码器缺乏使VAE特别吸引人并适用于生成任务的概率性质。

变分自编码器 (VAE) 概述

变分自编码器 (VAE) 通过引入一种概率方法来编码和解码,解决了传统自编码器的一些限制。VAE的动机在于它们能够通过从潜在空间中的学习分布而不是像普通自编码器那样从潜在向量中采样来生成新的数据样本,这使得它们适用于生成任务。

  • 概率性质: 与确定性自编码器不同,VAE将潜在空间建模为概率分布。这会生成输入编码的概率分布函数,而不仅仅是一个固定的向量。这允许对数据中的不确定性进行更细致的表示。解码器随后从此概率分布中采样。
  • 潜在空间的作用: VAE中的潜在空间是输入数据的连续、结构化表示。由于它是连续的,因此可以轻松进行插值。潜在空间中的每个点都对应一个潜在输出,从而实现不同数据点之间的平滑过渡,并确保靠近潜在空间的点导致相似的生成。

这个概念可以通过下面给出的一个简单示例来阐明。神经网络中的编码器负责获取输入图像的向量形式表示。这个向量封装了各种特征,例如主体微笑、发色、性别、年龄等,表示为类似于[0.4, 0.03, 0.032, ...]的向量。在本示例中,重点缩小到一个单一的潜在表示,特别是“微笑”属性。 自编码器与VAE的比较 - Sciforce Medium 在普通自编码器 (AE) 中,微笑特征被封装为一个固定的、确定性的值。相比之下,变分自编码器 (VAE) 经过精心设计,将此特征封装为概率分布。这种设计选择通过允许从指定的概率分布中采样值来促进生成图像的可变性。

VAE背后的数学原理

理解 VAE 背后的数学概念需要掌握概率建模和变分推断的原理。 变分自编码器 - Lilian Weng 博客

  • 概率建模: 在 VAE 中,潜在空间被建模为概率分布,通常假定为多元高斯分布。此分布由均值和标准差向量参数化,这些向量是概率编码器的输出qϕ(zx) q_\phi(z|x) 。这包括我们学习到的表示 z,它进一步用于从解码器中采样,例如pθ(xz)p_\theta(x|z) .
  • 损失函数: VAE 的损失函数由两部分组成:重建损失(衡量模型重建输入的效果,类似于普通自编码器)和 KL 散度(衡量学习分布与所选先验分布(通常是高斯分布)的接近程度)。这些组件的组合鼓励模型学习一个潜在表示,该表示同时捕获数据分布和指定的先验。
  • 鼓励有意义的潜在表示: 通过将 KL 散度项纳入损失函数,VAE 被鼓励学习一个潜在空间,在该空间中相似的数据点更接近,从而确保有意义且结构化的表示。自编码器的损失函数旨在最小化重建损失和潜在损失。较小的潜在损失意味着对信息的编码有限,否则会增加重建损失。因此,变分自编码器 (VAE) 在潜在损失和重建损失之间找到了微妙的平衡。这种平衡变得至关重要,因为较小的潜在损失往往会导致生成的图像与训练集中存在的图像非常相似,但视觉质量却较差。相反,较小的重建损失会导致训练期间重建的图像良好,但会阻碍生成与训练集显著偏离的新图像。在图像重建和生成中实现理想结果,在这两个方面之间取得和谐的平衡至关重要。

总而言之,VAE 不仅仅是数据重建;它们生成新样本并提供一个概率框架来理解潜在表示。模型架构中包含概率元素使 VAE 与传统自编码器区别开来。与传统自编码器相比,VAE 对数据分布提供了更丰富的理解,使其在生成任务中特别强大。

参考文献

  1. Lilian Weng关于自编码器的精彩博客
  2. 显微镜下的生成模型:比较 VAE、GAN 和基于流的模型
  3. 自编码器、变分自编码器 (VAE) 和 β-VAE
< > 在 GitHub 上更新