我正在人脸数据集上训练条件变分自动编码器。当我将我的 KLL 损失设置为我的重建损失项时,我的自动编码器似乎无法生成不同的样本。我总是会出现相同类型的面孔:
这些样本很糟糕。但是,当我将 KLL 损失的权重减少 0.001 时,我得到了合理的样本:
问题是学习到的潜在空间并不平滑。如果我尝试执行潜在插值或生成随机样本,我会得到垃圾。当 KLL 项具有较小的权重 (0.001) 时,我观察到以下损失行为: 请注意,VggLoss(重建项)减少,而 KLLoss 继续增加。
我也尝试增加潜在空间的维度,但这也不起作用。
请注意,当两个损失项的权重相等时,KLL 项如何占主导地位但不允许重建损失减少:
这导致可怕的重建。关于如何平衡这两个损失项或任何其他可能的尝试,是否有任何建议,以便我的自动编码器在产生合理重建的同时学习平滑的插值潜在空间?