学习SVM(四) 理解SVM中的支持向量(Support Vector)

栏目: 编程工具 · 发布时间: 6年前

内容简介:我们在开始接触SVM时肯定听到过类似这样的话,决定决策边界的数据叫做支持向量,它决定了margin到底是多少,而max margin更远的点,其实有没有无所谓。 然后一般会配一张图说明一下哪些是支持向量(Support Vector),这个图在之前的学习SVM(二) 如何理解支持向量机的最大分类间隔里面就有,这里不在重复贴了。但是问题的关键是,这些Support Vector是怎么被确定的呢? 在学习SVM(三)理解SVM中的对偶问题计算得到新的优化目标:注意这里的约束条件有n+1个,之后只需要根据Dat

我们在开始接触SVM时肯定听到过类似这样的话,决定决策边界的数据叫做支持向量,它决定了margin到底是多少,而max margin更远的点,其实有没有无所谓。 然后一般会配一张图说明一下哪些是支持向量(Support Vector),这个图在之前的学习SVM(二) 如何理解支持向量机的最大分类间隔里面就有,这里不在重复贴了。

但是问题的关键是,这些Support Vector是怎么被确定的呢? 在学习SVM(三)理解SVM中的对偶问题计算得到新的优化目标:

学习SVM(四) 理解SVM中的支持向量(Support Vector)
学习SVM(四) 理解SVM中的支持向量(Support Vector)

注意这里的约束条件有n+1个,之后只需要根据Data(x),Label(y)求解出满足条件的拉格朗日系数a,并将a带回求得w和b,于是就有了最后的决策边界。(w,b,x,y,a都是向量)

学习SVM(四) 理解SVM中的支持向量(Support Vector)

注意:在上面b的公式中,i=1,2,…,n。但是j却没有给值,这是因为j是任意一个支持向量都可以。

在这里对w和b的公式的推导做一个简短说明,w是通过拉格朗日求偏导后推出的;在学习SVM(二) 如何理解支持向量机的最大分类间隔中我们知道最大间隔为:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

那么支持向量到决策边界的距离为:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

同时根据点到直线的距离公式有:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

超平面(w,b)能够将训练样本正确分类,即对于

学习SVM(四) 理解SVM中的支持向量(Support Vector)

因此去掉绝对值可以得到关于b的公式。

而非支持向量的数据就在求解参数a,w,b的过程中,前面的参数w求得的结果会为0,这样就满足了之前的说法,只有支持向量在影响着决策边界的确定,举个例子:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

上图中有3个点,x1(3,3),x2(4,3),x3(1,1),对应的:y1=y2=1,y3=-1。 很显然x1和x3是两个支持向量,在决策平面的两侧,我们带入到上面的公式求解一下: 由于两个求和公式(n=3),所以括号里面的是项会有9个,可以理解为两个for循环嵌套啊(哈~哈~),但是显然这9项里面是有重复的,因为a1 a2 = a2 a1,所以最后会剩下6项: a1 a1,a2 a2,a3 a3,2 a1 a3,2 a1 a2,2 a2 a3,举个例子确定前面的系数: C a1 a2 = [(x1)(x2) y1 y2]a1 a2 C=2*(3,3)(4,3)(1)=2(12+9)=42

所以最后的结果如下:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

由约束条件得到:a3=a1+a2,带入到min中可以求得一个关于a1 和a2的函数:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

要求它的最小值,求偏导啊~

学习SVM(四) 理解SVM中的支持向量(Support Vector)

最后求解得到: a1 = 1.5 a2 = -1

而a2 = -1的点不满于a2>0的条件,所以最小值在边界上取得。边界情况要么是a1=0,要么是a2=0,于是: a1=0时,我们应该把a1的值往s对a2的偏导里面带入: a2=2/13 (满足条件) 此时:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

a2=0时,我们应该把a2的值往s对a1的偏导里面带入: a1=1/4 (满足条件) 此时:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

显然后面的结果更小,所以: a1 = 1/4 a2 = 0 a3 = 1/4

到这里就能验证上面的结论了,a1和a3是x1和x3的系数,x1和x3是支持向量,而x2不是,所以前面的系数是0。因为根据w求解公式,a2=0,所以x2对w权的最后取值没有影响,所以x2不是支持向量。

最后一步,带到上面的式子中求w,b:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

w1=w2=0.5 对于支持向量x1,计算b的值:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

对于非支持向量x2,计算b的值:

学习SVM(四) 理解SVM中的支持向量(Support Vector)

显然,由于b的公式由支持向量与决策平面的距离推导得到,所以x2的计算结果是错误的。 于是得到最后的决策边界为: 0.5x1+0.5x2+2=0

阅读原文


以上所述就是小编给大家介绍的《学习SVM(四) 理解SVM中的支持向量(Support Vector)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

产品设计思维

产品设计思维

王丁 / 机械工业出版社 / 2017-8-1 / 79

这是一本关于“产品设计思维与方法”方面的实战书籍。融合了笔者多年行为实践经验,以大量的图例和案例详细展现产品设计背后的真实思维与构建方法,全面系统地分析电子商务产品设计方案,从规划、架构、逻辑、原型等多个方面对电商平台的产品设计过程进行细致分享。 在互联网产品设计领域,设计理念与设计方法却是能持续复用的,只要你掌握了一套行之有效的互联网产品设计方法论与工具,那无论是从事什么样的行业,你都能快......一起来看看 《产品设计思维》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换