2

我在 IBM Bluemix 上使用 Visual Recognition 服务。

我创建了一些分类器,特别是其中两个具有此目的:

  • 首先:一个“通用”分类器,它必须返回关于识别图像中特定对象的置信度分数。我已经用 50 个物体的正面例子和 50 个与物体相似的物体的负面例子(它的细节、它的组件、类似它的图像等)训练了它。
  • 第二:如果第一个分类的分数很高,则识别之前识别的对象的特定类型的更具体的分类器。这个新的分类器已经被训练为第一个:50 个 A 类对象的正例,50 个 B 类对象的负例。第二个分类应该比第一个更具体,因为图像更详细并且它们之间都相似。

结果是这两个分类器工作得很好,并且在大多数情况下,一组特定图像的预期结果都与事实相符,这应该意味着两者都经过了很好的训练。

但是有一点我不明白。

在这两个分类器中,如果我尝试对正训练集中使用的图像进行分类,我的期望是置信度分数应该接近 90-100%。相反,我总是得到一个介于 0.50 和 0.55 之间的分数。当我尝试使用与正训练集(缩放、反射、剪切等)非常相似的图像时,也会发生同样的事情:置信度永远不会超过 0.55 左右。

我尝试创建一个包含 100 个正图像和 100 个负图像的类似分类器,但最终结果从未改变。

问题是:为什么置信度分数这么低?为什么正面训练集中使用的图像没有接近 90-100%?

4

1 回答 1

4

Visual Recognition 自定义分类器的分数范围从 0.0 到 1.0,但它们是无单位的,不是百分比或概率。(它们加起来不等于 100% 或 1.0)

当服务根据您的示例创建分类器时,它试图找出一类 positive_examples 的特征与其他类 positive_examples(和negative_examples,如果给定)的区别。分数基于类的正样本与分类器中的所有其他样本之间到决策边界的距离。它尝试校准每个类的分数输出,使 0.5 是一个不错的决策阈值,以判断某物是否属于该类。

但是,考虑到应用程序中误报与漏检的成本效益平衡,您可能希望使用更高或更低的阈值来确定图像是否属于某个类别。

在不知道您的类示例的细节的情况下,我可能会猜测您的类之间存在大量相似性,可能在特征空间中您的示例不在不同的集群中,并且分数反映了与边界的接近程度。

于 2016-08-02T03:05:41.257 回答