SVM | 支持向量机原理讲解(二)

栏目: 数据库 · 发布时间: 5年前

SVM | 支持向量机原理讲解(二)

译者 | Ray

编辑 | 安可

一、 线性可分的支持向量机存在的问题

在支持向量机一中,我们介绍了当数据集是线性可分的时候,我们可以使用线性可分的支持向量机将数据进行分类( 由于隔了很长时间才更新,因此忘记了支持向量机一的读者可以回看支持向量机一讲解 )。但是,在现实生活中,还存在着很多数据是线性不可分的,或者说本来是线性可分的数据因为存在一些异常点,使得不能线性划分。

第一种情况如果数据是不能线性可分的话,线性可分的支持向量机是不适用。而第二种情况下,我们通过下图发现,如果在没有A点的情况,我们学到的超平面是黑线所示,但是由于A点的存在,模型会尽可能的拟合所有训练样本点,使得学习到的超平面就是红线所示。但我们可以很清楚的发现黑线是一个更好的超平面,能够将两类样本点分的更开,从而有更好的泛化能力。 因此当有异常点的存在时会很大程度影响模型的泛化能力。

SVM | 支持向量机原理讲解(二)

二、 软间隔最大化的线性支持向量机问题定义

在线性可分的支持向量机中,是需要保证支持向量到超平面的函数间隔大于等于1的(如果忘记了可以回去查看支持向量机一讲解)。为了解决这类数据问题,使得支持向量机有更强的泛化能力,引入了软间隔最大化的支持向量机。所谓的 软间隔就是说为每个样本点引入了一个松弛变量ε,这样支持向量到超平面的函数间隔不需要严格保证大于等于1,可以有ε的弹性范围。 即约束条件就变成:

SVM | 支持向量机原理讲解(二)

当然这个弹性范围不是随便给的,如果样本需要这个弹性范围,那就必须支付一定的代价 ,因此目标函数会加上每个样本点的这个弹性范围的代价,使得目标函数变成:

SVM | 支持向量机原理讲解(二)

其中,C为惩罚参数,C值越大说明模型更加关注这个弹性范围带来的代价,对误分类的样本点的惩罚就越大。

三、 优化软间隔最大化的支持向量机

和线性可分的支持向量机的优化方式类似,我们还是将目标函数以及约束条件使用拉格朗日函数转化为无约束问题:

SVM | 支持向量机原理讲解(二)

其中μ和α均为拉格朗日乘子,且α_i≥0,μ_i≥0。

那么我们现在要优化的目标函数是:

SVM | 支持向量机原理讲解(二)

当满足KKT条件时,以上问题可以等价于求解其对偶问题。

SVM | 支持向量机原理讲解(二)

因此我们可以先求对于w、b、ε的极小值,然后再求拉格朗日乘子α和μ。

L对于w、b、ε求偏导,得:

SVM | 支持向量机原理讲解(二)

得到以上三个式子,我们就可以将目标函数L进行优化,消除w和b,得:

SVM | 支持向量机原理讲解(二)

现在得到的优化目标函数为:

SVM | 支持向量机原理讲解(二)

细心的读者可能发现这跟线性可分的支持向量机的式子只是约束条件有不一样,其他都时一样的。另外,因为目标函数中已经没有了μ参数,因此约束条件可以将后面三个约束条件进行合并,得到进一步的优化目标函数:

SVM | 支持向量机原理讲解(二)

同样的,求解α还是使用SMO算法即可。假设现在已经求得了一个最优解α_*,那么我们就可以进一步得到w、b的最优解w_*和b_*,即:

SVM | 支持向量机原理讲解(二)

其中,(x_s, y_s)是任一个支持向量对应的样本。每一个支持向量对应的样本就可以得到一个b_*,因此最优解b_*也可以是所有支持向量对应的b的平均值。

求得这些参数之后,我们就可以得到分离超平面:

SVM | 支持向量机原理讲解(二)

最终的分类决策函数:

SVM | 支持向量机原理讲解(二)

四、 KKT 条件

上一节中目标函数的优化是通过求解对偶问题求得的,为了保证对偶问题的解就是原问题的解,需要满足以下的KKT条件:

SVM | 支持向量机原理讲解(二)

五、 支持向量

因为支持向量是跟目标函数有关的样本点,因此,在软间隔最大化的支持向量机中,支持向量要比线性可分的支持向量机的情况复杂一些,支持向量或者在间隔边界上,或者在边界内,或者被误分到超平面的另一边。

如果α = 0 , 那么样本点在间隔边界上或者被正确分类,因此在间隔边界上的点是支持向量; 如果0<α ,那么样本点是在间隔边界,因为为了保证ε_i=0,y_i*(w’*x_i+b)-1=0,即样本点就在间隔边界,因此这些点都是支持向量; 如果α=C ,则μ=0,此时ε_i≠0.因为当ε_i≠0会带来一定惩罚代价,因此会尽量保证其等于0,如前面两种情况。 但是现在已经没法保证了, 因为要保证u*ε=0,u等于0说明ε没法保证。 而当ε_i≠0说明这可能是一个异常点了,并且其也是支持向量。 当0≤ε_i<1,那么点还是被正确分类,只是落在了超平面和间隔边界之间,如下图样本点2和4; 当ε_i=1,那么点在超平面上,无法正确分类; 当ε_i>1,那么点被误分类,如下图样本点1和3:

SVM | 支持向量机原理讲解(二)

软间隔的支持向量

六、 合页损失函数(hinge loss)

线性支持向量机的损失函数还有另一种解释,也是大家通常说支持向量机的损失函数时会提及的,原因可能是它有个专业学名,而上面说的软间隔最大化,不是一个学名。Hinge loss的形式如下:

SVM | 支持向量机原理讲解(二)

其中有:

SVM | 支持向量机原理讲解(二)

其实hingeloss和软间隔最大化中提及的是等价的。

当令:

SVM | 支持向量机原理讲解(二)

hingeloss就可以写成:

SVM | 支持向量机原理讲解(二)

若取λ = 1/ 2C,则:

SVM | 支持向量机原理讲解(二)

可以发现这个形式跟软间隔最大化中的损失函数是等价的。

hingeloss的图形如下图:

SVM | 支持向量机原理讲解(二)

合页损失函数

至此我们就已经将软间隔最大化的支持向量机讲解完毕。如果还记得在一开始的时候说到的第一种情况线性支持向量机是不适用于非线性可分的话,你就会发现刚才长篇大论说都是当有异常点存在的时候如何得到一个泛化能力更强的线性支持向量机。那么下一篇文章将会讲解支持向量机如何解决非线性数据分类问题,这才是支持向量机强大之处,完美适用于不同类型的数据。敬请关注!

长按扫描下方小程序码,互动提问 

SVM | 支持向量机原理讲解(二)

你也许还想

    SVM | 支持向量机原理讲解(一)

      干货 | 近期热点机器学习git项目

      Colab笔记本能用英伟达Tesla T4了,谷歌的羊毛薅到酸爽

      比CNN表现更好,CV领域全新卷积操作OctConv厉害在哪里?

欢迎扫码关注:

SVM | 支持向量机原理讲解(二)

觉得赞你就点 在看 ,多谢大佬


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

Introduction to Programming in Java

Introduction to Programming in Java

Robert Sedgewick、Kevin Wayne / Addison-Wesley / 2007-7-27 / USD 89.00

By emphasizing the application of computer programming not only in success stories in the software industry but also in familiar scenarios in physical and biological science, engineering, and appli......一起来看看 《Introduction to Programming in Java》 这本书的介绍吧!

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

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具