SVM和感知器之间的区别


29

我对SVM和感知器之间的区别感到困惑。让我尝试在这里总结一下我的理解,请随时纠正我的错误之处,并填写我错过的内容。

  1. 感知器不会尝试优化分离“距离”。只要找到一个将这两个集合分开的超平面,那就很好了。另一方面,SVM试图最大化“支持向量”,即两个最接近的相对采样点之间的距离。

  2. SVM通常尝试使用“内核函数”将采样点投影到高维空间,以使它们线性可分离,而感知器假定采样点是线性可分离的。


Answers:


18

对我来说听起来不错。人们有时还会使用“感知器”一词来与分类器一起指代训练算法。例如,有人在回答这个问题时向我解释了这一点。同样,没有什么可以阻止您将内核与感知器一起使用,这通常是更好的分类器。有关如何实现内核感知器的一些幻灯片(pdf),请参见此处

(内核)感知器和SVM之间的主要实际区别在于,感知器可以在线进行训练(即,随着新示例一次到达,它们的权重可以更新),而SVM则不能。有关是否可以在线培训SVM的信息,请参阅此问题。因此,尽管SVM通常是更好的分类器,但是感知器仍然是有用的,因为它们便宜且易于在不断获得新训练数据的情况下进行重新训练。


3
SVM可以在线进行培训。从对偶解中,您可以获取相应的原始数,并从中以随机方式更新权重。
Firebug


4

SVM:

minw2+Ci=1n(1yi(wxi+w0))+
感知
mini=1n(yi(wxi+w0))+

我们可以看到SVM具有与L2规范感知器几乎相同的目标。

w2

为什么感知器允许在线更新?如果您看到铰链损耗的梯度下降更新规则(SVM和感知器均使用铰链损耗),

wt=wt1+η1Ni=1NyixiI(yiwtxi0)

由于所有机器学习算法都可以看作是损失函数和优化算法的结合。

感知器仅是铰链损耗(损失函数)+随机梯度下降(优化)

wt=wt1+yy+1xt+1I(yt+1wtxt+10)

SVM可以看作是铰链损耗+ 2正则化(损失+正则化)+二次编程或其他更优化的算法,例如SMO(优化)。


-1

感知器是SVM的概括,其中SVM是具有最佳稳定性的感知器。因此,当您说感知器不尝试优化分隔距离时,您是正确的。

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.