为了账号安全,请及时绑定邮箱和手机立即绑定

Keras softmax 输出和精度

Keras softmax 输出和精度

鸿蒙传说 2023-03-30 16:43:37
这是 Keras 模型的最后一层。model.add(Dense(3, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])我知道softmax层的输出是一个数组,概率总和为1,比如[0.1, 0.4, 0.5].我有一个关于使用准确性作为指标的问题。例如,当真实类别为[0, 0, 1]且预测概率为 时[0.1, 0.4, 0.5],即使0.5是最大概率,此预测的准确度也应为0,因为0.5 != 1. 那是对的吗?更一般地,当输出层激活为 时softmax,我们通常会得到浮动概率预测,并且在极少数情况下我们会得到 [0, 0, 1]像 所以我们在使用as activation的时候不能用accuracyas metric softmax。那是对的吗?
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

eg,当真实类别为[0, 0, 1],预测概率为[0.1, 0.4, 0.5]时,即使0.5是最大概率,这个预测的准确率也应该是0,因为0.5 != 1。是那对吗?

不,您将具有最大值的索引视为模型的预测。因此,在您的示例中,此示例预测将有助于提高准确性。这通常称为 Top-1 精度。在图像分类中,也经常使用 Top-5 精度(softmax 层中的前 5 个最大值被视为 NN 的猜测,并考虑它们的精度)。

更一般地,当输出层激活为 softmax 时,我们通常会得到浮动概率预测,并且在极少数情况下我们会得到像 [0, 0, 1] 这样的整数概率预测。所以我们在使用 softmax 作为激活时不能使用准确性作为度量。那是对的吗?

从技术上讲,您永远不会获得 softmax 层输出的整数值,因为类型是 float。但是,是的,获得 [0.0, 0.0, 1.0] 的机会非常小。而你的这个假设是不正确的,因为前提不成立。然而,当使用 Softmax 作为神经网络的分类层时,准确性是一个有效的指标。


查看完整回答
反对 回复 2023-03-30
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信