【问题标题】:Neural Network High Confidence Inaccurate Predictions神经网络高置信度不准确预测
【发布时间】:2018-06-08 21:21:21
【问题描述】:

我有一个针对分类任务训练的神经网络,它正在学习,尽管它的准确度不高。我试图找出它对哪些测试示例没有信心,以便我可以更深入地了解正在发生的事情。

为了做到这一点,我决定在 Tensorflow 中使用标准的 softmax 概率。为此,我调用了tf.nn.softmax(logits),并使用了此处提供的概率。我注意到很多时候概率是 99%,但预测仍然是错误的。因此,即使我只考虑预测概率高于 99% 的示例,我的准确率也很差,仅比我原来的准确率高 2-3%。

有没有人知道为什么网络对错误的预测如此自信?我还是深度学习的新手,所以正在寻找一些想法来帮助我。

另外,使用 softmax 概率是确定神经网络预测置信度的正确方法吗?如果没有,有没有更好的方法?

谢谢!

编辑:从下面的答案来看,我的网络似乎表现不佳。除了查看置信度之外,还有其他方法可以识别网络做出的哪些预测可能是错误的(因为置信度似乎效果不佳)?

【问题讨论】:

  • 有时,在使用错误的初始化程序时会发生这种情况。如果初始化器给最后一层的权重一个太高的方差,那么很有可能一个类的 logit 值比所有其他类高得多,这在 softmax 之后转化为高置信度。您可能想尝试其他初始化程序:tensorflow.org/api_guides/python/contrib.layers#Initializers
  • 虽然不是只有一个类有很高的置信度,只是在很多情况下错误的类(可能是任何一个)具有很高的置信度。如果有帮助的话,这也是一个文本理解问题。我目前正在使用 Xavier Initializer,但会尝试其他的。

标签: tensorflow machine-learning neural-network deep-learning


【解决方案1】:

假设您的样本被一条垂直线分割,但您的 NN 分类器学习了一条水平线,在这种情况下,您的分类器给出的任何预测始终只能获得 50% 的准确率。但是 NN 会为离水平线较远的样本分配更高的置信度。

简而言之,当您的模型分类不​​佳时,较高的置信度对准确率几乎没有影响。

建议:检查数据中是否包含您进行正确分类所需的信息,然后先提高整体准确率。

【讨论】:

  • 好的,你知道如何解决这个问题吗?还是说我的任务太难了?
  • 我还注意到并非所有人都有 99% 的信心。这是否意味着我应该仅考虑具有> 60%和
  • 基本上这意味着神经网络的分类很差。建议是先提高整体准确率。
  • 我希望不考虑网络没有信心以获得更高准确性的情况,因为我将这些预测用于另一项任务。如果我无法提高整体准确性,您对如何自动识别哪些预测可能出错有任何其他建议吗?
  • 我会进一步调查这个问题,问问自己人类专家能达到什么准确度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 2020-05-08
  • 1970-01-01
  • 2018-05-26
  • 2017-07-05
相关资源
最近更新 更多