支持向量机(SVM)(五)--软间隔

摘要:
当我们在上一节中谈到线性SVM时,文章末尾提到,当线性是可分离的时,我们可以找到一个支持向量来获得b,但当出现以下示例时,一些异常点导致了线性不可分割性。在这种情况下,SVM提出了一个软区间。与硬区间相比,线性SVM被简单地视为硬区间。那么,从超平面一侧的样本到超平面的函数距离至少为1。当减去$xi$时,这意味着允许一些样本穿过支持向量并开始朝向另一侧$xi$也可以理解为当它位于另一侧时,从离群值到支持向量的函数距离。

上一节讲线性SVM时,文末提到在线性可分的情况下,找到一个支持向量,可求得b

但是当出现下图实例时,一些异常点导致的线性不可分

支持向量机(SVM)(五)--软间隔第1张

针对这种情况SVM提出了软间隔(soft margin),相对于硬间隔来说,简单将线性SVM看做硬间隔。

回顾硬间隔时优化目标:

min $frac{1}{2}left | w_{2} ight |_{2}^{2}$ 

 $s.t y_{i}(wcdot x_{i}+b)≥1$

在软间隔中,我们给每个样本点的函数距离减去了一个松弛变量 slack variable):

$y_{i}(wcdot x_{i}+b)≥1-xi $

且$xi≥0$


Tips:

如何理解软间隔的几何含义?

