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
------------------------------------------
解决这个问题可以得到w和b。
方法:标准拉格朗日乘子方法+优化理论。
互补条件的意义:表明仅仅在边缘超平面上的数据点才能使α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定理有关。