这似乎是一个基本问题,你们中的一些人必须对此有自己的看法。我有一个用 CNTK 实现的图像分类器,有 48 个类。如果图像与 48 个类别中的任何一个都不能很好地匹配,那么我希望能够得出结论,它不属于这 48 个图像类型。我最初的想法很简单,如果最终 Softmax 层的最高输出较低,我就可以得出测试图像匹配不佳的结论。虽然我偶尔会看到这种情况发生,但在大多数测试中,当提供“未知图像类型”时,Softmax 仍然会产生非常高(且错误)的结果。但也许我的网络“过度适应”,如果不是,我最初的想法就可以正常工作。你怎么认为?有什么方法可以定义名为“none-of-the-above”的第 49 类吗?
您确实有这两个选项——对后验概率(softmax 值)进行阈值设置,并添加垃圾类。
在我的领域(演讲),这两种方法都有其用武之地:
如果“以上都不是”输入与“以上”具有相同的性质(例如非语法输入),则阈值处理效果很好。请注意,类别的后验概率等于一减去选择该类别的错误率的估计。拒绝后验概率
如果“以上都不是”输入具有相似的性质,但您的类别数量非常小(例如 10 位数字),或者如果输入具有完全不同的性质(例如关门声或某人咳嗽的声音),则阈值化通常会失败。然后,人们会训练一个“垃圾模型”。根据我们的经验,包含正确类别的训练数据是可以的。现在,上述类别中的任何一个也可能与正确的类别匹配。但只要上述类别没有过度训练,那就没问题了——它的分布会更加平坦,因此即使它与已知类别匹配,它也会以较低的分数匹配它,从而不会战胜它实际已知类的 softmax 输出。
最后,我会同时使用两者。一定要使用阈值(以捕获系统可以排除的情况)and使用垃圾模型,我会根据你拥有的任何东西来训练它。我希望在训练中包含正确的示例不会造成损害,即使它是您拥有的唯一数据(请检查 Anton 发布的论文,了解这是否也适用于图像)。尝试合成数据也可能有意义,例如通过随机组合来自不同图像的补丁。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)