SVM的学习笔记

这篇博客详细介绍了支持向量机(SVM)的基本概念,包括如何构建分类器、寻找最大边距的超平面以及如何处理线性不可分情况。内容涵盖线性SVM的决策边界、拉格朗日乘子法、对偶问题、SMO算法,以及非线性SVM中的核方法和常用核函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVM的学习笔记

一、基本参数。

1.   训练集合        {(x1,y1), (x2,y2), (x3,y3), (x4,y4), (x5,y5),…………. (xn,yn)}

        输入值:       xi  = {xi1, xi2, xi3, xi4, xi5……. x1n}

        输出值:       yi ∈ {1,-1}

2.   构建分类器:  f(x)=<w·x>+b

大于0时:       yi=1       小于0时:yi=-1

权重向量:w = { w1, w2, w3, w4, w5……. wn }

偏置:b

点积:w·x

本质:支持向量机是在找一个超平面(决策面):<w·x>+b=0

将输入空间分为两个空间:正、负。



问题:①有无数条线都可以分割正例和负例。应该选择哪条线?图1

②超平面分类器只适用于正例和负例可以线性分割的情况,如何处理线性不可分的情况?或者需要非线性的决策边界?

    这些问题下面会做出解答。

二、线性支持向量机:可分的情况。



分割超平面:<w·x>+b=0图2

法向量:w

平移参数:b

----------------------------------------------------

d+:离正例最近距离。

d-:离负例最近距离。

边距=d+ +  d-

支持向量机寻找具有最大边距的分割超平面

H+:<w·x>+b=1

H-:<w·x>+b=-1

理想情况下H+与H-之间不存在训练样本。

在线性代数的向量空间中,点Xi到超平面的垂直欧式距离是:



巧妙的计算d+:求分割超平面上任一点到H+的距离。(即在<w·x>+b=0中选取一个点xi,求xi到H+和H-的距离)

d+=|<w·x>+b -1|/||w||=1/||w||

d- =1/||w||

边距 =d+  + d- =  2/||w||

支持向量机寻找最大边距的分割超平面,就变成了一个优化问题。

最大化(2/||w||)等于最小化(||w||/2=<>/2)。

现在的问题就是解决下列约束最小化问题。

-----------------------这里引入一些拉格朗日乘子与KKT条件的问题。

通常我们需要求解的最优化问题有如下几类:

(i) 无约束优化问题,可以写为:  min f(x);  

(ii) 有等式约束的优化问题,可以写为: min f(x),   s.t. h_i(x) = 0; i =1, ..., n 

(iii) 有不等式约束的优化问题,可以写为:min f(x), 

s.t. g_i(x) <= 0; i =1, ..., n  h_j(x) = 0; j =1, ..., m

对于第(i)类的优化问题,常常使用的方法就是Fermat定理,即使用求取f(x)的导数,然后令其为零,可以求得候选最优值,再在这些候选值中验证;如果是凸函数,可以保证是最优解。

对于第(ii)类的优化问题,常常使用的方法就是拉格朗日乘子法(Lagrange Multiplier) ,即把等式约束h_i(x)用一个系数与f(x)写为一个式子,称为拉格朗日函数,而系数称为拉格朗日乘子。通过拉格朗日函数对各个变量求导,令其为零,可以求得候选值集合,然后验证求得最优值。

对于第(iii)类的优化问题,常常使用的方法就是KKT条件。同样地,我们把所有的等式、不等式约束与f(x)写为一个式子,也叫拉格朗日函数,系数也称拉格朗日乘子,通过一些条件,可以求出最优值的必要条件,这个条件称为KKT条件。

拉格朗日:对各个参数求导取零,联立等式进行求取,这个在高等数学里面有讲。

KKT条件是说最优值必须满足以下条件:

1. L(a, b, x)对x求导为零;2. h(x) =0;(等式约束)3. a*g(x) = 0;(不等式约束)

 

 

------------------------回来继续


满足:yi(<w·x>+b)>=1,i=1,2….n        

注意:yi=1时,<w·x>+b>=1

    yi=-1时,<w·x>+b=<-1

 

------------------------------------------

 

解决这个问题可以得到wb

方法:标准拉格朗日乘子方法+优化理论。


互补条件的意义:表明仅仅在边缘超平面上的数据点才能使αi>0。这些点就是支持向量

对w和b求导+约束条件+互补条件。

因为约束条件是不等式,所以解优化问题仍然是困难的。

对优化问题的拉格朗日处理导致了一个对偶问题。

加上的拉格朗日乘子即引入拉格朗日对偶变量α。

将主问题转换为对偶问题:

①  w和b的偏微分等于0。


代入原式得到对偶的目标函数(只含对偶变量)。


 

-----------------------------------------------------


现在只剩对偶变量。求出使Ld最大的αi可以得到w和b。

然后利用SMO算法便可以求出α。

实现时我们使用所有的支持向量来计算b。取其平均值作为最后的结果。

最终的决策边界:

注:sv是所有支持向量的下标集

 

三、线性支持向量机:数据不可分的情况。

问题:训练数据是有噪声的,存在误差。

解决方法:放松边距的约束,引入松弛变量i。

 

经常令k=1,这样在对偶问题中i和他的拉格朗日算符都不会出现。

此时拉格朗日算符:


其中新加了一个拉格朗日算子

同样对w、b、求偏导+约束条件+互补条件。


有趣的是两个符号没有出现在对偶问题中。那么现在和线性可分时的问题是一样的。

怎么求C ?  怎么求 ?


 

四、非线性支持向量机:核方法

原空间(数据线性不可分)---à空间转换-----à特征空间(数据线性可分)(通常是一个更高维的空间)


数据:(x1,y1)-----à(Φ(x1),y1)。

于是优化问题就变成了:


对应的对偶问题就变成了:



这种方法存在的问题就是维数灾难---维数可能非常巨大。

幸好的是我们现在只需要计算点积<Φ(x). Φ(z)>

此时核函数就派上用场了。

K(x,z)= <Φ(x). Φ(z)>

原理:核函数是在低维空间算好结果然后把值传送到高维空间。

例如:


常用的核函数模型:



我们如何得知一个核函数在某个特征空间中表示点积呢?没有深入研究,只知道跟mercer定理有关。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值