VAE介绍

VAE介绍

VAE(变分自编码器)为一个经典的生成式模型,属于编码器-解码器结构。

编码器用于采用复杂部分的特征,之后将复杂分布转换到简单分布的隐空间(如高斯分布)。

解码器采样高斯分布中的数据,生成符合原始分布的图像。

参考视频:

【10分钟】了解香农熵,交叉熵和KL散度

【15分钟】了解变分推理

参考博客

深度理解变分自编码器(VAE) | 从入门到精通

VAE 模型基本原理简单介绍

一.公式推导

1.KL散度

①信息量

  • 信息量用于描述单个概率的信息,概率越小,信息量越大。
  • pAHSKeg.png

②香农熵

  • 香农熵用于描述一个概率分布的平均预期信息量。
  • 概率分布越均匀,产生结果越不确定,熵越大。
  • 概率分布越不均匀,产生结果越确定,熵越小。
  • pAHSc6K.png

③交叉熵

  • 交叉熵用于描述根据估计的概率分布,对真实概率分布的预期信息量的估计。
  • p(x)为真实概率;q(x)为估计概率;估计概率分布与真实概率分布越接近,交叉熵越小
  • 当真实概率分布 P(h)=0.5;p(t)=0.5时
  • pAHS4kd.png

④KL散度

  • 衡量两个概率分布之间的区别
  • $D ( p || q ) \geq 0 $ 恒成立,p=q时等于0
  • 最小化KL散度,需要对KL散度表达式求梯度,等同于对交叉熵求梯度
    • $ \nabla _ { \theta } D ( p | | q _ { \theta } ) = \nabla _ { \theta } H ( p , q _ { \theta } ) - \nabla _ { \theta } H ( p ) = \nabla _ { \theta } H ( p , q _ { \theta } )$

2.ELBO(变分推断-证据下界)

①被观测数据与隐变量

  • :表示被观测数据的概率分布

  • :表示隐变量的后验概率分布

  • $p(z)$:一般为高斯分布(正态分布)
  • $p(x|z)$:条件概率,即似然度

②ELBO

  • 为使后验概率分布近似于隐变量的概率分布 $q_ { \theta }( z | x ) \approx p ( z )$
  • 计算KL散度
  • 转换为ELBO下界,变为求最大的该值

pAHeel4.png

3.模型架构

  • 在 VAE 中,我们希望编码器产生的潜在变量分布$ q _ { \phi } ( z | x ) = N ( z ; \mu , \sigma ^ { 2 } )$接近标准正态分布$ p ( z ) = N ( z ; 0 , 1 ) $。
  • 需要使两者之间的KL散度最小$ D _ { K L } ( q _ { \phi } ( z | x ) | | p ( z ) ) = \int q _ { \phi } ( z | x ) \log \frac { q _ { \phi } ( z | x ) } { p ( z ) } d z$
    • $ = \int q _ { \phi } ( z | x ) \left[ \log q _ { \phi } ( z | x ) - \log p ( z ) \right] d z$

pAHKpCV.png

  • 编码器:输出两组编码,均值编码m与控制噪声干扰程度的方差编码$\sigma$(为噪音$e$分配权重),分配权重之前为方差编码套上一层指数运算$exp$(保证权重为正值),将原编码和经过权重分配后噪声编码进行叠加,就得到了新的latent code $c$
    • ($m$均值):编码器输出的均值向量,表示潜在空间中分布的中心位置。
    • ($\sigma$标准差):编码器输出的标准差向量,表示潜在空间中分布的离散程度。
  • 解码器:进行重构

  • ($m$均值):编码器输出的均值向量,表示潜在空间中分布的中心位置。

  • ($\sigma$标准差):编码器输出的标准差向量,表示潜在空间中分布的离散程度。
-------------本文结束-------------