SVM 和感知器之间的区别

机器算法验证 机器学习 支持向量机 内核技巧
2022-01-25 18:00:12

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

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

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

3个回答

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

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

支持向量机: 感知器

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

我们可以看到,SVM 与 L2 正则化感知器的目标几乎相同。

由于目标不同,我们对这两种算法也有不同的优化方案,从可以看出,这是使用二次规划来优化 SVM 的关键原因。w2

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

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

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

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

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

而 SVM 可以看作是铰链损失 + l2 正则化(损失 + 正则化)+ 二次规划或其他更高级的优化算法,如 SMO(优化)。

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