支持向量机(1)

支持向量机在1992年被正式发表,最开始时研究线性可分支持向量机,与它相似的算法是感知机,感知机学习的策略是误分类点最少;而线性支持向量机的学习策略是间隔最大化。之后相继引入了惩罚因子和核函数的概念,能够处理线性支持向量机和非线性支持向量机。
所以整体的逻辑是分别理清三类支持向量机的关系,能够明白最终都是转化为求解凸二次规划问题;那么我们通过序列最小最优化算法SMO求解这个问题即可。那么具体逐一介绍以下内容:

  • 支持向量机三类模型

    • 线性可分支持向量机 : 当训练数据线性可分时,可通过硬间隔最大化学习一个线性分类器
    • 线性支持向量机 : 当训练数据近似线性可分时,可通过软间隔最大化学习一个线性的分类器
    • 非线性支持向量机: 当训练数据线性不可分时,可通过软间隔最大化与核技巧来学习一个非线性分类器
  • 序列最小最优化算法SMO:求解凸二次规划的最优化算法
  • 核技巧[扩展]
  • 惩罚因子[扩展]
  • 支持向量机的代码实现

 

1、线性可分支持向量机

对于给定特征空间上的训练数据集 T={(x1,y1),(x2,y2),,(xn,yn)} ,其中 xiRn,yi{+1,1},i=1,2,,N, 学习的目的是在特征空间上找到一个分离超平面,能够将实例分到不同的类。分离超平面对应于方程 wx+b=0 ;学习的策略是间隔最大化,即得到将两类数据正确划分且间隔最大的直线。
这里写图片描述

1.1 函数间隔

从图中我们可以确定A是×类别的,B还算能够确定,然而C是不太确定的。可见一个点距离分离超平面的远近可以表示分类预测的确信程度,一个点距离分类超平面越远,那么它被预测正确地概率越大;在超平面 wx+b=0 确定的情况下, |wx+b| 能够表示点x距离超平面的远近;而 wx+b 的符号与类标记y的符号是否一致能够表示分类是否正确,所以可以用 y(wx+b) 表示分类的正确性与确信度。所以我们定义函数间隔如下:

  • 关于训练数据集T中样本点 (xi,yi) 的函数间隔是 r^i=yi(wxi+b)
  • 关于训练数据集T的函数间隔是 r^=min r^i

函数间隔虽然可以表示分类的正确性和确信度,但对于一个确定的超平面 wx+b=0 ,同时同比例增大 w,b ,超平面没有改变,但函数间隔却变大了。所以我们若希望间隔不发生改变,通常是对w加以约束。

几何间隔

这里写图片描述
假设我们已知分离超平面 wx+b=0 A(xi,yi) 到该面的距离 ri ,B为A在分离超平面的投影,且BA的方向为 w (法向量),单位向量为w||w||。则我们能得到B点的 xb=xiriw||w|| ,代入超平面中得到: wxb+b=w(xiriw||w||)+b=0 ,解得 ri=(wxi+b)||w|| ,这是A点在正例的情况;反之,有 ri=((wxi+b)||w||) 。即有 ri=yi(wxi+b)||w||
我们发现函数间隔约束之后恰好是几何间隔,之所以一样,是因为函数间隔是人为定义的,里面已经潜藏了几何间隔的元素。此时,若同时扩大w和b,w扩大几倍,||w||就扩大几倍,几何间隔无影响。于是有:

  • 关于训练数据集T中样本点 (xi,yi) 的几何间隔是 ri=yi(wxi+b)||w||
  • 关于训练数据集T的几何间隔是 r=min ri
间隔最大化

我们已经知道了几何间隔,间隔最大化即是对训练集找到几何间隔最大的超平面。它意味着不仅将正负实例分开,而且对最难分的实例点(距离超平面最近的实例点)也能以足够大的确信度将它们分开。这样的超平面应该对未知实例有很好的预测能力。
则最大化几何间隔可以表示成这样的最优化问题:

maxw,b rs.t. yi(wxi+b)||w||ri=1,2,,N

由函数间隔 r r^ 的关系,可以将最优化问题进行转化:
maxw,b r^||w||s.t. yi(wxi+b)||w||r^||w||i=1,2,,N

因为对于一个可分数据集,一定能有无穷多各超平面去实现它的分割,也就是对应不同的w,b。但无论是哪一组w,b,同比例扩大或缩小都可以使函数间隔 r^=min yi(wxi+b) 变为一个常数。也即是说函数间隔 r^ 不影响最优问题的解。于是我们便于计算,可以取 r^=1 。且最大化 1||w|| 等价于 最小化 12||w||2 (系数 12 只是为了求导方便)。于是有:
minw,b 12||w||2s.t. yi(wxi+b)1i=1,2,,N

这是一个凸二次规划问题。如果求解了该问题的解 w,b ,则可以得到最大间隔分离超平面 wx+b=0 ,也即得到了分类决策函数 f(x)=sign(wx+b) 。这就是线性可分支持向量机模型。
凸二次规划问题可以通过优化软件来进行求解,但往往效率低下,下一节内容我们介绍一种手工求解的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值