深度学习(生成式模型)——VAE(Variational Auto-encoder)

前言

本文的参考文献可在地址中找到

提到生成式模型,不少人第一映像便是GAN,除去GAN之外,VAE(Variational Auto-encoder)也是设计非常漂亮的生成式模型,两者均是超香的无监督模型,目前也有工作将两者进行结合,代表是VAE-GAN模型。本文将总结VAE的工作过程,以及其背后的数学原理。


VAE

在这里插入图片描述
上图详细展示了VAE的工作过程,其为AutoEncoder的结构

训练

训练时,一系列图片 X X X输入到Encoder中,Encoder将图片压缩为一批编码(code),接着统计这批code的均值 μ ( X ) \mu(X) μ(X)以及方差 ∑ ( X ) \sum(X) (X),然后在标准正态分布 N ( 0 , I ) N(0,I) N(0,I)中采样一批样本 ϵ \epsilon ϵ,计算 z = ∑ 1 2 ( X ) ϵ + μ ( X ) z=\sum^{\frac{1}{2}}(X)\epsilon+\mu(X) z=21(X)ϵ+μ(X) z z z表示从正态分布 N ( μ ( X ) , ∑ ( X ) ) N(\mu(X),\sum(X)) N(μ(X),(X))中采样得到的样本,接着将 z z z输入到Decoder中,生成一张图片 f ( z ) f(z) f(z),VAE的损失函数有两部分组成,第一部分计算正态分布 N ( μ ( X ) , ∑ ( X ) ) N(\mu(X),\sum(X)) N(μ(X),(X))与标准正态分布 N ( 0 , I ) N(0,I) N(0,I)之间的KL散度,接着计算生成图片 f ( z ) f(z) f(z)与真实图片 X X X之间的L2距离,VAE损失函数的数学表达式如下
l o s s = K L ( N ( μ ( X ) , ∑ ( X ) ) ∣ ∣ N ( 0 , I ) ) + ∣ ∣ X − f ( z ) ∣ ∣ 2 loss=KL(N(\mu(X),\sum(X))||N(0,I))+||X-f(z)||^2 loss=KL(N(μ(X),(X))N(0,I))+Xf(z)2

测试

测试时,从标准正态分布 N ( 0 , I ) N(0,I) N(0,I)中采样一批样本 z z z,利用decoder将 z z z生成为一批图片

VAE背后的数学原理

本节将从数学角度,力求以一种较为严谨的方式推导出VAE的损失函数。

给定一批图像样本 X X X { x 1 , x 2 , x 3 , . . . . , x n } \{x_1,x_2,x_3,....,x_n\} {x1,x2,x3,....,xn}),我们可以假设这批样本服从某种概率分布 p ( X ) p(X) p(X),假设我们知道 p ( X ) p(X) p(X),那么就可以依据 P ( X ) P(X) P(X)进行采样,生成图片。假设我们现在有一个模型 M M M,其参数为 θ \theta θ,我们想利用 M M M来趋近 p ( X ) p(X) p(X),我们将模型 M M M表示的概率分布记为 p θ ( X ) p_{\theta}(X) pθ(X),依据对数极大似然估计,我们通过最大化下式来估计参数 θ \theta θ的值

∑ i = 1 n log ⁡ p θ ( x i ) \sum_{i=1}^n\log p_{\theta}(x_i) i=1nlogpθ(xi)

log ⁡ p θ ( x i ) \log p_{\theta}(x_i) logpθ(xi)往往难以计算,VAE对其进行了变化

log ⁡ p θ ( x i ) = K L ( q ϕ ( z ∣ x i ) ∣ ∣ p θ ( z ∣ x i ) ) + E q ϕ z ∣ x i ) [ − log ⁡ q ϕ ( z ∣ x i ) + log ⁡ p θ ( x , z ) ] (式1.0) \log p_{\theta}(x_i)=KL(q_{\phi}(z|x_i)||p_{\theta}(z|x_i))\\+E_{q_{\phi}z|x_i)}[-\log q_{\phi}(z|x_i)+\log p_{\theta}(x,z)]\tag{式1.0} logpθ(xi)=KL(qϕ(zxi)pθ(zxi))+Eqϕzxi)[logqϕ(zxi)+logpθ(x,z)](1.0)

