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

Tul*_*ead 9 classification softmax cntk

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

小智 6

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

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

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

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

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


Ant*_*fer 5

我同意你的看法,这是一个关键问题,但我也不知道在该领域有多少工作。

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

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