问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

变分自编码器 VAE 超详解:从基本概念到模型实现

创作时间:
作者:
@小白创作中心

变分自编码器 VAE 超详解:从基本概念到模型实现

引用
CSDN
1.
https://blog.csdn.net/m0_56942491/article/details/136265500

变分自编码器(VAE)是一种强大的生成模型,它结合了概率图形模型和深度学习的优势。本文将从基本概念出发,逐步深入讲解VAE的原理、模型架构以及实现细节,帮助读者全面理解这一重要技术。

基本概念介绍

在深入探讨VAE之前,我们需要回顾一些基本概念:

  • 先验/后验概率,证据,似然估计,MAP/ML/贝叶斯估计:这些概念是理解VAE的基础,建议参考相关资料进行学习。
  • KL散度:KL散度是衡量两个概率分布差异的重要工具,对于理解VAE中的变分下界至关重要。

从 AutoEncoder 到 VAE

自编码器

自编码器是一种无监督学习的神经网络结构,其主要目标是学习输入数据的紧凑表示(编码),然后通过解码器将该表示还原为输入数据。自编码器由两个主要部分组成:

  • 编码器(Encoder):将输入数据映射到低维潜在空间,捕捉输入数据的重要特征。
  • 解码器(Decoder):将编码的潜在表示映射回原始输入空间,重构原始数据。

变分自编码器做出的改变

VAE与传统自编码器的主要区别在于对潜在表示的处理方式。在自编码器中,潜在表示是一个固定值,而在VAE中,潜在表示是一个概率分布。具体来说:

  • 在VAE中,编码器不再只学习提取输入数据的编码信息,而是去学习获取输入数据的概率分布。
  • 原始论文中,我们设定这一概率分布为正态分布,模型结构如下图所示:

  • 中间量我们不再叫潜在变量,而是称为潜在空间(也称潜在分布,隐变量等),并使用 Z 来表示,用来凸显其是一个变化的量。
  • 解码器要做的工作就是如何从这样的概率分布中采样还原成最终的输出。

VAE 原理思路入门

我们想做什么

生成式模型的核心目标是根据一批数据样本 {X1, …, Xn},得到 X 的分布 p(X)。理想情况下,我们希望直接从 p(X) 采样,生成所有可能的 X。然而,这个目标很难实现,因此我们采用一个迂回策略:从一个简单的分布(如高斯分布)映射到 p(X)。

变分下界引入与推导

为了简化问题,我们引入变分下界(Evidence Lower BOund,ELBO)的概念。具体推导过程如下:

  • 首先考虑原始的 p(X) 式子:

    $$p(X) = \int p(X|z)p(z)dz$$

  • 由于直接计算这个积分非常困难,我们引入近似后验分布 q(z|x):

    $$p(X) = \int q(z|x)\frac{p(X|z)p(z)}{q(z|x)}dz$$

  • 使用KL散度公式:

    $$KL(q(z|x)||p(z|x)) = \int q(z|x)log\frac{q(z|x)}{p(z|x)}dz$$

  • 结合贝叶斯公式:

    $$p(z|x) = \frac{p(X|z)p(z)}{p(X)}$$

  • 将上述公式代入KL散度公式:

    $$KL(q(z|x)||p(z|x)) = \int q(z|x)log\frac{q(z|x)p(X)}{p(X|z)p(z)}dz$$

  • 移项并整理:

    $$logp(X) - KL(q(z|x)||p(z|x)) = \int q(z|x)log\frac{p(X|z)p(z)}{q(z|x)}dz$$

  • 最终得到变分下界:

    $$logp(X) \geq \int q(z|x)log\frac{p(X|z)p(z)}{q(z|x)}dz$$

变分下界的理解

变分下界主要由两部分组成:

  1. 第一项:z 在 q(z|x) 的分布下,x given z 的概率分布的期望值。这对应于解码器从潜在空间 Z 中重组 x 的过程。

  2. 第二项:z given x 的近似后验分布与 z 的真实分布(先验分布)的 KL 散度。这确保潜在空间 z 的近似后验分布尽可能接近其先验分布,避免过拟合。

VAE 模型架构介绍

根据潜在空间确定模型架构

在VAE中,潜在空间 z 被假设为可以从简单的分布中抽取,即标准正态分布 N(0, I)。具体实现如下:

  • 使用两个神经网络分别输出平均值和标准差:

    $$\mu = f_1(x)$$
    $$\sigma^2 = exp(f_2(x))$$

  • 近似后验分布 q 可以表示为:

    $$q(z|x) = N(\mu, \sigma^2I)$$

对模型架构进行调整

为了克服直接比较生成样本和真实样本的困难,VAE采用了一种精妙的迂回方式:为每个样本单独构造潜在空间。具体来说:

  • 损失函数可以进一步完善为:

    $$L = -\sum_{i=1}^{n} [logp(X_i|z_i) - KL(q(z_i|X_i)||p(z_i))]$$

  • 其中,θ 和 φ 分别是 Decoder 和 Encoder 模型参数。

重参数技巧

为了克服采样操作不可导的问题,VAE使用了重参数技巧:

  • 通过正态分布标准化,可以将采样操作转换为:

    $$z = \mu + \epsilon\sigma$$

    其中,$\epsilon \sim N(0, I)$。

VAE 模型总结

VAE的核心思想是将潜在表示从确定值变为概率分布,通过引入变分下界和重参数技巧,实现了生成模型的训练。具体来说:

  • Encoder生成的是专属于当前样本的平均值和方差,而不是确定的潜在表示。
  • 从潜在空间采样后再进行重构的过程相当于“给潜在表示添加噪声”,起到了正则化的作用。
  • 生成方差的神经网络可以理解为对噪声大小的调节器,方差越大,采样的结果就会越分散,重构难度增加;方差越小,采样的结果就越集中,重构难度降低。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号