支持向量机(SVM)

前言:

通俗来讲,所谓支持向量机是一种分类器,对于做出标记的两组向量,给出一个最优分割超曲面把这两组向量分割到两边,使得两组向量中离此超平面最近的向量(即所谓支持向量)到此超平面的距离都尽可能远。

当一个分类问题, 数据是线性可分的, 也就是用一根棍就可以将两种小球分开的时候, 我们只要将棍的位置放在让小球距离棍的距离最大化的位置即可, 寻找这个最大间隔的过程, 就叫最优化. 但是, 一般的数据是线性不可分的, 也就是找不到一个棍将两种小球很好的分类. 这个时候, 我们就需要像大侠一样, 将小球拍起, 用一张纸代替小棍将小球进行分类. 想要让数据飞起, 我们需要的东西就是核函数 (kernel) , 用于切分小球的纸, 就是超平面 (hyperplane) . 如果数据是N维的, 那么超平面就是N-1维. (补: 未使用核函数情况下)

把一个数据集正确分开的超平面可能有多个, 而那个具有“最大间隔”的超平面就是SVM要寻找的最优解. 而这个真正的最优解对应的两侧虚线所穿过的样本点, 就是SVM中的支持样本点, 称为支持向量(support vector). 支持向量到超平面的距离被称为间隔 (margin) .
 

1.线性可分线性不可分

对于一个二维空间,每个样本就相当于平面上的一个点。如果能够找到一条线,可以把两种类别的样本划分至这条线的两侧,我们就称这个样本集线性可分,如下图所示。

反之,若不能找到这样的直线,则称该样本集线性不可分

2.超平面

显然,在上述的二维空间中,我们的目标就是找到这样的一条直线,能够把样本集划分成两部分,我们把这样的线称作线性模型。同理,在三维空间中,我们要找的线性模型就是一个平面。而对于更高的维度,虽然我们处在三维的世界,无法想象三维以上的世界,但我们可以使用数学方法描述更高维度,同样也可以使用数学方法推导出高维的线性模型。我们称超过三维的曲面为超平面,其方程为:
w^{T}x + b = 0

其中,w = [w_{1},w_{2},....w_{n}]^{T}, n表示特征数(维度数),b为常数。

所以我们可以这样描述SVM的目的:找到这样一个超平面wx+b=0,使得在超平面上方的点x代入函数y=wT x+b,y全部大于0,在超平面下方的点x代入函数y=wx+b,y全部小于0。

一、最大间隔与分类

样本空间中任意点x到超平面的距离可以写为

其中||W||为超平面的范数:\sqrt{w^{2}},常数b类似于直线方程中的截距。

二维空间中点(x, y)到直线的距离:

三维空间中点(x, y, z)到平面的距离:

支持向量:离超平面最近的几个训练样本点,使得成立.
间隔:两个异类支持向量到超平面的距离和: d
硬间隔:满足所有样本都划分正确。

二、对偶函数

  • 间隔的作用体现在原理上,而对偶性的作用体现在实现上,虽然我们前面已经说明了最优决策边界,但是却无法求解最优边界,因此我们可以通过引入拉格朗日乘子将原始问题转化为对偶问题来找到最优解

其中f(x)是目标函数,g(x)为不等式约束,h(x)为等式约束。

若f(x),h(x),g(x)三个函数都是线性函数,则该优化问题称为线性规划。
若任意一个是非线性函数,则称为非线性规划。

若目标函数为二次函数,约束全为线性函数,称为二次规划。

若f(x)为凸函数,g(x)为凸函数,h(x)为线性函数,则该问题称为凸优化。
注意这里不等式约束g(x)<=0则要求g(x)为凸函数,若g(x)>=0则要求g(x)为凹函数。

凸优化的任一局部极值点也是全局极值点,局部最优也是全局最优。

对于稍前所述的公式(SVM的基本型)

使用拉格朗日乘子法可得到其“对偶问题”
对上式的每条约束添加拉格朗日乘子αi⩾0,该问题的拉格朗日函数可写为:

我们希望求解SVM的基本型公式来得到大间隔划分超平面所对应的模型

我们希望求解SVM的基本型公式来得到大间隔划分超平面所对应的模型
                         f(x)=ωT+b
其中w和b是模型参数。
注意到SVM的基本型是一个凸二次规划问题。能直接用现成的优化计算包求解,但我们又更高效的办法。


拉格朗日乘子法

第一步:引入拉格朗日乘子得到拉格朗日函数

       

                 
第二步:令L(ω,b,α)对w和b的偏导为零可得

第三步:回代可得

           
不难发现,这是一个二次规划问题。
然而,该问题的规模正比于训练样本数,这会在实际任务中造成很大的开销。
为了避开这个方案,人们提出了很多高效算法,SMO是其中一个著名的代表。

解的稀疏性

求出ω和b后,可得最终模型:

KKT条件

对任意样本(xi,yi),总有αi=0或yif(xi)=1。

若αi=0,则该样本将不会在式的求和中出现,也就不会对f(x)有任何影响;

若αi>0,则必有yif(xi)=1,所对应的样本点位于最大间隔边界上,是一个支持向量。
支持向量机解的稀疏性: 训练完成后, 大部分的训练样本都不需保留, 最终模型仅与支持向量有关。
重要性质:模型训练完后,大部分的训练样本都不需要保留,最终模型仅仅与支持向量有关。
 

三、核函数

基本想法:不显式地设计核映射, 而是设计核函数.

Mercer定理(充分非必要):只要一个对称函数所对应的核矩阵半正定, 则它就能作为核函数来使用.

四、软间隔和正则化

0/1损失函数

基本想法:最大化间隔的同时, 让不满足约束的样本应尽可能少.


          
正则化常数C>0,如果C→∝,则等价于要求所有的样本点都分类正确,否则就允许一部分极少的样本分类错误

其中l0/1是”0/1损失函数”
            

存在的问题:0/1损失函数非凸、非连续, 不易优化!

替代损失

正则化

支持向量机学习模型的更一般形式

通过替换上面两个部分, 可以得到许多其他学习模型:对数几率回归(Logistic Regression)、最小绝对收缩选择算子(LASSO) ……

五、支持向量回归

支持向量回归机--SVR

对于有限个样本组成的训练集来说,一定存在一个带状区域包含所有的样本点。并且这样的带状区域有无穷多个,宽度最小的带状区域才是我们关心的。

当带状区域很大,所得的回归模型不精确,此时允许模型输出和实际输出间存在2ϵ的偏差.

六、核方法

表示定理

结论: 无论是支持向量机还是支持向量回归, 学得的模型总可以表示成核函数的线性组合.

更一般的结论(表示定理): 对于任意单调增函数ΩΩ和任意非负损失函数, 优化问题

的解总可以写为

核线性判别分析

通过表示定理可以得到很多线性模型的”核化”版本

  • 核SVM
  • 核LDA
  • 核PCA
  • ……

核LDA: 先将样本映射到高维特征空间, 然后在此特征空间中做线性判别分析    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值