概率总和大于 1

数据挖掘 机器学习 神经网络 训练 卷积神经网络
2022-02-25 14:49:09

我在 KERAS 中有用于对象检测(图像中的一个对象)的 CNN 架构。它有 22 个卷积层(层包括最大池、LeakyRelu 和 Batchnorm)

最后几层如下

model.add(Flatten())
model.add(Dense(6))

基本上我想输出重新表示的向量( probability that is is ObjECT , probability that it isnt , x , y , xmax, ymax )

我正在向它提供包含一个对象和标签的数据

( 1, 0, xmin , ymin , xmax , ymax )

这有大约 0.60% 的准确度。但是 (isOBject + isntObject ) 的总和大于 1。

[[   1.02664185    0.34075582  231.69602966  241.59547424  280.6262207
   266.35855103]] 

霍斯这是可能的。

此外,当我向网络提供另一个没有对象的数据并标记它们时

(0, 1, 0, 0, 0, 0)。

我得到 10% 的准确率。怎么可能?它有更多数据可供学习,并在此基础上添加了虚假数据。

我感谢所有提示和技巧/解释,基本上所有帮助。谢谢

1个回答

您需要使用适当的激活。如果您对这两个组件使用 softmax,则它们将被限制为总和为 1。LeakyReLU 不仅没有强加这个约束:它可以输出任何实数值,因此对于这些组件,它甚至不受 [0,1] 的约束。