支持向量机(SVM)入门

本文介绍了支持向量机(SVM)的基本思想,包括如何通过训练样本找到最优超平面,支持向量的定义,以及如何通过拉格朗日乘子法解决凸优化问题求得模型参数。重点强调了SVM的特性,即大部分训练样本仅与支持向量相关。后续内容将涉及SMO算法和核函数的应用。
摘要由CSDN通过智能技术生成

 

        SVM的基本思想:给定训练样本集D={(x1,y1),(x2,y2),...,(xm,ym)},yi∈{-1,+1},基于训练集D在样本空间中找到一个最优的超平面,将不同类别的数据点分开,并使间隔最大化。

        这个最优的超平面被定义为能够使两个类别中的支持向量(离超平面最近的样本点)到超平面的距离(间隔)最大化的超平面。直观上看,应该找位于两类训练样本“正中间”的划分超平面,即上图中红色的直线,因为该划分超平面对训练样本局部扰动的“容忍”性最好。

 

超平面

        在样本空间中,划分超平面可通过如下线性方程来描述:

w^{T}x+b=0

其中 w=(w_{1};w_{2};...;w_{d}) 为法向量,决定了超平面的方向;b 为位移项,决定了超平面与原点之间的距离。显然,划分超平面被法向量 w 和位移 b 所确定,将其记为 (w,b).

 

支持向量

        任意点 x 到超平面 (w,b) 的距离可写为:r=\frac{\left | w^{T}+b \right |}{\left \| w \right \|}

        假设超平面 (w,b) 能将训练样本正确分类,那么对于(xi,yi)∈D,则满足下列约束条件:

  •         若 y_{i}=+1 ,有 w^{T}x_{i}+b> 0
  •         若 y_{i}=-1 ,有 w^{T}x_{i}+b< 0

        距离超平面最近的几个训练样本点能使上式等号成立,被称为“支持向量”(support vector)。

 

间隔

        两个不同类别的支持向量到超平面的距离之和为  r=\frac{2}{\left \| w \right \|} (上图中两条虚线之间的距离),被称为“间隔”(margin)。 

        为了找到最优的超平面,即具有“最大间隔”(上图中红色直线)的划分超平面,也就是要找到能满足约束条件的参数 w 和 b ,使得 r 最大,即:

\underset{w,b}{\max}\ \frac{2}{\left \| w \right \|}\ ;

s.t.\ \ y_{i}(w^{T}x_{i}+b)\geq 1,\ \ i=1,2,3,...,m

 

支持向量机的基本型

        为了最大化间隔,仅需最大化 \frac{1}{\left \| w \right \|} ,等价于最小化 \left \| w \right \|^{2},即求解下式:

\underset{w,b}{\min}\ \frac{1}{2}\left \| w \right \|^{2};

s.t.\ \ y_{i}(w^{T}x_{i}+b)\geq 1,\ \ i=1,2,3,...,m

        通过求解上式得到大间隔划分超平面所对应的模型:f(x)=w^{T}x+b, 其中 w 和 b 是模型参数,这就是支持向量机(SVM)的基本形式。

 

求解支持向量机

目标

        求解SVM基本型,得到大间隔划分超平面所对应的模型 f(x)=w^{T}x+b,其中 w 和 b 是模型参数

求解过程

        解决这个凸优化问题,通常使用拉格朗日乘子法得到原始问题的对偶问题,并通过解决它的对偶问题来求得原始问题的解。

  • 对SVM基本型的每条约束添加拉格朗日乘子 \alpha _{i}> 0,则该问题的拉格朗日函数可写为

L\left ( w,b,\alpha \right )= \frac{1}{2}\left \| w \right \|^{2}+\sum_{i=1}^{m}\alpha _{i}\left ( 1-y_{i} \left ( w^{T}x_{i}+b \right )\right )

        其中,\alpha =(\alpha _{1};\alpha _{2};...;\alpha _{m})

 

  • L(w,b,a) 分别对 w 和 b 求偏导并等于0:

        将上式展开:

        分别求偏导数:

        即: 

w= \sum_{i=1}^{m}\alpha _{i}y_{i}x_{i} 

 0= \sum_{i=1}^{m}\alpha _{i}y_{i}

 

  • 代入原式可得出对偶问题:

        即: 

\underset{\alpha}{\max}\ \underset{w,b}{\inf}L\left ( w,b,\alpha \right )= \underset{\alpha}{\max}\sum_{i=1}^{m}\alpha _{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha _{_{i}}\alpha _{_{j}}y _{_{i}}y _{_{j}}x_{i}^{T}x_{j} 

s.t.\ \ \sum_{i=1}^{m}\alpha _{i}y_{i}=0;\ \alpha _{i}\geq 0,i=1,2,3,...,m 

 

  • 输入训练样本解出 \alpha (\alpha _{1};\alpha _{2};...;\alpha _{m}) 后,求出 w 和 b 后即可得出模型:  

f(x)=w^{T}x+b=\sum_{i=1}^{m}\alpha _{i}y_{i}x_{i}^{T}x+b

 

 

        从对偶问题中解出的 \alpha _{i} 即为拉格朗日乘子 \alpha _{i},对应着训练样本 (x_{i},y_{i})  ,上述过程需满足KKT(Karush-Kuhn-Tucker)条件,即要求

\left\{\begin{matrix} \alpha _{i}\geqslant 0\ ;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\ y_{i}f(x_{i}) -1\geqslant 0\ ;\ \ \ \ \ \ \\ \alpha _{i}(y_{i}f(x_{i}) -1)=0\ .\end{matrix}\right.

        于是,对任意训练样本 (x_{i},y_{i}),总有 \alpha _{i}=0 或 y_{i}f(x_{i})=1 :

  • \alpha _{i}=0,则该样本将不会在超平面模型f(x)=w^{T}x+b=\sum_{i=1}^{m}\alpha _{i}y_{i}x_{i}^{T}x+b的求和中出现,就不会对 f(x) 有任何影响;
  • 若 \alpha _{i}> 0, 则必有 y_{i}f(x_{i})=1 ,所对应的样本点位于最大间隔边界上,是一个支持向量。

        这也显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。 


期待后续:SMO(Sequential Minimal Optimization)算法、核函数等。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值