小白谈VAE(Variational Autoencoder)(变分自动编码器)


前两天组会,论文提到了VAE,导师一直问我VAE,还问我能不能推出来 当时哑口无言 下面总结一下VAE 以及推倒。

上面的是模型。

这里先给出推导再解释参数。

从后面来看,P(x)是decoder 的可能性,当然要最大,这里的q是encoder一般选择正态分布。

继续化简

后面的是decoder的kl散度,>=0,所以它的lowerbound是前面这项。

为了最大化likelyhood,q(z|x)和p没有关系,因此最大化q(z|x)可以让lb增加并且减小了kl。

继续化简lb

得到loss function

合起来构造如下的损失函数:

上面的第一部分,可以看做是重建 loss,就是从 x∼z∼x的这样一个过程,可以表示成上面的熵的形式,也可以表示成最小二乘的形式,这个取决于x本身的分布。后面的 KL 可以看做是正则项,qθ(z∣x) 可以看成是根据x推导出来的z的一个后验分布,p(z)可以看成是z的一个先验分布,我们希望这两个的分布尽可能的拟合,所以这一点是VAE与GAN的最大不同之处,VAE对隐变量z是有一个假设的,而GAN里面并没有这种假设。 一般来说,p(z)都假设是均值为0,方差为1的高斯分布 𝒩(0,1)如果没有 KL 项,那VAE就退化成一个普通的AE模型,无法做生成,VAE中的z隐变量是一个分布,或者说近似高斯的分布,通过对这个概率分布采样,然后再通过decoder网络,VAE可以生成不同的数据,这样VAE模型也可以被称为生成模型。

代码:https://github.com/bojone/vae/blob/master/vae_keras.py

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值