变分自编码器(VAE)详解与实现(tensorflow2

在VAE中,重点在于潜编码的变分推理。因此,VAE为潜在变量的学习和有效贝叶斯推理提供了合适的框架。

在结构上,VAE与自编码器相似。它也由编码器(也称为识别或推理模型)和解码器(也称为生成模型)组成。 VAE和自编码器都试图在学习潜矢量的同时重建输入数据。但是,与自编码器不同,VAE的潜在空间是连续的,并且解码器本身被用作生成模型。

VAE原理

在生成模型中,使用神经网络来逼近输入的真实分布:

x ∼ P θ ( x ) ( 1 ) x \sim P_θ(x) \qquad(1) x∼Pθ​(x)(1)

θ表示模型参数。

在机器学习中,为了执行特定的推理,希望找到 P θ ( x , z ) P_θ(x,z) Pθ​(x,z),这是输入 x x x和潜变量 z z z之间的联合分布。潜变量是对可从输入中观察到的某些属性进行编码。如在名人面孔中,这些可能是面部表情,发型,头发颜色,性别等。

P θ ( x , z ) P_θ(x,z) Pθ​(x,z)实际上是输入数据及其属性的分布。 P θ ( x ) P_θ(x) Pθ​(x)可以从边缘分布计算:

P θ ( x ) = ∫ P θ ( x , z ) d z ( 2 ) P_θ(x)=\int P_θ(x,z)dz \qquad(2) Pθ​(x)=∫Pθ​(x,z)dz(2)

换句话说,考虑所有可能的属性,最终得到描述输入的分布。在名人面孔中,利用包含面部表情,发型,头发颜色和性别在内的特征,可以恢复描述名人面孔的分布。

问题在于该方程式没有解析形式或有效的估计量。因此,通过神经网络进行优化是不可行的。

使用贝叶斯定理,可以找到方程式(2)的替代表达式:

P θ ( x ) = ∫ P θ ( x ∣ z ) P ( z ) d z ( 3 ) P_θ(x)=\int P_θ(x|z)P(z)dz \qquad(3) Pθ​(x)=∫Pθ​(x∣z)P(z)dz(3)

P ( z ) P(z) P(z)是 z z z的先验分布。它不以任何观察为条件。如果 z z z是离散的并且 P θ ( x ∣ z ) P_θ(x|z) Pθ​(x∣z)是高斯分布,则 P θ ( x ) P_θ(x) Pθ​(x)是高斯分布的混合。如果 z z z是连续的,则高斯分布 P θ ( x ) P_θ(x) Pθ​(x)无法预估。

在实践中,如果尝试在没有合适的损失函数的情况下建立近似 P θ ( x ∣ z ) P_θ(x|z) Pθ​(x∣z)的神经网络,它将忽略 z z z并得出平凡解, P θ ( x ∣ z ) = P θ ( x ) P_θ(x|z)=P_θ(x) Pθ​(x∣z)=Pθ​(x)。因此,公式(3)不能提供 P θ ( x ) P_θ(x) Pθ​(x)的良好估计。公式(2)也可以表示为:

P θ ( x ) = ∫ P θ ( z ∣ x ) P ( x ) d z ( 4 ) P_θ(x)=\int P_θ(z|x)P(x)dz \qquad(4) Pθ​(x)=∫Pθ​(z∣x)P(x)dz(4)

但是, P θ ( z ∣ x ) P_θ(z|x) Pθ​(z∣x)也难以求解。 VAE的目标是找到一个可估计的分布,该分布近似估计 P θ ( z ∣ x ) P_θ(z|x) Pθ​(z∣x),即在给定输入 x x x的情况下对潜在编码 z z z的条件分布的估计。

变分推理

为了使 P θ ( z ∣ x ) P_θ(z|x) Pθ​(z∣x)易于处理,VAE引入了变分推断模型(编码器):

Q ϕ ( z ∣ x ) ≈ P θ ( z ∣ x ) ( 5 ) Q_\phi (z|x) \approx P_θ(z|x) \qquad(5) Qϕ​(z∣x)≈Pθ​(z∣x)(5)

Q ϕ ( z ∣ x ) Q_\phi (z|x) Qϕ​(z∣x)可很好地估计 P θ ( z ∣ x ) P_θ(z|x) Pθ​(z∣x)。它既可以参数化又易于处理。 可以通过深度神经网络优化参数 φ φ φ来近似 Q ϕ ( z ∣ x ) Q_\phi (z|x) Qϕ​(z∣x)。 通常,将 Q ϕ ( z ∣ x ) Q_\phi (z|x) Qϕ​(z∣x)选择为多元高斯分布:

Q ϕ ( z ∣ x ) = N ( z ; μ ( x ) , d i a g ( σ ( x ) 2 ) ) ( 6 ) Q_\phi (z|x)=\mathcal N(z;\mu(x),diag(\sigma(x)^2)) \qquad(6) Qϕ​(z∣x)=N(z;μ(x),diag(σ(x)2))(6)

均值 μ ( x ) \mu(x) μ(x)和标准差 σ ( x ) \sigma (x) σ(x)均由编码器神经网络使用输入数据计算得出。对角矩阵表示 z z z中的元素间是相互独立的。

VAE核心方程

推理模型 Q ϕ ( z ∣ x ) Q_\phi (z|x) Qϕ​(z∣x)从输入 x x x生成潜矢量 z z z。 Q ϕ ( z ∣ x ) Q_\phi (z|x) Qϕ​(z∣x)类似于自编码器模型中的编码器。另一方面, P θ ( x ∣ z ) P_θ(x|z) Pθ​(x∣z)从潜码z重建输入。 P θ ( x ∣ z ) P_θ(x|z) Pθ

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值