变分自动编码器(VAE variational autoencoder)


禁止转载

自动编码器 AutoEncoder

  • 组成 Components:

    • 编码器 Encoder: X → Z X \rightarrow Z XZ
    • 解码器 Decoder: Z → X ^ Z \rightarrow \hat X ZX^
    • 其中, X X X为训练集输入; Z Z Z为隐变量 latent variable
  • 应用场景 Applications:

    • 自动编码器:输入和输出尽可能相似
      在这里插入图片描述

    • 去噪模型 Denoising: 去除图像噪声(去水印也可)
      在这里插入图片描述

    • 压缩模型 Compression:将图像使用低维隐变量表示,结果传输后在接收端使用解压缩恢复图像
      在这里插入图片描述

    • 异常检测 Anomaly detector:根据损失大小检测图像是否和训练集同分布
      在这里插入图片描述

    • 生成器 Generator:将随机向量映射成有意义的数据
      在这里插入图片描述

  • 注意 Note: 编码器的降维过程如果使用无非线性激活函数的单层CNN,那么它将等效于PCA

变分推断 Variational Inference

  1. 引入 Introduction
    • 动机 Motivation: 作为一个生成器来说,随机采样生成的向量 Z Z Z很难通过解码器Decoder对应到有意义的数据,导致生成器模型失败。
    • 解决方案 Solution:假定 Z Z Z服从某分布,通过前半部分预测分布参数,随后从分布中采样得到可能对应有意义数据的 Z Z Z
    • 一些事实 Some Facts: d d d维的任意分布可以被一系列 d d d维的正态分布和一个将它们映射的一个足够复杂的函数来表示。
      在这里插入图片描述
  2. 方法和讨论 Methods&Discussion:
    • 数学说明:对于编码器这个过程,条件概率公式可由贝叶斯公式表达,其中 P ( X ) P(X) P(X) 一般是高维数据,计算复杂intractable。
      在这里插入图片描述

    • 对于上述问题,有两种解决方案:Monte Carlo方法(基于采样的方法?),变分推断方法。变分推断使用另一个分布来近似不可求解的分布,这一过程是通过最小化两个分布之间的KL散度实现的。

    • KL散度 divergence:
      在这里插入图片描述

      • K L ≥ 0 KL \geq 0 KL0
      • KL散度不是对称的, q q q p p p的KL散度和 p p p q q q的KL散度不同
    • 综上可得下式,对于给定的 X X X,左式是固定的,对于右式来说,最小化第一项等同于最大化第二项,并且由于第二项+第一项(KL散度),所以左式恨大于等于第二项,第二项故又称为变分下限variational lower bound,它也是我们需要优化的项。
      在这里插入图片描述

    • 关于上式为什么选择 K L ( q ∣ ∣ p ) KL(q||p) KL(q∣∣p):假定 p p p是一个多峰的真实分布, q q q是期待用来近似 p p p的可求解分布,则从下图结合KL散度的计算公式可得到解答。
      在这里插入图片描述

    • 对第二项进行变换得到两项,第一项实际上维感知损失,常见的有交叉熵误差、均方误差等,第二项表示 q q q p p p的散度。
      -

    • 模型的结构如下所示,编码器估计隐变量分布的参数,隐变量的分布一般假定为正态分布,采样得到的隐变量输入给解码器得到输出,但是此时存在一些问题:基于梯度下降的算法无法更新网络参数,因为采样操作在模型中引入了不确定节点,导致无法求解梯度。可以通过重参数的化的方法进行解决,即 Z = Σ ∗ θ + μ Z=\Sigma * \theta + \mu Z=Σθ+μ,其中 θ \theta θ是服从标准正太分布,通过采样得到,这样就把随机节点移除了。

在这里插入图片描述
在这里插入图片描述

变分自动编码器 Variational AutoEncoder

  • 未重参数化的VAE结构(左)和重参数化之后的VAE结构(右)
    在这里插入图片描述
  • 总结
    在这里插入图片描述

条件变分自动编码器 Conditional Variational AutoEncoder

  • 在编码器和解码器都引入输入
    在这里插入图片描述

实验 Experiments

  • 实验结果
    在这里插入图片描述

声明

  • 第一节中的图片来源于李宏毅老师的课件
  • Tutorial on Variational Autoencoders
  • https://www.youtube.com/watch?v=uaaqyVS9-rM

猜你喜欢

转载自blog.csdn.net/BubbleCodes/article/details/127385014