变分自编码器原理详解

变分自编码器

基本思想:VAE在2013年提出,假设数据 x i x_i xi是由一个随机过程产生的,该随机过程分为两步:

  • 由先验分布 P θ ∗ ( z ) P_{\theta^*}(z) Pθ(z)产生隐变量 z i z_i zi
  • 再由条件分布 P θ ∗ ( x ∣ z i ) P_{\theta^*}(x|z_i) Pθ(xzi)产生数据 x i x_i xi

p θ ( x i ) p_{\theta}(x_i) pθ(xi)可以表示为:
p θ ( x i ) = ∫ p θ ( x i ∣ z ) p θ ( z ) d z p_{\theta}(x_i)=\int p_{\theta}(x_i|z)p_\theta(z)dz pθ(xi)=pθ(xiz)pθ(z)dz
VAE的核心就是找到一个容易生成数据 x x x z z z的分布,即后验分布 q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx),VAE需要用神经网络拟合一个分布 p θ ( z ∣ x ) p_\theta(z|x) pθ(zx) q ϕ ( z ∣ x ) q_{\phi}(z|x) qϕ(zx)接近。VAE假设每个 x i x_i xi服从标准正态分布。

损失函数
x的似然函数可以写为:
l o g ( p θ ( x i ) ) = D K L ( p θ ( z ∣ x i ) ∣ ∣ q ϕ ( z ∣ x i ) ) + L ( θ , ϕ , x i ) log(p_{\theta}(x_i))=D_{KL}(p_{\theta}(z|x_i)||q_{\phi}(z|x_i))+L(\theta,\phi,x_i) log(pθ(xi))=DKL(pθ(zxi)qϕ(zxi))+L(θ,ϕ,xi)
其中 L ( θ , ϕ , x i ) L(\theta,\phi,x_i) L(θ,ϕ,xi)为变分下界,因为KL散度的值是非负的,因此要最大化似然函数即最大化变分下界 L ( θ , ϕ , x i ) L(\theta,\phi,x_i) L(θ,ϕ,xi),即最大化:

L ( θ , ϕ , x i ) = l o g ( p θ ( x i ∣ z ) ) − D K L ( p θ ( z ∣ x i ) ∣ ∣ q ϕ ( z ∣ x i ) ) L(\theta,\phi,x_i)=log(p_{\theta}(x_i|z))-D_{KL}(p_{\theta}(z|x_i)||q_{\phi}(z|x_i)) L(θ,ϕ,xi)=log(pθ(xiz))DKL(pθ(zxi)qϕ(zxi))
则VAE的孙树函数分为两个部分
KL散度的计算公式为:
D K L ( p ( x ) ∣ ∣ q ( x ) ) = ∑ i = 1 n p ( x ) l o g p ( x ) q ( x ) D_{KL}(p(x)||q(x))=\sum_{i=1}^{n}p(x)log\frac{p(x)}{q(x)} DKL(p(x)q(x))=i=1np(x)logq(x)p(x)
VAE的KL损失计算当前z的分布与标准正态分布之间的KL散度,假设即 p θ ( z ∣ x i ) p_{\theta}(z|x_i) pθ(zxi)~ N ( μ i , σ i ) N(\mu_i,\sigma_i) N(μi,σi)
D K L ( p θ ( z ∣ x i ) ∣ ∣ q ϕ ( z ∣ x i ) ) = μ i 2 + σ i 2 − l o g ( σ i 2 ) − 1 D_{KL}(p_{\theta}(z|x_i)||q_{\phi}(z|x_i))=\mu_i^2+\sigma_i^2-log(\sigma_i^2)-1 DKL(pθ(zxi)qϕ(zxi))=μi2+σi2log(σi2)1
则VAE的损失函数如下:
L ( θ , ϕ , x ) = ∑ i = 1 n ( − ( μ i 2 + σ i 2 − l o g ( σ i 2 ) − 1 ) + m s e ( x i , x i ^ ) ) L(\theta,\phi,x)=\sum_{i=1}^{n}(-(\mu_i^2+\sigma_i^2-log(\sigma_i^2)-1)+mse(x_i,\hat{x_i})) L(θ,ϕ,x)=i=1n((μi2+σi2log(σi2)1)+mse(xi,xi^))
VAE应用场景

VAE,GAN等统称为生成模型,生成模型的应用主要有以下几个方面:

  1. 图像生成,风格转换
  2. NLP领域:文本生成
  3. 数据补全,自动补全因意外缺失的部分特征
  4. 学习数据的embedding特征
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值