为啥 TensorFlow 模型报告的预测置信度不正确?

Posted

技术标签:

【中文标题】为啥 TensorFlow 模型报告的预测置信度不正确?【英文标题】:Why is TensorFlow model reporting incorrect high confidence level for predictions?为什么 TensorFlow 模型报告的预测置信度不正确? 【发布时间】:2021-12-27 15:04:48 【问题描述】:

我编写了这个函数,它接收图像并生成预测。函数报告的预测的置信水平多次大于 100%。有时预测是正确的,并且报告的置信度很高。有时它是不正确的,但仍然报告了很高的置信度。你能帮我找出我的置信水平代码中的错误吗?

模型结构的最后一行:

outputs = tf.keras.layers.Dense(3)(x)

【问题讨论】:

【参考方案1】:

如果您希望输出介于 0 和 1 之间,则应在最后一层使用 'sigmoid''softmax' 激活:

outputs = tf.keras.layers.Dense(3, activation='softmax')(x)

但是要小心,因为 softmax 输出不能真正解释为概率。

【讨论】:

为什么softmax输出不能解释为概率? Softmax 概率未经校准,但仍然是概率。 @user17020095 这确实是Cross Validated 上的问题。 阅读本文的主题:arxiv.org/abs/1706.04599 您确实需要删除from_logits=True

以上是关于为啥 TensorFlow 模型报告的预测置信度不正确?的主要内容,如果未能解决你的问题,请参考以下文章

R语言plotly可视化:使用plotly可视化多分类模型的预测置信度模型在2D网格中每个数据点预测的置信度置信度定义为在某一点上最高分与其他类别得分之和之间的差值

Weka 预测(百分比置信度) - 这是啥意思?

MATLAB 中分类预测生成提升图的置信度

使用 Keras 构建了一个模型,该模型报告了良好的准确性,但随后无法进行预测

R语言使用gls函数拟合模型并可视化模型的预测值及其置信区间实战

R线性回归模型构建:残差值回归值预测域置信区间