支持向量机(SVM)如何工作?


108

如何做一个支持向量机(SVM)的工作,并从什么其它线性分类,比如区分其线性感知器线性判别分析,或Logistic回归?*

(* 我在考虑算法的基本动机,优化策略,泛化能力和运行时复杂性



Answers:


126

支持向量机仅关注最难以区分的点,而其他分类器则关注所有点。

支持向量机方法的直觉是,如果分类器擅长进行最具挑战性的比较(图2中的B和A中的点彼此最接近),则分类器在进行简单比较时会更好(比较B和A中彼此远离的点)。

感知器和其他分类器:

通过一次获取一个点并相应地调整分界线来构建感知器。一旦所有点都分离,感知器算法就会停止。但是它可能会停在任何地方。图1显示了将数据分开的一堆不同的分隔线。感知器的停止标准很简单:“分离点并在达到100%分离时停止改进线”。没有明确告知感知器找到最佳分隔线。逻辑回归和线性判别模型的构建与感知器相似。

最佳分界线可以使最接近A的B点和最接近B的A点之间的距离最大化。这样做无需查看所有点。实际上,合并来自较远点的反馈可能会使直线偏离得太远,如下所示。

在此处输入图片说明

支持向量机:

与其他分类器不同,支持向量机被明确告知要找到最佳分隔线。怎么样?支持向量机搜索最接近的点(图2),将其称为“支持向量”(之所以称为“支持向量机”,是因为这样的事实:点就像向量,而最佳线“取决于”或由最接近的点“支持”。

找到最接近的点后,SVM会绘制一条连接它们的线(请参见图2中标记为“ w”的线)。通过进行矢量减法(点A-点B)来绘制此连接线。然后,支持向量机将最佳分隔线声明为将连接线平分(且垂直于)的线。

支持向量机更好,因为当您获得一个新样本(新点)时,您已经制作了一条线,使B和A彼此保持尽可能远的距离,因此不太可能溢出线进入对方的领土。

在此处输入图片说明

我认为自己是视觉学习者,并且在很长一段时间内都在支持向量机背后的直觉上作斗争。SVM分类器中名为对偶和几何的论文终于帮助我看到了光。那是我从那里得到图像的地方。


4
+1来自另一个视觉学习者!对于读者来说,我想指出的是,上图中明显的边界是基于已经转换的数据集。不是原始数据集。
金兹

读svm已有两年多的时间,今天了解了如何识别分隔线以及几件事。感谢您的明确答复。
user123

53

Ryan Zotti的答案解释了最大化决策边界的动机,carlosdc的答案与其他分类器相比有一些相似之处和不同之处。我将在此答案中简要介绍如何训练和使用SVM。

记号

在下文中,标量以斜体小写字母表示(例如y,b),带有粗体小写字母的向量(例如w,x)以及带有斜体大写字母(例如W)的矩阵。wT是的转置w,和w=wTw

让:

  • x是特征向量(即SVM的输入)。xRn,其中n是特征矢量的维数。
  • yÿ { - 1 1 }是类(即SVM的输出)。,即分类任务是二进制的。y{1,1}
  • w b和是SVM的参数:我们需要使用训练集来学习它们。b
  • (x(i),y(i)) i N是数据集中的样本。假设我们在训练集中有样本。ithN

在,可以表示SVM的决策边界,如下所示:n=2

在此处输入图片说明

类别的确定如下:y

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

可以更简洁地写为。y(i)(wTx(i)+b)1

目标

SVM旨在满足两个要求:

  1. SVM应该最大化两个决策边界之间的距离。从数学上讲,这意味着我们希望最大化定义的超平面与定义的超平面之间的距离。该距离等于。这意味着我们要解决。等效地,我们想要 。wTx+b=1wTx+b=1 22wmaxw2wminww2

  2. SVM还应该正确地对所有,这意味着x(i)y(i)(wTx(i)+b)1,i{1,,N}

这导致我们遇到以下二次优化问题:

wbw2sŤÿ一世wŤX一世+b1个一世{1个ñ}

这是硬利润的SVM,因为这个二次优化问题允许解决方案,前提是数据是线性可分离的。

通过引入所谓的松弛变量 可以放宽约束。请注意,训练集的每个样本都有其自己的松弛变量。这给我们带来了以下二次优化问题:ξ一世

wbw2+C一世=1个ñξ一世sŤÿ一世wŤX一世+b1个-ξ一世一世{1个ñ}ξ一世0一世{1个ñ}

这是软边距SVM。是一个超参数,称为误差项的惩罚。(C对具有线性核的SVM的影响是什么?以及确定SVM最佳参数的搜索范围?)。C

通过引入将原始要素空间映射到更高维度的要素空间的函数,可以增加更多的灵活性。这允许非线性决策边界。二次优化问题变为:ϕ

wbw2+C一世=1个ñξ一世sŤÿ一世wŤϕX一世+b1个-ξ一世一世{1个ñ}ξ一世0一世{1个ñ}

优化

二次优化问题可以转化为另一个名为拉格朗日对偶问题的优化问题(先前的问题称为primal):

最高αwbw2+C一世=1个ñα一世1个-wŤϕX一世+bsŤ0α一世C一世{1个ñ}

此优化问题可以简化为(通过将某些渐变设置为)为:0

最高α一世=1个ñα一世-一世=1个ñĴ=1个ñÿ一世α一世ϕX一世ŤϕXĴÿĴαĴsŤ0α一世C一世{1个ñ}

w不会显示为(如表示定理所述)。w=一世=1个ñα一世ÿ一世ϕX一世

因此,我们使用训练集的学习。α一世X一世ÿ一世

(供参考:为什么在安装SVM时会遇到双重问题?简短答案:更快的计算+允许使用内核技巧,尽管存在一些很好的方法来训练SVM,例如参见{1})

做出预测

一旦掌握了,就可以使用特征向量来预测新样本的类别,如下所示:α一世X测试

ÿ测试=标志wŤϕX测试+b=标志一世=1个ñα一世ÿ一世ϕX一世ŤϕX测试+b

的总和似乎是压倒性的,因为这意味着必须对所有训练样本求和,但是绝大多数为(请参阅为什么Lagrange乘法器对于SVM稀疏?),因此在实践中这不是问题。(请注意,可以构造所有特殊情况。) iff是一个支持向量。上面的插图有3个支持向量。一世=1个ñα一世0α > 0 α = 0 X α一世>0α一世=0X一世

内核把戏

可以看到,优化问题仅在内部乘积使用。将映射到内部乘积被称为一个内核,又名核函数,通常记为。ϕX一世ϕX一世ŤϕXĴX一世XĴϕX一世ŤϕXĴ kķ

可以选择以便有效地计算内积。这允许以低计算成本使用潜在的高特征空间。那就是所谓的内核技巧。为了使内核功能有效(即可与内核技巧一起使用),它应满足两个关键属性。有许多内核函数可供选择。作为附带说明,内核技巧可以应用于其他机器学习模型,在这种情况下,它们被称为“ 内核化”ķ

更进一步

关于SVM的一些有趣的QA:

其他连结:


参考文献:


2
嗨弗兰克,非常感谢您的回答。您介意解释为什么向量与SVM生成的超平面正交吗?以及如何计算两个决策边界之间的距离等于2w2w
tosik

3
除了这个不错的答案之外,我还想向您推荐该视频,它介绍了SVM背后的数学原理,并特别阐明了@tosik评论的问题youtube.com/watch?v=_PwhiWxHK8o
Nikolas Rieble

很好的答案。关于这一部分的一句话是: iff是一个支持向量。对于分类,求和实际上是在支持向量上(即)。X α 0α一世=0X一世α一世0
989年

13

我将重点介绍它与其他分类器的异同点:

  • 从感知器来看:SVM使用铰链损失和L2正则化,感知器使用感知器损失并且可以使用早期停止(或其他技术)进行正则化,但感知器中实际上没有正则化项。由于没有正则化项,因此感知器注定会受到过度训练,因此泛化能力可能会很差。优化是使用随机梯度下降完成的,因此非常快。从积极的方面来看,本文表明,通过使用稍有修改的损失函数进行早期停止,性能可以与SVM媲美。

  • 从逻辑回归:逻辑回归使用逻辑损失项,并且可以使用L1或L2正则化。您可以将逻辑回归视为生成朴素贝叶斯的判别兄弟。

  • 从LDA:LDA也可以看作是一种生成算法,它假定概率密度函数(p(x | y = 0)和p(x | y = 1)呈正态分布。当数据位于事实是正态分布,但是不利的一面是,“训练”需要对一个可能很大的矩阵求逆(当您具有许多特征时)。在等方差下,LDA变成QDA,对于正态分布数据,贝叶斯最优。假设满足,您确实不能做得更好。

在运行时(测试时间),一旦模型被训练,所有这些方法的复杂性是相同的,它只是在训练过程中找到的超平面和数据点之间的点积。


1
既然您在SVM方面似乎非常称职,请允许我澄清一下我的疑问:一旦找到最佳的分离超平面,我们将其用于什么?我们可以将SVM定义为一种方法,首先,选择最佳的超平面来正确地对数据点进行分类,其次,它使用该超平面来分割两个类别中的新数据点。对?(我对第二部分有些怀疑)
DavideChicco.it 2012年

1
@ DavideChicco.it是的,我们可以使用指标函数对新数据进行分类,这通常是分类器的主要目的。(不过,请不要相信我,我是新手)。
keyer 2014年

12

该技术基于绘制一条决策边界线,以便尽可能多地留给第一个正例和负例:

在此处输入图片说明

如上图所示,如果我们选择一个正交向量,使得我们可以为任何未知示例建立一个判定标准,以将其分类为以下形式的正值:uw=1个ü

wüC

对应于将投影放置在街道中间决策线之外的值。请注意。wü=üw

阳性样品的等效条件为:

(1)wü+b0

C=-b

我们需要和来制定决策规则,而到那里我们需要约束条件w ^bw

第一约束,我们要强加的是,对任何阳性样品, ; 对于负样本,为。在划分边界或超平面(中值)中,该值为,而在檐槽处的值为和:X+wX++b1个wX-+b-1个01个1

在此处输入图片说明

向量是权重向量,而是偏差wb


为了将这两个不等式放在一起,我们可以引入变量使得正例为,而负例为,并得出结论yiyi=+1yi=1

yi(xiw+b)10.

因此,我们确定该值必须大于零,但是如果该示例位于超平面(“装订线”)上,该平面可使决策超平面与支持向量的尖端(在本例中为线)之间的分离余量最大化,然后:

(2)yi(xiw+b)1=0

注意,这等效于要求yi(xiw+b)=1.

在此处输入图片说明


第二个约束:决策超平面到支持向量尖端的距离将最大化。换句话说,分离余量(“街道”)将最大化:

在此处输入图片说明

假设垂直于决策边界的单位向量,则两个“边界”正负示例之间存在差异的点积为“街道”宽度w

width=(x+x)ww

上面的方程和在槽(超平面上最大化分离)。因此,对于正面示例:,或 ; 对于否定示例:。因此,重新定义街道的宽度:X - Xx+x (xiw+b)1=0x+w=1bxw=1b

宽度=X+-X-ww=X+w-X-ww=1个-b--1个-bw(3)=2w

所以现在我们只需要最大化街道的宽度-即最大化 最小化或最小化:2ww

(4)1个2w2

这在数学上很方便。


所以我们要:

  1. 用约束最小化:X2

  2. ÿ一世wX一世+b-1个=0


由于我们要基于一些约束来最小化此表达式,因此我们需要一个拉格朗日乘数(返回方程式2和4):

(5)大号=1个2w2-λ一世[ÿ一世X一世w+b-1个]

差异化

大号w=w-λ一世ÿ一世X一世=0

因此,

(6)w=λ一世ÿ一世X一世

并针对区分b

大号b=-λ一世ÿ一世=0

这意味着我们有乘数和标签的零和积:

(7)λ一世ÿ一世=0

将方程式(6)插回方程式(5),

大号=1个2λ一世ÿ一世X一世λĴÿĴXĴ-λ一世ÿ一世X一世λĴÿĴXĴ-λ一世ÿ一世b+λ一世

根据等式(7),倒数第二项为零。

因此,

(8)大号=λ一世-1个2一世Ĵλ一世λĴÿ一世ÿĴX一世XĴ

等式(8)是最终的拉格朗日方程。

因此,优化取决于示例对的点积。

回到上面的等式(1)中的“决策规则”,并使用等式(6):

(9)λ一世ÿ一世X一世ü+b0

将是新向量的最终决策规则ü


没什么原创的……只是我自己在更入门级别的笔记。基本上是从麻省理工学院的这段录像带我自己的插图。如果有错误,请告诉我。要获得有见地的答案,以及更多详细信息,请访问专家级(Franck的职位等)。
安东尼帕雷拉达

我该如何计算b呢?
mike

1
@mike其中是支持向量的索引集你可以在这里找到它。b=ÿs-小号αÿXXs小号α一世>0
安东尼·帕雷拉达

@AntoniParellada令人惊叹的答案Antoni非常感谢-但是您是否不缺少对偶问题和KTT条件的一部分?
Xavier Bourret Sicotte

@XavierBourretSicotte我暂时无法使用它。请考虑针对这些问题写一个替代答案,如果您这样做,请告诉我,以便我们了解并可以投票。
安东尼·帕雷拉达

3

对偶性和KTT条件的一些评论

原始问题

从方程式和之间的@Antoni帖子中选取,回想一下我们最初的或原始的优化问题的形式为:45

wbFwb=wb 1个2||w||2sŤ  G一世wb=-ÿ一世wŤX一世+b+1个=0

拉格朗日法

拉格朗日乘数的方法使我们可以将约束优化问题转换为以下形式的无约束的一种:

大号wbα=1个2||w||2-一世α一世[ÿ一世wŤX一世+b-1个]

其中 被称为拉格朗日和被称为拉格朗日乘数大号wbαα一世

我们对拉格朗日算式的原始优化问题如下:(请注意,使用,并不是最严格的,因为我们在这里也应该使用和 ...)一世ñ一种X信息SUP

wb最高α大号wbα

双重问题

@Antoni和Patrick Winston教授在推导中所做的假设是,优化函数和约束条件满足某些技术条件,因此我们可以执行以下操作:

wb最高α大号wbα=最高αwb大号wbα

这使我们可以相对于和取的偏导数,等于零,然后将结果插回到拉格朗日方程的原始方程式中,从而生成等效项形式的双重优化问题大号wbαwb

最高αwb大号wbα最高α一世α一世-1个2一世Ĵÿ一世ÿĴα一世αĴ<X一世XĴ>sŤ α一世0sŤ 一世α一世ÿ一世=0

对偶与KTT

无需过多的数学技巧,这些条件就是对偶性和Karush Kuhn Tucker(KTT)条件的组合,使我们能够解决对问题而不是原始问题,同时确保最优解是相同的。在我们的情况下,条件如下:

  • 主要目标和不等式约束函数必须是凸的
  • 等式约束函数必须是仿射的
  • 约束必须严格可行

然后存在,它们是原始问题和对偶问题的解决方案。此外,参数满足以下KTT条件:wαwα

w一世大号wαβ=0一种β一世大号wαβ=0α一世G一世w=0CG一世w0dα一世0Ë

此外,如果某些满足KTT解,那么它们也是原始和对偶问题的解决方案。wα

上面的等式特别重要,被称为对偶互补条件。这意味着如果则,这意味着约束是活动的,即,它具有相等性而不是不相等性。这是安东尼推导中等式背后的解释,其中不等式约束变为等式约束。Cα一世>0G一世w=0G一世w02

直观但非正式的图表

在此处输入图片说明

资料来源


2
非常感谢你。我读得很快,以后又花更多的时间再读,但听起来不错,并触及了答案中的遗漏之处。
安东尼帕雷拉达
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.