内容简介:我们在开始接触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中的对偶问题计算得到新的优化目标:
注意这里的约束条件有n+1个,之后只需要根据Data(x),Label(y)求解出满足条件的拉格朗日系数a,并将a带回求得w和b,于是就有了最后的决策边界。(w,b,x,y,a都是向量)
注意:在上面b的公式中,i=1,2,…,n。但是j却没有给值,这是因为j是任意一个支持向量都可以。
在这里对w和b的公式的推导做一个简短说明,w是通过拉格朗日求偏导后推出的;在学习SVM(二) 如何理解支持向量机的最大分类间隔中我们知道最大间隔为:
那么支持向量到决策边界的距离为:
同时根据点到直线的距离公式有:
超平面(w,b)能够将训练样本正确分类,即对于
因此去掉绝对值可以得到关于b的公式。
而非支持向量的数据就在求解参数a,w,b的过程中,前面的参数w求得的结果会为0,这样就满足了之前的说法,只有支持向量在影响着决策边界的确定,举个例子:
上图中有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
所以最后的结果如下:
由约束条件得到:a3=a1+a2,带入到min中可以求得一个关于a1 和a2的函数:
要求它的最小值,求偏导啊~
最后求解得到: a1 = 1.5 a2 = -1
而a2 = -1的点不满于a2>0的条件,所以最小值在边界上取得。边界情况要么是a1=0,要么是a2=0,于是: a1=0时,我们应该把a1的值往s对a2的偏导里面带入: a2=2/13 (满足条件) 此时:
a2=0时,我们应该把a2的值往s对a1的偏导里面带入: a1=1/4 (满足条件) 此时:
显然后面的结果更小,所以: a1 = 1/4 a2 = 0 a3 = 1/4
到这里就能验证上面的结论了,a1和a3是x1和x3的系数,x1和x3是支持向量,而x2不是,所以前面的系数是0。因为根据w求解公式,a2=0,所以x2对w权的最后取值没有影响,所以x2不是支持向量。
最后一步,带到上面的式子中求w,b:
w1=w2=0.5 对于支持向量x1,计算b的值:
对于非支持向量x2,计算b的值:
显然,由于b的公式由支持向量与决策平面的距离推导得到,所以x2的计算结果是错误的。 于是得到最后的决策边界为: 0.5x1+0.5x2+2=0
以上所述就是小编给大家介绍的《学习SVM(四) 理解SVM中的支持向量(Support Vector)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring in Action
Craig Walls / Manning Publications / 2011-6-29 / USD 49.99
Spring in Action, Third Edition has been completely revised to reflect the latest features, tools, practices Spring offers to java developers. It begins by introducing the core concepts of Spring and......一起来看看 《Spring in Action》 这本书的介绍吧!