Binary_crossentropy 和 Categorical_crossentropy 之间的混淆

Confusion between Binary_crossentropy and Categorical_crossentropy

我正在使用深度神经网络进行二进制 class class化。每当我使用 binary_crossentropy 时,我的模型都没有提供很好的准确性(它更接近于随机预测)。但是,如果我通过将输出层的大小设置为 2 使用分类交叉熵,我将在接近 0.90 的 1 个时期内获得良好的准确性。谁能解释一下这里发生了什么?

我在尝试在输出层中使用 binary_crossentropy 和 softmax 激活时也遇到了这个问题。据我所知,softmax 给出了每个 class 的概率,所以如果你的输出层有 2 个节点,它将类似于 p(x1)p(x2)x1 + x2 = X。因此,如果您只有 1 个输出节点,它将始终等于 1.0 (100%),这就是您接近随机预测的原因(老实说,它会接近您在评估集中的类别分布)。

尝试将其更改为其他激活方法,例如 sigmoidrelu