多标签分类和sigmoid函数

数据挖掘 喀拉斯 卷积神经网络
2022-02-14 00:57:18

我是神经网络的新手,所以这可能是个愚蠢的问题。我已经为图像分类建立了标准的 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. 为什么这两个数字相加为 1,sigmoid 输出不应该是独立的吗?
  2. 我应该怎么做才能获得独立概率作为输出(例如,如果图像不属于两个类中的任何一个,则两个神经元的输出应该接近 0,如下所示:[[0.001],[0.001]]

提前感谢您的帮助。

0个回答
没有发现任何回复~