机器学习-SVM

简介:

支持向量机(SVM)是一种二分类的监督学习模型,他的基本模型是定义在特征空间上的间隔最大的线性模型。他与感知机的区别是,感知机只要找到可以将数据正确划分的超平面即可,而SVM需要找到间隔最大的超平面将数据划分开。所以感知机的超平面可以有无数个,但是SVM的超平面只有一个。此外,SVM在引入核函数之后可以处理非线性问题。

SVM根据数据的不同可以分为以下三种形式:

1.线性可分支持向量机,也叫做硬间隔支持向量机,处理的数据是线性可分的,通过硬间隔最大化来学习一个线性可分的模型。

2.线性支持向量机,也叫做软间隔支持向量机,当数据近似线性可分时,通过引入松弛因子,软间隔最大化学习一个线性可分的模型。

3.非线性支持向量机,当数据线性不可分时,通过引入核函数将数据映射到高维空间后,学习得到一个非线性支持向量机。

线性可分支持向量机

考虑一个二分类问题,当数据可以在分布空间中通过一个超平面将正负样例分割开,一面为正类,一面为负类,我们就称数据是线性可分,这个分离超平面的方程为:w*x+b=0。而在线性可分数据中存在着无数个超平面可以将数据分割开(参考感知机),我们要找到其中最好的超平面,这个超平面不仅可以将训练集数据很好的划分开,还有更好的泛化能力。下图中很显然直线B是最好的一条分割线,所以选择间隔最大的一个超平面作为我们需要的最优的超平面。

图1

求解超平面w*x+b=0就是求w和b,以及对应的分类决策函数f(x)=sign(w*x+b),称之为线性可分支持向量机。

根据点到直线距离公式:

图2

其中A为w向量,C为b,因为超平面的y值为0,所以对于支持向量机的点到超平面距离可以写作:

图3

又因为w*x+b的边界为正负1,两个边界到超平面的距离和γ等于2倍的r,所以图3又可以写作:

图4

这就是几何间隔。下图是支持向量机的各个概念图:

图5

当数据点为正类时,其y=+1,w*x+b>=+1,当数据点为负类时y=-1,w*x+b<=-1,所以y*(w*x+b)始终大于等于1,其中y*(w*x+b)成为函数间隔。

要找到间隔最大的超平面,也就是要找到满足y*(w*x+b)>=1约束条件的参数w和b,使得γ最大。即:

图6

显然为了最大化间隔,仅需最大化||w||,这等价于最小化||w||的2次方,所以可以重写为:

图7

其中目标函数和约束函数都是连续可微的凸函数,并且目标函数是二次函数,约束函数是仿射函数,所以该约束问题是一个凸二次规划问题。

求解凸二次规划约束问题常用的办法是引入拉格朗日乘子,通过求解对偶问题得到原始问题的解。这就是线性可分支持向量机的对偶算法。

首先定义拉格朗日函数,对每个不等式约束引入拉格朗日乘子αi>=0,i=1,2,3....n.拉格朗日函数为:

图8

这样就把带有约束问题的求极值问题转为无约束求极值问题,接下来根据拉格朗日对偶性求解原始问题的对偶问题:

图9

以上就是求解线性可分支持向量机的全部过程,求解得到w和b之后就可以得到分类超平面:

图10

以及分类决策函数:

图11

根据图9中w*和b*的结果可以看出,w*和b*只依赖于αi>0对应的(xi,yi)样本点,这些样本点称为支持向量。

线性支持向量机

当数据近似线性可分时,也就是说数据中存在噪声点,我们通过引入松弛因子,使函数间隔加上松弛因子ξ后大于等于1,这样约束条件就变成:

图12

对于每个松弛因子ξi需要支付一个代价,所以目标函数也就是代价函数变为:

图13

其中C>0称为惩罚参数,是超参数需要我们手动调参,C值越大时对误分类的惩罚增大,支持向量机的间隔宽度越窄,C值越小时对误分类的惩罚越小,支持向量机的间隔宽度越宽。而ξ的几何意义代表着,误分类数据点离正确分类一侧的距离,是几何距离。

那么这个松弛因子ξ是怎么来的呢?因为数据是近似可分的存在着许多噪音点,所以当计算代价函数时,这些误分类点要算入代价函数中去。这些误分类点的函数间隔y*(w*x+b)<=-1,所以代价函数可以写成带有0/1损失函数的集合函数,就是当数据点的函数间隔减去1小于0的话(误分类点),需要计算入代价函数,数据点的函数间隔减去1大于0的话(正确分类点),不需要计算入代价函数:

图14

但是0/1损失函数的数学性质不好,非凸非连续性。所以一般使用他的代替损失函数“hinge损失max(0,1-z)”代替它,则代价函数也就是目标函数变为:

图15

用ξ替代max部分,就是ξ<=1-y*(w*x+b),所以带有约束条件的目标(代价)函数就变为下面的形式:

图16

所以SVM的损失函数也可以看作是带有L2正则项(||w||^2)的hinge损失函数。以上就是线性支持向量机的带有约束条件的优化目标函数,求解w和b的过程与线性可分的方法一致,都是通过引入拉格朗日乘子,这里不再重复。其中一些列需要满足的约束条件称为KKT条件。

非线性支持向量机

当数据样本非线性可分时,也就是在当前的数据空间内(或者说当前维度内)无法找到一个超平面将数据分割开,那么需要我们将数据从当前的维度映射到更高维度后,使数据变成线性可分的,而将数据映射到高维的函数称之为核函数。

为什么在SVM求解带有约束条件的最优化问题时我们使用引入拉格朗日乘子方法,一是因为求解简单,二是可以很方便的引入核函数K(x,z)。

通过引入核函数之后,对偶问题的目标函数就变成:

图17

最后求解出w*和b*之后的决策分类函数:

图18

这样通过核函数的引入,可以用求解线性支持向量机的方法求解非线性支持向量机。学习是隐式的,不是了解核函数是如何计算以及数据到底被映射到哪一维空间的,但是需要我们手动的选择核函数。常用的核函数有:

多项式核:

图19

高斯核(径向基核):

图20

线性核,sigmoid核以及其他核函数等。通常使用先验知识或者交叉验证的方式选择核函数,但是如果无先验知识的情况下,一般选择高斯核。为什么选择高斯核呢?因为可以将数据映射到无穷维空间。

SMO序列最小最优化

该学习方法是为了简单求解SVM中的参数的一个算法,并不是很重要(调包侠^-^),所以没有很详细的看,以后有时间看完再更新到本文中。

待更新。。

参考书籍:

《统计学习方法》李航 著

《机器学习》 周志华  著

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352