我是神经网络的新手,所以这可能是个愚蠢的问题。我已经为图像分类建立了标准的 CNN 网络。我想要多标签分类网络,所以我使用 binary_crossentropy 作为损失函数:
model.compile(loss='binary_crossentropy',
optimizer=optimizers.RMSprop(lr=1e-4),
metrics=['acc'])
并在最后一层具有 sigmoid 函数作为激活函数(两个神经元用于两个标签):
model.add(layers.Dense(2, activation='sigmoid'))
输出给了我这样的东西:
[[0.000497834], [0.99942183]]
- 为什么这两个数字相加为 1,sigmoid 输出不应该是独立的吗?
- 我应该怎么做才能获得独立概率作为输出(例如,如果图像不属于两个类中的任何一个,则两个神经元的输出应该接近 0,如下所示:[[0.001],[0.001]]
提前感谢您的帮助。