我们倒退式1.0,具体推导如下:
∫ q ϕ ( z ∣ x i ) log ⁡ q ϕ ( z ∣ x i ) p θ ( z ∣ x i ) d z + ∫ q ϕ ( z ∣ x i ) ( log ⁡ p θ ( x i , z ) − log ⁡ q ϕ ( z ∣ x i ) ) d z = ∫ q ϕ ( z ∣ x i ) log ⁡ p θ ( x i , z ) p θ ( z ∣ x i ) d z = ∫ q ϕ ( z ∣ x i ) log ⁡ p θ ( x i ) d z = log ⁡ p θ ( x i ) \begin{aligned} &\int q_{\phi}(z|x_i)\log \frac{q_{\phi}(z|x_i)}{p_{\theta}(z|x_i)}dz+\int q_{\phi}(z|x_i)(\log p_{\theta}(x_i,z)-\log q_{\phi}(z|x_i))dz\\ =&\int q_{\phi}(z|x_i)\log \frac{p_{\theta}(x_i,z)}{p_{\theta}(z|x_i)}dz\\ =&\int q_{\phi}(z|x_i)\log p_{\theta}(x_i)dz\\ =&\log p_{\theta}(x_i) \end{aligned} ===qϕ(zxi)logpθ(zxi)qϕ(zxi)dz+qϕ(zxi)(logpθ(xi,z)logqϕ(zxi))dzqϕ(zxi)logpθ(zxi)pθ(xi,z)dzqϕ(zxi)logpθ(xi)dzlogpθ(xi)

由于KL散度大于等于0,依据式1.0,我们可得
log ⁡ p θ ( x i ) ≥ E q ϕ z ∣ x i ) [ − log ⁡ q ϕ ( z ∣ x i ) + log ⁡ p θ ( x , z ) ] (式1.1) \log p_{\theta}(x_i)\geq E_{q_{\phi}z|x_i)}[-\log q_{\phi}(z|x_i)+\log p_{\theta}(x,z)] \tag{式1.1} logpθ(xi)Eqϕzxi)[logqϕ(zxi)+logpθ(x,z)](1.1)

E q ϕ z ∣ x i ) [ − log ⁡ q ϕ ( z ∣ x i ) + log ⁡ p θ ( x , z ) ] E_{q_{\phi}z|x_i)}[-\log q_{\phi}(z|x_i)+\log p_{\theta}(x,z)] Eqϕzxi)[logqϕ(zxi)+logpθ(x,z)] log ⁡ p θ ( x i ) \log p_{\theta}(x_i) logpθ(xi)的下界,又被称为变分下界(variational lower bound),VAE通过最大化 log ⁡ p θ ( x i ) \log p_{\theta}(x_i) logpθ(xi)的下界,从而让 log ⁡ p θ ( x i ) \log p_{\theta}(x_i) logpθ(xi)的值尽可能大,因此VAE相当于一个子优化,并不能保证学习到的参数 θ \theta θ能使 log ⁡ p θ ( x i ) \log p_{\theta}(x_i) logpθ(xi)的值最大。我们对 E q ϕ z ∣ x i ) [ − log ⁡ q ϕ ( z ∣ x i ) + log ⁡ p θ ( x , z ) ] E_{q_{\phi}z|x_i)}[-\log q_{\phi}(z|x_i)+\log p_{\theta}(x,z)] Eqϕzxi)[logqϕ(zxi)+logpθ(x,z)]进行如下化简

