vae的loss函数为两项,重构损失(reconstruct loss)以及kl散度正则项(kl loss),分别对应模型训练过程希望达成的两个目的。 loss=MSE(X,X′)+KL(N(μ1,σ12),N(0,1)) reconstruct loss计算的是解码器解码得到的向量和输入向量之间的MSE loss,这一项比较好理解,就是反映出vae生成的结果和输入之间的差异,对应的...
图一、VAE较为经典的运算图。 其中,根据之前两篇博客的推导,较为严谨的loss function应该为: defloss_function_original(recon_x,x,mu,logvar):BCE=F.binary_cross_entropy(recon_x,x.view(-1,784),reduction='sum')# 0.5 * sum(1 + log(sigma^2) - mu^2 - sigma^2)KLD=-0.5*torch.sum(1+log...
ELBO值可能是小于0的,但是loss不会为负数。