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

学习SVM(一) SVM模型训练与分类的OpenCV实现 学习SVM(二) 如何理解支持向量机的最大分类间隔 学习SVM(三)理解SVM中的对偶问题 学习SVM(四) 理解SVM中的支持向量(Support Vector) 学习SVM(五)理解线性SVM的松弛因子

我们在开始接触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)(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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏瓜大三哥

DeepFace

检测→对齐→表示→分类 在文章中,通过3d模型改进了人脸对齐的方法。然后,通过基于4million人脸图像(4000个个体)训练的一个9层的人工神经网络来进行人...

2496
来自专栏机器学习原理

梯度下降算法

最优化算法的一种,解决无约束优化问题,用递归来逼近最小偏差的模型。 关于梯度的概念可参见以前的文章: 从方向导数到梯度 梯度下降法迭代公式为: ...

33111
来自专栏AI深度学习求索

深度学习基础学习 | 为什么要进行特征提取

在计算机中,图片以有序的多维矩阵进行存储,按颜色分为灰度图片用二维数组存储图片的像素值,和彩色图片用三维数组存储图片的三个通道颜色的像素值。

1922
来自专栏计算机视觉

空间金字塔池化Spatial pyramid pooling net,用于语义分割

这篇文章属于小笔记类型,了解空间金字塔的作用就好。 金字塔池化层有如下的三个优点,第一:他可以解决输入图片大小不一造成的缺陷。第二:由于把一个feature m...

3626
来自专栏机器学习、深度学习

人脸对齐--Dense Face Alignment

Dense Face Alignment ICCVW2017 http://cvlab.cse.msu.edu/project-pifa.html ...

5177
来自专栏贾志刚-OpenCV学堂

理解CNN卷积层与池化层计算

深度学习中CNN网络是核心,对CNN网络来说卷积层与池化层的计算至关重要,不同的步长、填充方式、卷积核大小、池化层策略等都会对最终输出模型与参数、计算复杂度产生...

2231
来自专栏深度学习艺术

深度神经网络反向传播(BP)算法应用技巧

深度神经网络学习算法的核心是误差反向传播(error back-backpropagation)。虽然其本质就是微积分的链式法则,但面对深度神经网络的某一具体层...

2399
来自专栏Pytorch实践

Pytorch实现CNN时间序列预测

本公众号曾经推出过PyTorch实现的LSTM时间序列预测,并开源了其源码。细心的童鞋可能发现了,我之前使用的LSTM是生成式模型,而不是使用判别式进行预测。换...

9457
来自专栏机器学习算法与理论

逻辑回归与梯度下降详解

逻辑回归 Sigmoid函数: ? Sigmoid函数 梯度: ? 梯度的表达式 这个梯度是指:沿着x方向移动 ? 个单位,沿着y方向移动 ? 个...

2909
来自专栏null的专栏

简单易学的机器学习算法——EM算法

一、机器学习中的参数估计问题 image.png 二、EM算法简介     在上述存在隐变量的问题中,不能直接通过极大似然估计求出模型中的参数,EM算法是一种解...

1.7K5

扫码关注云+社区

领取腾讯云代金券