two-class SVM & one-class SVM & exemplar SVM区别简析

来源:互联网 发布:手机注册码破解软件 编辑:程序博客网 时间:2024/05/22 04:59

1.首先从典型的svm讲起,假设我们用A,B两个类的数据,我们需要训练一个分类器来区分这两类数据,那么我们可以通过训练一个two-class SVM,找到A,B之间的分割超平面。

2.如果我现在只有A的数据,并且我只想识别某个instance是不是A,应该怎么办呢?一般的想法是,我有的A的数据之后,我去搜集一些不是A类别的数据,然后训练一个two-class SVM。但这么做的问题在于,非A的dataset很大,并且不是representative的。这样训练出来的SVM效果可能不好。one-class SVM其实就是找到一个最小的sphere包括所有的A的instance。

3.exemplar SVM其实是two-class SVM的subunit,这里正样本只有一个,但是负样本有很多。比如我们需要训练一个狗的分类器,我们可以训练一个two-class SVM(dog vs not dog),我们可以训练一个one-class SVM(dog vs origin),我们也可以对于每一只具体的狗的instance,训练一个exemplar SVM。然后把所有的exemplar SVM ensemble起来,每一个exemplar SVM的训练是可以并行进行的,他们训练的时候也可以看成是在训练一个one-class svm。

总结一下,区别在于:
training data
1. two-class svm: positive samples and negative samples
2. one-class svm: positive samples only
3. ensemble svm: positive and negative samples. each subunit is trained on a single positive and many negative samples

number of machines
1. two-class svm: one
2. one-class svm: one
3. ensemble svm : many(one machine per subunit)

post-processing
1. two-class svm: not necessary
2. one-class svm: not necessary
3. ensemble svm: need to fuse each subunit’s output

0 0
原创粉丝点击