一类SVM与示例SVM


16

我知道,一类支持向量机(OSVM)是在考虑否定数据的情况下提出的,它们试图找到将正集与某个负锚点(例如起源)分开的决策边界。

2011年的工作提出了示例性SVM(ESVM),该模型训练了一个声称与OSVM有所不同的“单个每个类别分类器”,因为ESVM不需要“将示例映射到可以使用相似性内核的公共特征空间中”计算”。我不太了解这意味着什么以及ESVM与OSVM有何不同。因此,它们有何不同?在ESVM中如何避免这种相似性内核计算?

Answers:


20

(您可能首先要看下面的“表格”)

让我们从“经典”支持向量机开始。他们学会了区分两个类别。您收集了一些类别A的示例,一些类别B的示例,并将它们都传递给SVM训练算法,该算法会找到最能将A与B分开的线/平面/超平面。您想区分定义明确的类别和相互排斥的类别:男人与女人,字母表中的字母,等等。

但是,假设您要标识“ A”。您可以将其视为分类问题:如何区分“ A”和“非A”。收集由狗的图片组成的训练集非常容易,但是非狗训练集应包含哪些内容呢?由于有无数种不是狗的东西,因此您可能很难构建一个包含所有非犬类东西的全面而有代表性的训练集。相反,您可以考虑使用一类分类器。传统的两类分类器会找到一个将A与B分开的(超)平面。一类SVM会找到一个将所有同类点(“ A”)与原点分开的线/平面/超平面;

Ensemble SVM“系统”实际上是许多两类SVM“子单元”的集合。每个亚基是利用受过训练的一类的正面例子,而另一类的负面例子很多。因此,不是区分狗与非狗实例(标准的两类SVM),还是狗与起源的实例(一类SVM),每个子单元都区分特定狗(例如“雷克斯”)和许多非狗。例子。每个阳性子类别的个体SVM都经过训练,因此您将有一个SVM用于Rex,另一个SVM用于Fido,另外一个用于邻居的狗,该狗在6am吠叫,依此类推。校准并组合这些子单元SVM的输出,以确定在测试数据中是否出现了一只狗,而不仅仅是特定示例之一。我猜您也可以将单个子类别想像成一类SVM,其中的坐标空间发生了偏移,因此单个正例位于原点。

总之,主要区别在于:

训练数据

  • 两类SVM:正例和负例
  • 一类SVM:正面示例
  • 集成SVM“系统”:正面和负面的例子。每个亚单元都在一个积极的例子和许多消极的例子上训练。

机器数量

  • 两类SVM:一个
  • 一类SVM:一类
  • 集成SVM“系统”:很多(每个正面示例一个子单元机器)

每个班级的示例(每台机器)

  • 两类SVM:很多/很多
  • 一类SVM:多/一(原产地固定)
  • 集成SVM“系统”:很多/很多
  • 集成SVM“子单元”:一个/多个

后期处理

  • 两类SVM:不必要
  • 一类SVM:不必要
  • 集成SVM:需要将每个SVM的输出融合到类级别的预测中。

附言:您曾问过它们的含义“ [其他方法]要求将示例映射到可以计算相似性内核的公共特征空间”。我认为它们的意思是,传统的两类SVM在假设类的所有成员都相似的情况下运行,因此您想找到一个内核,该内核将伟大的danesdachsunds彼此靠近,但彼此远离。相比之下,如果它足够像丹麦犬(Dane)或腊肠犬(Dachsund)或贵宾犬(贵宾犬),那么集成的SVM系统就会通过称呼狗为狗,而不必担心这些示例之间的关系。


感谢您的出色而全面的回答。需要明确的是,在某些地方您确实的意思是“示例” SVM的“集合”,但是在其他地方,仅仅是“示例” SVM的意思?我认为很公平,应该与(1)带有单个ESVM的单个OSVM或(2)带有ESVM的ENVMBLE的OSSEM进行比较。
bjou

我希望问这对多个类的推广程度有多好?如果我有猫,狗和鸟,那么esvm是否需要对fido和每只猫使用一个“元素” SVM,对fido对每只鸟需要一个“元素” SVM?如果我为3个类别中的每一个拥有10个数据点,那是否意味着每个“狗”有20个元素SVM或一个由200个元素组成的集合?如果我有300个数据点和20个维度,或者50k数据点和50k维度,该怎么办。如果我要建立一个SVM的随机森林,那么我可以使用随机子集来减少“多维诅咒”的影响吗?
EngrStudent-恢复莫妮卡

@bjou,我对ESVM术语有点草率,所以我回过头来清理它。我想您可能会认为ESVM系统的“子单元”就像OSVM,只是坐标系统已重新居中,从而使正面的例子位于原点。
马特·克劳斯

1
@EngrStudent,它实际上可以很好地概括。在本文中,他们使用Pascal VOC任务,该任务有20个类别。为了扩展我们的动物示例,您将有一个“ Fido”对(所有鸟,猫和鱼)的子单元,一个“雷克斯”对所有非狗的子单元,以此类推。对于鸟类,您需要训练“ Tweety”对(所有猫,狗,鱼),“ Polly”对所有非鸟类,等等。每个猫和鱼的示例还将有一个子单元,分别针对所有非猫和非鱼进行了训练。不管类的数量如何,每个标记的示例最终都有1个SVM。
马特·克劳斯

这听起来像是表亲的表亲(在渐变树的意义上)。合奏是输出误差加权还是均匀加权?
EngrStudent-恢复莫妮卡

2

简而言之,ESVM模型是一组经过训练以区分所有单个训练集元素与所有其余训练元素的SVM,而OSVM模型是一组经过训练以区分属于一个类别的训练元素的每个子集的SVM。因此,如果训练集中有300只猫和300只狗的实例,则ESVM将制作600个 SVM,每个用于一只宠物,而OSVM将制作两个 SVM(第一个用于所有猫,第二个用于所有狗)。

这样,ESVM不需要找到整个类都在其中聚类的空间,而是需要找到一个元素在其中是离群值的空间,这可能会更简单并导致更高的精度。召回由合奏提供。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.