1.支持向量机最简单的情况是线性可分支持向量机,或硬间隔支持向量机。构建它的条件是训练数据线性可分。其学习策略是最大间隔法。可以表示为凸二次规划问题,其原始最优化问题为
s.t.yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
求得最优化问题的解为w∗,b∗,得到线性可分支持向量机,分离超平面是
w∗⋅x+b∗=0
分类决策函数是
f(x)=sign(w∗⋅x+b∗)
那么线性可分支持向量机解决的就应该找到是n维空间中的点可以被超平面分割的那个超平面。
引入函数间隔和几何间隔的概念:
margin:
函数间隔:label(wTx+b) or yi(wTx+b)
几何间隔:r=∣∣w∣∣2label(wTx+b),当数据被正确分类时,几何间隔就是点到超平面的距离。
直观来看就是解决最大margin的问题:
这里其实有一个公式困扰了我就是它的几何间隔定义为所有样本点的几何间隔最小值。然后我查阅了一下似乎都没提到这个说明,在我不懈的努力搜索小找到如下参考:
(关于这个的定义我是参考了《Pattern Recognition and Machine Learning 》关于SVM的讲解,这本书是我见过的讲的最细的了)
这个平面到数据集的间隔就是我们一开始直观感受时所需要的那个衡量远近的数值。
从这个意义上来说,其实我们在衡量一个平面到数据集的“远近”时,我们其实只需要看的是到所有的样本点距离中最近的那个。
我的理解就是依据Suport vecter 寻找要优化的w,b的空间,换玖话说就是限定了能正确分类的超平面的选择范围。
所以就可以构造最优化问题:
这里用几何间隔其实就是把不可优化的函数间隔信念值,用固定的可优化的空间距离来表示,进而是一个标准的优化问题。
然后最后标准的优化问题如下,因为函数间隔并不影响优化问题的解,所以这个也很好理解:
之后就是熟悉的求解对偶问题:
min21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
s.t.i=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
时间有限,解法不是很复杂直接贴上:
分类点几何间隔最大,同时被正确分类。但这个方程并非凸函数求解,所以要先①将方程转化为凸函数,②用拉格朗日乘子法和KKT条件求解对偶问题。
①转化为凸函数:
先令r∗=1,方便计算(参照衡量,不影响评价结果)
max ∣∣w∣∣1s.t. yi(wTxi+b)≥1, i=1,2,..,m
再将max ∣∣w∣∣1转化成min 21∣∣w∣∣2求解凸函数,1/2是为了求导之后方便计算。
min 21∣∣w∣∣2s.t. yi(wTxi+b)≥1, i=1,2,..,m
②用拉格朗日乘子法和KKT条件求解最优值:
min 21∣∣w∣∣2s.t. −yi(wTxi+b)+1≤0, i=1,2,..,m
整合成:
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(−yi(wTxi+b)+1)
推导:min f(x)=minmax L(w,b,α)≥maxmin L(w,b,α)
根据KKT条件:
∂w∂L(w,b,α)=w−∑αiyixi=0, w=∑αiyixi∂b∂L(w,b,α)=∑αiyi=0
代入$ L(w, b, \alpha)$
min L(w,b,α)=21∣∣w∣∣2+∑i=1mαi(−yi(wTxi+b)+1)
=21wTw−∑i=1mαiyiwTxi−b∑i=1mαiyi+∑i=1mαi
=21wT∑αiyixi−∑i=1mαiyiwTxi+∑i=1mαi
=∑i=1mαi−21∑i=1mαiyiwTxi
=∑i=1mαi−21∑i,j=1mαiαjyiyj(xixj)
再把max问题转成min问题:
max ∑i=1mαi−21∑i,j=1mαiαjyiyj(xixj)=min21∑i,j=1mαiαjyiyj(xixj)−∑i=1mαi
s.t. ∑i=1mαiyi=0,
$ \alpha_i \geq 0,i=1,2,…,m$
以上为SVM对偶问题的对偶形式
对偶问题求解,这个帖子里非常详细
现实中训练数据是线性可分的情形较少,训练数据往往是近似线性可分的,这时使用线性支持向量机,或软间隔支持向量机。线性支持向量机是最基本的支持向量机。
对于噪声或例外,通过引入松弛变量ξi,使其“可分”,得到线性支持向量机学习的凸二次规划问题,其原始最优化问题是
w,b,ξmin21∥w∥2+Ci=1∑Nξis.t.yi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,Nξi⩾0,i=1,2,⋯,N
求解原始最优化问题的解w∗和b∗,得到线性支持向量机,其分离超平面为
w∗⋅x+b∗=0
分类决策函数为
f(x)=sign(w∗⋅x+b∗)
线性可分支持向量机的解w∗唯一但b∗不唯一。对偶问题是
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαis.t.i=1∑Nαiyi=00⩽αi⩽C,i=1,2,⋯,N
线性支持向量机的对偶学习算法,首先求解对偶问题得到最优解α∗,然后求原始问题最优解w∗和b∗,得出分离超平面和分类决策函数。
对偶问题的解α∗中满KaTeX parse error: Expected 'EOF', got '&' at position 15: \alpha_{i}^{*}&̲gt;0的实例点xi称为支持向量。支持向量可在间隔边界上,也可在间隔边界与分离超平面之间,或者在分离超平面误分一侧。最优分离超平面由支持向量完全决定。
线性支持向量机学习等价于最小化二阶范数正则化的合页函数
i=1∑N[1−yi(w⋅xi+b)]++λ∥w∥2
,之后是核方法:
K(x,z)=ϕ(x)⋅ϕ(z)
非线性的情况下利用核将低维映射到高维,使之线性可分。
最后是smo算法,有点吃力,贴上这个大佬的链接。简言之就是利用坐标上升的思想去求解多变量优化?有时间在看看吧,作为外行有点顶不住了
SMO算法详解