vae 推导
[变分自编码器(VAEs)](https://zhuanlan.zhihu.com/p/25401928)
x -> z -> x
样本的对数似然是单个点的对数似然之和,
单个点的对数似然 = KL(q(z|x)||p(z|x)) + L >= L
最大似然 => 最大变分下界
L = -KL(q(z|x)||p(z)) + log p(x|z)
模型概述:
encoder:对于x,得到一种x的表示。e.g. sentence x 的表示就是rnn的最后一个hidden。 【可看做p(x)】
从x经过一番变换(e.g. MLP)得到 mu 和 sigma,从中采样得到z。【看作q(z|x)】
decoder:从z得到x还原。【看做p(x|z)】
训练时的 loss function = KL + -log(x|z)
就是变分下界的相反数。
-logp(x|z)就是交叉熵(伯努利分布时):
p(x|z)= a^x + (1-a)^(1-x)
测试时:取使p(x|z)最大的