变分自编码器(Variational Auto Encoder)总结

假设数据x_i由一个随机过程产生,该随机过程分为两步:先由先验分布P_{\theta}(z)产生隐藏变量z_i;再由条件分布P_{\theta}(x|z_i) 产生数据 ,下图(a)是这个随机过程的图模型。然而,直接求P_{\theta}(x_i)=\int P_{\theta}(x_i|z)P_{\theta}(z)dz 由于某些z导致P_{\theta}(x_i|z)比较小,而且x维度比较高,所以预估不准,所以弄一个Q_{\phi}(z|x_i)来近似P_{\theta}(x_i|z),怎么近似呢?通过下面这个公式来优化下界

logP_{\theta}(x_i) \geq E[logP_\theta(x_i|z)]-KL(Q_\phi(z|x_i) || P_\theta(z))

这部分叫变分推断,只要理解KL散度的定义和贝叶斯公式就很容易推导,把Q_\phi(z|x_i)假设成一个标准的正态分布。如果所有的 p(Z|X) 都很接近标准正态分布 N(0,I),那么根据定义,P(z)也就成标准正态分布了。

 那怎么让所有的 p(Z|X) 都向 N(0,I) 看齐呢?

 所以,引入\varepsilon以后,图(b)就开始变成了图(c),求逼近函数Q_\phi(z|x_i)的过程可以在引入\varepsilon后开始利用神经网络反向传播,其中x是已有训练数据,\phi是公式Q_\phi(z|x_i)待求的参数,\varepsilon是标准正态分布的随机抽样。有了Q_\phi(z|x_i)以后,就可以按照P_{\theta}(x|z_i)作为解码器来生成新的样本。

 

 

 鸣谢:

1. 变分自编码器VAE:原来是这么一回事 | 附开源代码 - 知乎

2. 葫芦书
3. 如何简单易懂地理解变分推断(variational inference)? - 知乎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值