keras中的二进制交叉熵和带对数的二进制交叉熵有什么区别?

Sub*_*jee 5 python machine-learning lstm keras rnn

在keras后端,我们还有一个标志with_logitsK.binary_crossentropy。正常的二进制互熵和带对数的二进制互熵有什么区别?假设我正在使用seq2seq模型,并且我的输出序列是type 100111100011101

如果我在输入中给出了类似的顺序以及时间步长,那么递归的LSTM或RNN应该从该数据中学到什么呢?

Max*_*xim 2

这取决于损失函数之前是否有 sigmoid 层。

如果有 sigmoid 层,它会将类别分数压缩为概率,在本例中from_logits应该是False。损失函数会将概率转换为logits,因为这就是tf.nn.sigmoid_cross_entropy_with_logits预期的结果。

如果输出已经是一个logit(即原始分数),则通过from_logits=True,不会进行任何转换。

这两种选择都是可能的,选择取决于您的网络架构。顺便说一句,如果logit这个术语看起来很可怕,请看一下这个问题,其中详细讨论了它。