我有一个关于变分自动编码器中的损失函数的问题。我按照张量流示例 https://www.tensorflow.org/tutorials/generative/cvae 创建了一个LSTM-VAE,用于对正弦函数进行采样。
我的编码器输入是特定范围(随机采样(的一组点(x_i,sin(x_i((,作为解码器的输出,我希望类似的值。
在张量流指南中,存在交叉熵用于比较编码器输入和解码器输出。
cross_ent = tf.nn.sigmoid_cross_entropy_with_logits(logits=x_logit, labels=x)
这是有道理的,因为输入和输出被视为概率。但实际上,这些概率函数代表了我的正弦函数的集合。
我不能简单地使用均方误差而不是交叉熵(我试过了,效果很好(还是在某个时候导致架构的错误行为?
最诚挚的问候和感谢您的帮助!
好吧,当你工作太多而停止正常思考时,就会出现这样的问题。为了解决这个问题,考虑一下我想做什么是有意义的。
p(x|z( 是解码器重建,这意味着,通过从 z 采样,以 p 的概率生成值 x。在张量流示例中使用图像分类/生成,在这种情况下,交叉熵是有意义的。我只是想最小化输入和输出之间的距离。MSE的使用是合乎逻辑的。
希望在某个时候对某人有所帮助。
问候。