第六章 支持向量机

今天学著名的SVM——支持向量机
6.1 间隔与支持向量
给定训练样本集D,样本标记yi范围是{-1,+1}。看下面的图:
这里写图片描述
中间的直线就是我们的目标,希望找到一个超平面能完美的把正反例划分开。
其实我们看到图中的那么多线似乎都划分的不错,没有错误。但是哪一条更好呢?我们认为中间加粗的更好,因为我们想啊,它是距离正反例都相对较远,一旦训练集样本变化,数据发生扰动,它的划分效果受影响最小,鲁棒性最好。

在样本空间中,划分超平面这么描述:
这里写图片描述

w是法向量(决定方向),b是位移项(决定与原点距离)。
任意点到超平面距离:
这里写图片描述

我们说这个超平面正确分类了,依据是:
这里写图片描述

这个>=1和<=1的1是人为定的。
我们结合上面的分类图来看,正例反例都有很多点,只要离超平面最近的几个点都能分类正确,就意味着所有都分类正确。这几个点使得上面的不等式等号成立,被叫做“支持向量”。
两个异类支持向量到超平面距离和:
这里写图片描述

这个很容易推导是吧。
这个距离和叫做“间隔”。
我们总结一下,现在我们的任务是什么?是这个:
这里写图片描述

s.t.意思是要满足后面这个不等式的条件。这个不等式是吧前面判断依据两式揉在一起,没什么说的。
这个max式子是什么意思呢?就是我们提到,2/∥w∥是两个异类支持向量到超平面距离和,这个是最“危险”的点是不是?它们是最容易分类错误的。那么这距离和越大是不是越安全?所以我们的目标就是满足这个不等式前提下,让这个值取最大。
(补充一下吧,我觉得周志华这部分讲的不太清楚,说点吴恩达的。
这里写图片描述
这个叫点到超平面的“函数距离”。
归一化后得到几何间隔:
这里写图片描述

我们令这里写图片描述
(其实就是支持向量的几何间隔)
并且令||w||=1(这样函数间隔和几何间隔相等)。
此时我们的任务可以写成这样:
这里写图片描述
意思是所有点的几何间隔都保证大于支持向量的几何间隔,然后求其最大值。
给他变个形:
这里写图片描述

我们知道,w和b同时扩大或缩小相同倍数对几何间隔是没有影响的。但是为了我们最后求得一个明确的解,我们规定:这里写图片描述=1。也就是函数间隔为1。
再这么一整理,是不是就变成了周志华的式子,只不过目标函数系数不一样。

最后,2/||w||求最大等价于||w||^2求最小,所以目标函数整理成:
这里写图片描述

这就是SVM的基本型。

6.2 对偶问题
下一步就是求解。这个目标函数本身是个凸二次规划,可以用现成的优化算法包计算,这里讲一个更高效的办法:对偶问题

该问题的拉格朗日函数:
这里写图片描述

其中 αi是拉格朗日乘子,αi≥0。

我们令:
这里写图片描述

我们可以证明,当原始问题的约束条件满足时,θ(w)等于目标函数。
因此我们把目标目标函数转化为:
这里写图片描述

这个还是原始问题对不对,没变化。
一般来说,这个形式不太好求,我们引入对偶问题:
这里写图片描述

是的,原问题的对偶问题只是把max 和min位置交换了。
一般有这么一个关系:
d∗≤p∗
就是对偶问题的解不大于原始问题(可以举例子证明)
那如何相等呢?——满足KKT条件的情况下。
KKT条件:
这里写图片描述

第一个是不等式约束;第二个是原始问题条件;第三个是互补松弛条件。

如此一来,有了KKT条件保障,我们的任务转化成求解对偶问题:
这里写图片描述

第一步求这里写图片描述

让L分别对w和b的偏导为0,可得:
这里写图片描述

将其带回L的表达式,得到:
这里写图片描述=这里写图片描述

然后对其求最大值,得到完整的对偶问题:
这里写图片描述

现在目标就是要解出α,一旦α解出,顺水推舟求出w和b,得到模型:
这里写图片描述

怎么求α呢?这是一个二次规划问题,如果用二次规划算法求解,可行,但样本一多,开销增大可怕。所以提一个SMO算法:
按照坐标上升的思路,我们首先固定除α1以外的所有参数,然后在上求极值。等一下,这个思路有问题,因为如果固定α1以外的所有参数,那么α1将不再是变量(可以由其他值推出),因为问题中规定了
这里写图片描述
因此,我们需要一次选取两个参数做优化,比如α1和α2,此时α2可以由α1和其他参数表示出来。这样回带到W中,W就只是关于α1的单变量二次规划问题了,可解。

α确定后,得到w:
这里写图片描述

求b之前我们先看一个有意思的地方:
KKT条件里
这里写图片描述
αi>=0。试分析:若αi=0,则该样本不会在最后模型计算中出现;如αi>0,则yi*f(xi)=1。这个不就是支持向量的点吗?所以这是SVM一个重要的性质:
训练完后,大部分训练样本不保留,最终模型只和支持向量有关,哈哈。

回到求解b:
这里写图片描述

6.3 核函数
在前面的讨论,我们都是假设训练样本是线性可分的。如果不是线性可分的呢?即在原始样本空间找不到一个能正确划分两类样本的超平面呢?比如异或问题:
这里写图片描述

这该怎么办呢?可以类比一下:一条直线上同一坐标处有两个蚂蚁,你能分开吗?不能。那我把一维映射到二维呢?把一只蚂蚁拎起来,是不是就分开了?
因此解决办法是,把样本从原始空间映射到一个更高维的特征空间,样本在这个特征空间线性可分。
令ϕ(x)表示样本x映射后的特征向量。
所以原模型可表示为:
这里写图片描述
原来的目标函数变成:
这里写图片描述

对偶问题变成:
这里写图片描述
这里写图片描述

涉及计算这里写图片描述,这是特征向量求内积。特征空间维数可能很高,计算很复杂。所以我们设想这么一个函数:
这里写图片描述
通过它,我们不用直接求高维内积了,直接在原始空间计算。简化了计算难度。
有了它,对偶问题改写成:
这里写图片描述

求解后模型表示为:
这里写图片描述

这里κ(⋅,⋅) 就是核函数,上面的模型表达式叫“支持向量展式”。

好,任务归结到求核函数。核函数是由映射ϕ决定的。但一般我们不知道ϕ的形式,嘤嘤~。那核函数怎么办?它是否一定存在?
定理:
这里写图片描述

κ(⋅,⋅)首先是个对称函数,如果他对应的核矩阵是半正定的,它就能当核函数。

如果不知道特征映射,“核函数选择”应该是比较懵逼的,比较靠经验的任务。

6.4软间隔和正则化

前面讨论的假设是我们可以找到一个超平面把训练样本完全划分开来,但是实际中往往这是很困难的,更多的是这样:
这里写图片描述
标红的点都是分类错误的。因此我们要对模型做一个修改,允许它适当犯错误。即引入软间隔。
使用hinge损失,优化目标函数写成:
这里写图片描述

引入松弛变量,可再次重写为:
这里写图片描述
这里写图片描述
其中 ξi 称为松弛变量,满足:ξi>=0。表示样本不满足约束的程度。
这个约束就是前面提到的:
这里写图片描述

这就是软间隔支持向量。
这里写图片描述

对软间隔SVM,KKT条件是:
这里写图片描述

可以推出,软间隔支持向量最终模型仍然只与支持向量有关。

最后,提一下正则化的概念:
这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值