如何最好地处理"以上都不是"在图像分类?

时间:2017-04-24 02:07:00

标签: classification cntk softmax

这似乎是一个基本问题,你们中的一些人必须有一个意见。我有一个在CNTK中实现的图像分类器,有48个类。如果图像与48个类中的任何一个都不匹配,那么我希望能够得出结论,它不属于这48种图像类型。我最初的想法很简单,如果最终的Softmax层的最高输出很低,我将能够得出结论,测试图像没有很好地匹配。虽然我偶尔会看到这种情况发生,但在大多数测试中,当传递未知的图像类型时,Softmax仍会产生非常高(和错误)的结果。但也许我的网络过于健康了。如果它不是,我原来的想法会很好。你怎么看?任何方式来定义一个名为“无上述”的第49个班级?

2 个答案:

答案 0 :(得分:6)

你确实确实有这两个选项 - 对后验概率进行阈值处理(softmax值),并添加垃圾类。

在我所在的地区(演讲),两种方法都是他们的地方:

如果"以上都不是"输入与上面的"#34;具有相同的性质。 (例如非语法输入),阈值处理工作正常。请注意,类的后验概率等于1减去选择此类的错误率的估计值。拒绝任何后方< 50%会拒绝所有你可能错误而非正确的情况。只要您的上述类别具有相似性质,估计值可能足够准确,以使其正确。

如果"以上都不是"输入具有相似的性质但是你的类别数量非常小(例如10位数),或者如果输入具有完全不同的性质(例如门砰砰声或某人咳嗽声),则阈值处理通常会失败。然后,人们会训练一个垃圾模型。"根据我们的经验,可以包含正确课程的培训数据。现在,上面没有的类也可以匹配正确的类。但是,只要上述类别没有过度训练,它就可以了 - 它的分布会更加平坦,因此即使它与已知的类相匹配,它也会与较低的分数相匹配,因此,没有赢得实际已知的班级' softmax输出。

最后,我会同时使用两者。绝对使用一个阈值(以捕捉系统可以排除的情况)使用垃圾模型,我会根据你所拥有的东西训练它。我希望在训练中包含正确的例子不会受到伤害,即使它是您拥有的唯一数据(请查看Anton发布的文章是否也适用于图像)。尝试合成数据也是有意义的,例如通过随机组合来自不同图像的补丁。

答案 1 :(得分:4)

我同意你的观点,这是一个关键问题,但我也不了解该领域的大量工作。

Zhang and LeCun最近的一篇论文特别提到了图像分类的问题。他们使用大量未标记的数据来创建额外的“以上”类。但问题是,在某些情况下,他们未标记的数据并非完全没有标记,他们有办法删除实际上属于其标记类之一的“未标记”图像。话虽如此,作者报告说,除了解决“上述问题”之外,他们甚至可以在测试集上看到性能提升。

至于事后拟合,只是通过查看softmax的输出,我无法提供任何指示。