我在使用深度神经网络进行二元分类时遇到了问题。每当我使用二元交叉熵(binary_crossentropy)时,模型的准确率都很低(接近随机预测)。但如果我将输出层的尺寸设为2,并使用分类交叉熵(categorical crossentropy),仅在一个epoch内就能获得接近0.90的高准确率。能有人解释一下这是怎么回事吗?
回答:
我在尝试将softmax
激活函数用于输出层时也遇到了使用二元交叉熵的问题。据我所知,softmax
会给出每个类别的概率,因此如果你的输出层有两个节点,它会是类似p(x1)
、p(x2)
的形式,并且x1 + x2 = X
。因此,如果你只有一个输出节点,它总是等于1.0(100%),这就是为什么你的预测接近随机(实际上,它会接近评估集中你的类别分布)。
尝试将其更改为其他激活方法,如sigmoid
或relu
。