前两天组会,论文提到了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模型也可以被称为生成模型。