我正在使用深度神经网络进行二元分类。每当我使用binary_crossentropy时,我的模型准确性不佳(接近随机预测)。但是,如果我通过将输出层的大小设置为2来使用categorical_crossentropy,则只需1个时期即可获得接近0.90的良好准确性。有人能解释一下这里发生了什么吗?
我正在使用深度神经网络进行二元分类。每当我使用binary_crossentropy时,我的模型准确性不佳(接近随机预测)。但是,如果我通过将输出层的大小设置为2来使用categorical_crossentropy,则只需1个时期即可获得接近0.90的良好准确性。有人能解释一下这里发生了什么吗?
在尝试在输出层使用softmax
激活函数时,我也遇到了这个问题。据我所知,softmax
会给出每个类别的概率,因此如果你的输出层有2个节点,它将是类似于p(x1)
、p(x2)
和x1 + x2 = X
的形式。因此,如果你只有1个输出节点,它始终都等于 1.0 (100%),这就是为什么你的预测接近于随机预测(实际上,它会接近于在评估集中的分类分布)。
尝试将其更改为另一种激活方法,例如sigmoid
或relu
。