原本我们希望有所的点到超平面的几何距离≥1,最后简化为函数距离。(这里不懂回顾线性SVM

那么在超平面一侧的样本到超平面的函数距离最小为1,当减去$xi$时,表明允许部分样本跨越支持向量,向着另一侧出发。

$xi$还可以理解为离群点在另一侧时,该点到支持向量的函数距离。这样就引入了线性不可分问题。

支持向量机(SVM)(五)--软间隔第2张

文末有详细的讨论过程。


但是这个松弛变量的加入是有代价的,我们在优化目标中加入了惩罚项(这里惩罚项可以看做是正则化)

min $frac{1}{2}left | w_{2} ight |_{2}^{2}+Csum xi _{i}$ 

 $s.t y_{i}(wcdot x_{i}+b)≥1-xi$

   $xi≥0$

这里C>0,C越大表示我们对误分类惩罚越大,C可以根据样本点中重要程度调整。

 优化目标函数:

$L(w,b,xi ,alpha ,mu )=frac{1}{2}left | w ight |_{2}^{2}+Csum xi _{i}-sum alpha _{i}left [ y_{i}(wcdot x_{i}+b)-1+xi _{i} ight ]-summu _{i} xi _{i}$

其中$mu _{i}>0, alpha _{i}>0$.(此处为什么大于零不懂去看KKT条件

 优化目标变成:

支持向量机(SVM)(五)--软间隔第3张

和线性SVM一样,对$w,b,xi $求偏导

$frac{partial L}{partial w}=0Rightarrow w = sum a_{i}y_{i}x_{i}$

$frac{partial L}{partial b}=0Rightarrow b = sum a_{i}y_{i}$

$frac{partial L}{partial xi }=0Rightarrow C-alpha _{i}-mu _{i}Rightarrow C=alpha _{i}+mu _{i}$

带入L中,推导过程如下图(又是不知羞耻的盗图QAQ):

支持向量机(SVM)(五)--软间隔第4张

发现一件神奇的事情,这里最后的化解结果和线性SVM一模一样,当然总得有不一样的地方,就是约束条件

现在的优化目标如下:

$underset{a}{max}=-frac{1}{2}sum sum a_{i}a_{j}y_{i}y_{j}x_{i}cdot x_{j}+sum a_{i}$

         $s.t sum a_{i}y_{i}=0       (1)$

           $C=alpha _{i}+mu _{i}    (2)$

           $mu _{i}>0, alpha _{i}>0 (3)$

由约束条件2和3可以得到$0leqslant alpha _{i}leqslant C$

最后的优化目标成为:

$underset{a}{min}=frac{1}{2}sum sum a_{i}a_{j}y_{i}y_{j}phi(x_{i}) cdotphi(x_{j})-sum a_{i}$

        $s.t sum a_{i}y_{i}=0$

        $0leqslant alpha _{i}leqslant C$

与线性SVM相比仅仅多了一个约束条件$0leqslant alpha _{i}leqslant C$,然后根据SMO算法得到$alpha _{i}$,最后求w,b。

对松弛变量的简单理解:

在$L(w,b,xi ,alpha ,mu )=frac{1}{2}left | w ight |_{2}^{2}+Csum xi _{i}-sum alpha _{i}left [ y_{i}(wcdot x_{i}+b)-1+xi _{i} ight ]-summu _{i} xi _{i}$中,

根据软间隔最大化时KKT条件的对偶互补条件

支持向量机(SVM)(五)--软间隔第5张

(下图与文中Tips中的图不一样的地方是这里用的是离群点的几何距离)

支持向量机(SVM)(五)--软间隔第6张

 参考:

http://www.cnblogs.com/pinard/p/6100722.html

https://www.bilibili.com/video/av23933161/?p=26

免责声明:文章转载自《支持向量机(SVM)(五)--软间隔》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇rabbitMq无法消费发送的q的问题PHP获取目录下面所有文件和文件夹下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

线性支持向量机 (3)

线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,因为这时上述方法中的不等式约束并不能都成立,因此这时候需要将硬间隔最大化,使其变成软间隔最大化。 假定给定特征空间上的训练数据集:T={(x1,y1),(x2,y2),...(xn,yn)},xi为第i个特征向量,yi为xi的类标记,一般情况下,线性不可分的数据主要在于存在部分特异点,除去这...

libsvm代码阅读:关于svm_train函数分析(转)

在svm中,训练是一个十分重要的步骤,下面我们来看看svm的train部分。 在libsvm中的svm_train中分别有回归和分类两部分,我只对其中分类做介绍。 分类的步骤如下: 统计类别总数,同时记录类别的标号,统计每个类的样本数目 将属于相同类的样本分组,连续存放 计算权重C 训练n(n-1)/2 个模型 初始化nozero数组,便于统计SV /...

Halcon学习笔记之支持向量机(一)

例程:class_overlap_svm.hdev 说明:这个例程展示了如何用一个支持向量机来给一幅二维的图像进行分类。使用二维数据的原因是因为它可以很容易地联想成为区域和图像。本例程中使用了三个互相重叠的类(由二维平面三个不同颜色的像素点集组成)。三类不同颜色的像素点作为样本,将那些样本代入支持向量机进行训练。选取像素在二维平面的坐标作为特征向量,使...

PythonOpencv-分类器—SVM,KNearest,RTrees,Boost,MLP

原文链接:http://blog.csdn.net/gjy095/article/details/9243153 上一篇文章,不是很详细,这一篇解释的清晰些,请访问原始链接。 Rtrees介绍!参考链接:http://docs.opencv.org/modules/ml/doc/random_trees.html Opencv提供了几种分类器,例程里通过字...

超详细SVM(支持向量机)知识点

原地址:https://zhuanlan.zhihu.com/p/76946313 一. 简单概括一下SVM: SVM 是一种二类分类模型。它的基本思想是在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类,具体来讲,有三种情况(不加核函数的话就是个线性模型,加了之后才会升级为一个非线性模型): 当训练样本线性可分时,通过硬间隔最大化,学习一个线性...

线性支持向量机(1)

支持向量机的学习策略就是间隔最大化,形式转化为求解凸二次规划问题。该算法就是求解凸二次规划的最优化算法。 当训练数据线性可分时候,通过硬间隔最大化,学习线性分类器,称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,学习线性分类器,称为软间隔最大化;当数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。 给定特定空间的训练数...