机器学习——支持向量机support vector machine

支持向量机是与统计机器理论相关的机器学习算法,在1992年首次引入。SVM之所以流行,源于其对手写数字识别的错误率达到1.1%,与一个精确构建的神经网络的错误率相当。SVM现在被认为是kernel methods里面的一个经典例子。

一、 分类问题

1. 问题的提出

问题:给定训练集,其中

目标:学习一个分类函数g(x),使得f(x) = sign(g(x))能对新输入的x进行分类

线性分类器:

对于一个线性可分的二分类问题,我们可以找到很多的分类界面,如下图所示:

 

很多人提出了不同的算法寻找分类界面,Perceptron算法只能找到一个这样的分类界面,但是不同的判别界面是否一样好呢?答案是显然的。

2. 基于平分线的决策界面(Bisector based Decision Boundary)

对于线性可分的二分类问题,我们将每一类的全部点构成一个凸集,

如上图所示,我们的目标是找到两个凸集之间距离最近的两个点c和d,在这个两个点之间连一条直线cd,然后以这条线段cd的垂直平分线做为判别界面。

Formalization:

 

我们的目标是求得使上式最小的β,这样我们就能得到c和d:

然后求得c和d连线的中垂线:

其中:

这样我们就可以通过来对样本点进行分类。


二、 最大间隔界Maximal Margin

1. 线性可分的情况:

1) 最大间隔界

直观上来讲,分类界面应该离两类点的距离尽量远,这样的话,我们需要找到两类点之间的最大间隔,以此为基础选择分类界面。

如图所示,依据原点到直线的距离公式,我们可以得到两类点之间间隔的表达式

我们希望最大化这个间隔

约束条件:

由于我们可以同时放大和缩小w和b的值而不改变,我们可以调整w和b的值,使得γ  = 1,那么问题可以做如下转换:

于是我们得到一个优化目标:

2)求解:

对于上面的优化问题,我们可以写出等价的拉格朗日形式:

首先我们先看一下对于一般的拉格朗日函数的求解:

我们先定义一个函数

如果约束条件不被满足的话,我们得到

约束条件被满足的时候,我们可以得到

于是我们得出:

这样原优化问题就等价于:

他的对偶问题是:

我们可以推导出原问题和对偶问题有如下的关系:

那么在什么样的条件下我们可以得到d = p 呢?

这就需要用到KKT条件(Karush-Kuhn-Tucher):

回到我们的问题:

拉格朗日形式为:

我们的问题就可以转化为求解:

对偶问题是:

通过求解里面的最小化问题得到:

于是我们有:

带回L化简之后得到:

这样对偶问题就变成了求解如下优化问题:

这是一个二次优化问题,我们总能找到最优解 α, 然后可以得到:

以及

3)说明:

a、由于许多的α 值都为0, 由上面w的表达式可以知道,w是少量数据样本的线性组合,这种稀疏的表示方法可以看做一种数据压缩。

b、对于α 值非0 的点,我们称其为支持向量,分类的决策面就是由支持向量决定的。


2. 线性不可分的情况:

之前的讨论仅仅适用于线性可分的情况。样本线性不可分的情况下,我们引入了松弛变量

这里,我们允许间隔小于1,对于小于1的间隔1-ε,我们在目标函数中增加一个cost,C*ε, C控制着w和ε之间的权重比例。

对应的拉格朗日形式为:

得到min max问题的对偶问题max min问题,我们对于min L求解之后得到

这是个二次优化问题,求解同上。

最后按照 α 值的不同范围,我们得到如下结论:

 α = 0时, 为正确分类的样本;

当 α = C 时,为可能误分的样本点;

当 0 < α < C时, 为支持向量. 

    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值