VAE 使用由 KL 项和似然项组成的ELBO 损失。ELBO 损失是数据证据的下限,因此如果最大化 ELBO,您也会最大化给定数据的证据,这是您间接想要做的,即您想要给定数据的概率(即数据集中的数据)要高(因为您想使用 VAE 生成与数据集中的输入类似的输入)。因此,这个想法是您联合优化 KL 项和重建(或似然)项(即 ELBO)。为什么?因为,正如我刚才所说,ELBO 是E vidence L ower BOund 在给定的数据上,因此,通过最大化它,你也在最大化你的数据的证据。换句话说,如果你最大化 ELBO,你会找到一个解码器,它很有可能重建你的输入(即似然项),但同时,你希望你的编码器受到约束(即 KL 项)。请阅读此答案以获取更多详细信息。
在这里,我无法理解为什么采样z应该制作原始图像,因为z被采样,似乎z与原图没有任何关系。
关系是您将最大化 ELBO,这意味着(只有当您熟悉 ELBO 损失时,您才能看到此含义)您将最小化后验和先验之间的 KL 散度以生成样本z(即最小化,因为在 ELBO 损失中 KL 项前面会有一个减号)并最大化重建输入的概率。更确切地说,z用于重建输入(即解码器执行此操作),然后用于计算重建损失。
在数学公式中,您会看到 ELBO 的似然项是p(x∣z),即输入的可能性x给定z. 这z是解码器的输入,它产生一个重构x. 在实践中,人们将例如使用交叉熵来计算“重建损失”(例如,参见这个 PyTorch 实现),它应该对应于这个似然项p(x∣z). 为什么交叉熵对应于可能性?因为你实际上可以证明交叉熵等价于负对数似然。(另外,请注意,在 ELBO 损失中,p(x∣z)没有出现,但对数p(x∣z)出现,但为简单起见,我使用了p(x∣z)而不是logp(x∣z)多于。)