支持向量机(SVM)(一)

支持向量机(SVM)(一)

SVM是机器学习中常见的分类方法之一,其本质为一个二类分类器,目的是寻找一个分界超平面(对于二维,所以只是一条线,如果数据是三维的就是平面,如果是三维以上就是超平面)把这两类完全分开。而所谓的Support vector就是这些离分界线最近的『点』。如果去掉这些点,直线多半是要改变位置的。再加入新的样本点时,预测可能出现偏差。

支持向量机是机器学习中处理二类分类问题的一种模型,根据数据是完全线性可分还是近似线性可分,分为线性可分SVM和线性SVM,后者包含前者,适用范围更广。如果数据不能线性可分,可以通过核技巧,把原特征映射到更高维度度的特征空间,再在新的特征空间上用线性SVM的方法学习非线性SVM。因为有些分类是可以在高维是可以很好分别出来的。
SVM可以分别下面三种

  • 利用硬间隔最大化学习的线性可分支持向量机(linear support vector machine in linearly separable case),

  • 利用软间隔最大化学习的线性支持向量机(linear support vector machine)

  • 利用核技巧和软间隔最大化学习的非线性支持向量机(nonlinear support vector machine)。


这次讲解的就是最普通的SVM,对于复杂的SVM将在以后讲到


1.定义

opencvSVM的定义是这样的

A Support Vector Machine (SVM) is a discriminative classifier formally defined by a separating hyperplane. In other words, given labeled training data (supervised learning), the algorithm outputs an optimal hyperplane which categorizes new examples.

对于只有两个labels的分类,我们可以利用简单的直线进行分割,但是我们看出下图实际上有很多直线是可以很好的把两种类别分出来的,我们没有办法判断哪一种最好,应此有必要引入判断标准:当线很接近点时我们就认为这条线不太好,因为这样的线范化能力极差,为了找到范化能力极好的,我们自然而然想到了找一条线使得其距离两边的点最远。好了,这样我们就可以进行数学计算了。

A seperation example


2.推导

我们的目的现在就是找到离训练集最远的hyperplane,而平面可以用 f(x)=ωTx+b 来表示,

训练集上的点 x0 超平面的距离可以定义为:

distance=|ωTx+b|||ω||

这里需要注意的是这个距离是高维度的,不是简单的欧式距离,考虑到为二分类器,结果只能为-1和1,我们先考虑一侧,可以做如下简化:
distancevc=|ωTx+b|||ω||=1||ω||

另外一侧也是一样的结果,这样 r 间隔(margin)就是
r=2||ω||

我们可以把方程倒一下,从求解最大值变成求解最小值问题,即我们的目标函数为:
minω,bL(ω)=12||ω||2 subject to yi(ωTxi+b)1 i,

yi 指的是训练样本的 labels.

The Optimal hyperplane

要求解目标函数,可以引入拉格朗日乘子法 αi (method of lagrange multiplier),利用求导可以对我们的方程进行简化,

L=12||w||2n=1Nαi×(yn(wTxn+b)1)

这个方程等价于之前的目标函数,也就是说方程要满足两个 约束条件

  • 最小化L
  • 最大化拉氏乘子

下一步需要求解方程出参数使得L最小了,做法很简单,对 ω 和b求导,令导数等于0:

w=i=1Naiyixi0=i=1Naiyi

求导相信大家都没有问题吧!算完后带入拉氏方程,可以得到:
maxall αiL(α)=i=1mαi12i=1mj=1maiajyiyjxTixjsubjecttoii=1maiyi=0,ai0(1)

上述过程需满足KKT(Karush-Kuhn-Tucker) 条件,式(1)为二次规划问题,可利用SMO算法进行求解,具体证明见 SVM支持向量机二

参考:

[1].机器学习, 周志华 著.

[2].支持向量机(SVM)是什么意思?

[3].Introduction to Support Vector Machines

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值