我研究了Kingma和Welling的变分自动编码器,并尝试实现其代码。我首先想看别人的代码,发现每个样本只有一个潜在样本,换句话说,如果我有样本x,我们就有
mu, sigma = encoder(x)
z = mu + sigma*normal_sample
x_hat = decoder(z)
KL_divergence = ...
Reconstruction_error = ...
据我了解,在计算重建误差时,x的一个样本对应于潜变量z的多个(在本文中为L)。所以,
mu, sigma = encoder(x)
z1 = mu + sigma*normal_sample
...
zL = mu + sigma*normal_sample
x_hat1 = decoder(z1)
...
x_hatL = decoder(zL)
KL_divergence = ...
Reconstruction_error = ...
是我想要的。 1)每个x样本对应于多个z样本是否正确? 2)什么是实现此目的的简洁方法?