E q ϕ z ∣ x i ) [ − log ⁡ q ϕ ( z ∣ x i ) + log ⁡ p θ ( x , z ) ] = ∫ q ϕ ( z ∣ x i ) ( − log ⁡ q ϕ ( z ∣ x i ) + log ⁡ p θ ( x , z ) ) d z = ∫ q ϕ ( z ∣ x i ) ( log ⁡ p θ ( x i ∣ z ) + log ⁡ p θ ( z ) − log ⁡ q ϕ ( z ∣ x i ) ) d z = − ∫ q ϕ ( z ∣ x i ) ( log ⁡ q ϕ ( z ∣ x i ) − log ⁡ p θ ( z ) ) d z + ∫ q ϕ ( z ∣ x i ) log ⁡ p θ ( x i ∣ z ) d z = − K L ( q ϕ ( z ∣ x i ) ∣ ∣ p θ ( z ) ) + E q ϕ ( z ∣ x i ) [ log ⁡ p θ ( x i ∣ z ) ] (式1.2) \begin{aligned} &E_{q_{\phi}z|x_i)}[-\log q_{\phi}(z|x_i)+\log p_{\theta}(x,z)]\\ =& \int q_{\phi}(z|x_i) (-\log q_{\phi}(z|x_i)+\log p_{\theta}(x,z))dz\\ =& \int q_{\phi}(z|x_i)(\log p_{\theta}(x_i|z)+\log p_{\theta}(z)-\log q_{\phi}(z|x_i))dz\\ =& -\int q_{\phi}(z|x_i)(\log q_{\phi}(z|x_i)-\log p_{\theta}(z))dz+\int q_{\phi}(z|x_i)\log p_{\theta}(x_i|z)dz\\ =&-KL(q_{\phi}(z|x_i)||p_{\theta}(z))+E_{q_{\phi}(z|x_i)}[\log p_{\theta}(x_i|z)]\tag{式1.2} \end{aligned} ====Eqϕzxi)[logqϕ(zxi)+logpθ(x,z)]qϕ(zxi)(logqϕ(zxi)+logpθ(x,z))dzqϕ(zxi)(logpθ(xiz)+logpθ(z)logqϕ(zxi))dzqϕ(zxi)(logqϕ(zxi)logpθ(z))dz+qϕ(zxi)logpθ(xiz)dzKL(qϕ(zxi)pθ(z))+Eqϕ(zxi)[logpθ(xiz)](1.2)

依据式1.2,我们可得VAE的优化目标为
max ⁡ ∑ i = 1 n ( E q ϕ ( z ∣ x i ) [ log ⁡ p θ ( x i ∣ z ) ] − K L ( q ϕ ( z ∣ x i ) ∣ ∣ p θ ( z ) ) ) ≈ max ⁡ ∑ i = 1 n ( E q ϕ ( z ∣ x ) [ log ⁡ p θ ( x i ∣ z ) ] ) − K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ) ) (式1.3) \begin{aligned} \max\sum_{i=1}^n(E_{q_{\phi}(z|x_i)}[\log p_{\theta}(x_i|z)]-KL(q_{\phi}(z|x_i)||p_{\theta}(z)))\\\approx \max\sum_{i=1}^n(E_{q_{\phi}(z|x)}[\log p_{\theta}(x_i|z)])-KL(q_{\phi}(z|x)||p_{\theta}(z))\tag{式1.3} \end{aligned} maxi=1n(Eqϕ(zxi)[logpθ(xiz)]KL(qϕ(zxi)pθ(z)))maxi=1n(Eqϕ(zx)[logpθ(xiz)])KL(qϕ(zx)pθ(z))(1.3)

