1

我正在尝试使用线性支持向量机进行多类对象类别识别。到目前为止,我所理解的是,主要有两种方法 - 一种是对所有(OVA)和一种对一种(OVO)。 但我很难理解它的实现。我的意思是我认为使用的步骤是:多支持对象分类支持向量机

  • 首先,我们要说SIFT的特征描述符。所以我有一个128XN的特征向量。
  • 接下来为一个特定对象类别(比如说汽车)准备一个SVM分类器模型,我将50张图像的汽车作为正面训练集合,并从每个类别中随机抽取50个剩余类别的图像(这部分是否正确?) 。我为所有这些类别准备了这些模型(比如说其中的5个)。
  • 接下来,当我有一个输入图像时,是否需要将图像输入到所有5个模型中,然后检查这些模型中每个模型的值(+ 1/-1)?我很难理解这部分。

回答

2

在一对一的方法,你必须检查所有5个模型。然后你可以用最有信心的价值来做出决定。 LIBSVM给出了概率估计。

在一对一的方法中,你可以占多数。例如,您测试1对2,1对3,1对4和1对5.您在3种情况下将其分类为1。你对其他4个班级也一样。假设其他四个类别的值为[0, 1, 1, 2]。因此,1级获得了最多的次数,使这个班级成为最后一堂课。在这种情况下,你也可以做总概率估计。取最大值。除非在一对中分类非常错误,否则这将起作用。例如,在1对4中,它将信度为0.7的分类为4(真实类别为1)。然后,仅仅因为这个决定,你的总概率估计可能会爆发并给出错误的结果。这个问题可以通过实验来检查。

LIBSVM使用一对一。你可以检查推理here。你也可以阅读this论文,他们捍卫一个对所有分类方法,并得出结论认为它是而不是必然比一对一更差。

2

总之,您的正面训练样本总是相同的。在一对一中,你训练n个分类器,分别从每个负面类别中抽取负面样本。在一个或所有你将所有负面样本集合在一起并训练一个分类器。前一种方法的问题是你必须考虑所有n个结果来决定课程。后一种方法的问题在于,集合负类对象类创建可能会创建难以处理和分析的非同类类。