作者假设 p θ ( z ) p_{\theta}(z) pθ(z)是一个不受参数 θ \theta θ限制的已知分布,并且依据蒙特卡洛模拟,我们可以将式1.3进一步变化为
max ⁡ ( ∑ i = 1 n 1 m ∑ j = 1 m log ⁡ p θ ( x i ∣ z j ) ) − min ⁡ ( K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ) ) ) (式1.4) \max(\sum_{i=1}^n\frac{1}{m}\sum_{j=1}^m\log p_{\theta}(x_i|z_j))-\min(KL(q_{\phi}(z|x)||p_{\theta}(z)))\tag{式1.4} max(i=1nm1j=1mlogpθ(xizj))min(KL(qϕ(zx)pθ(z)))(1.4)
z j z_j zj服从 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)分布,作者实验过,m的取值比较随意,可以取1,也可以取一些较大的值。我们假设 log ⁡ p ( x ∣ z ) \log p(x|z) logp(xz)服从正态分布(具体可查看最大似然估计与最小二乘之间的关系),则式1.4可变化为
min ⁡ ( ∑ i = 1 n 1 m ∑ j = 1 m ( x i − f θ ( z j ) ) 2 − K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ) ) \min (\sum_{i=1}^n\frac{1}{m}\sum_{j=1}^m(x_i-f_{\theta}(z_j))^2-KL(q_{\phi}(z|x)||p_{\theta}(z)) min(i=1nm1j=1m(xifθ(zj))2KL(qϕ(zx)pθ(z))

f θ ( z j ) f_{\theta}(z_j) fθ(zj)表示给定一个 z j z_j zj,将其转变为一张图片,这便是Decoder, θ \theta θ表示Decoder的参数,由于 z j z_j zj服从 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)分布,我们需要一个模型将 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)刻画出来,作者假设 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)为一个均值为 μ \mu μ,方差为 ∑ \sum 的高斯分布,其自变量为 z z z,此时我们可以从标准正态分布中采样一个样本 z j ′ z_j' zj,接着通过 z j ′ ∑ 1 2 + μ z_j'\sum^{\frac{1}{2}}+\mu zj21+μ得到 z j z_j zj。我们可以利用样本的均值和方差来估计 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx),即需要一批已知 x x x情况下,有 z z z取值的样本,这就是Encoder,Encoder可以在已知图片 x x x的情况下,将其压缩为一个编码 z z z。至此,AutoEncoder的结构便出来了。

现在还有一个问题,如何估计 K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ) ) KL(q_{\phi}(z|x)||p_{\theta}(z)) KL(qϕ(zx)pθ(z))?其VAE对此有较强的假设,假设 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)为均值为 μ \mu μ,方差为 ∑ \sum 的高斯分布, p θ ( z ) p_{\theta}(z) pθ(z)为标准正态分布,我们利用Encoder可以将一批图片 x i x_i xi压缩为一批编码 z i z_i zi,计算这批编码的均值以及方差,作为 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)的均值和方差,假设 z i z_i zi J J J个维度,由此可将 K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ) ) KL(q_{\phi}(z|x)||p_{\theta}(z)) KL(qϕ(zx)pθ(z))化简为
在这里插入图片描述

上述式子的推导有点超过我目前的数学知识,在此不做总结。

参考文献

1.Auto-Encoding Variational Bayes(原文)
2.Tutorial on Variational Autoencoders

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习生成模型VAEVariational Autoencoder)是一种基于神经网络的生成模型VAE在产生新数据的时候是基于已有数据来做的,通过学习数据的潜在空间表示,然后从该空间中采样生成新的数据样本。VAE模型结合了自编码器和变分推断的思想,通过最大化样本的下界来优化模型参数,使得生成的样本能够更好地拟合原始数据分布。 与传统的自编码器相比,VAE在编码器部分引入了一个均值向量和方差向量,这样可以使得编码后的潜在表示服从一个高斯分布。这种设计使得VAE不仅能够学习到数据的低维表示,还能够通过在潜在空间中进行采样来生成新的样本。VAE模型的损失函数由重构误差项和正则化项组成,通过最小化该损失函数可以使得生成的样本能够尽可能地接近原始数据分布。 尽管VAE在生成新数据方面的效果相对于其他模型可能有些模糊,但它在学习数据分布和生成新数据方面仍然具有一定的优势。通过使用变分推断和重参数化技巧,VAE能够生成具有多样性的样本,并且能够在潜在空间中进行插值和操作,从而得到更多样化的结果。 总结来说,VAE是一种深度学习生成模型,通过学习数据的潜在空间表示,可以生成新的样本。它结合了自编码器和变分推断的思想,并通过最大化样本的下界来优化模型参数。尽管生成的样本可能有些模糊,但VAE在学习数据分布和生成多样化样本方面具有一定的优势。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值