**
简介
**
支持向量机(support vector machine),一般简称为SVM,是一种二分类模型,学习策略是间隔最大化,最终转化为二次规划的求解问题。
假设有数据集T={(x1,y1),(x2,y2),…,(xn,yn)}T=\lbrace(x_1,y_1 ),(x_2,y_2 ),…,(x_n, y_n )\rbraceT={(x1,y1),(x2,y2),…,(xn,yn)},其中xix_ixi表示第i个实例,yiy_iyi表示数据的类标记,y∈{+1,-1},当y=+1时表示案例属于正类,y=-1时表示案例属于负类。再假设数据集线性可分。
学习的目标就是在特征空间中找到一个超平面ω∗x+b=0ω*x+b=0ω∗x+b=0,将数据集分为正负两类。
找出超平面之后,要通过决策函数对数据类型进行判断,本文采用决策函数为f(x)=sign(ω∗x+b)f(x)=sign(ω*x+b)f(x)=sign(ω∗x+b)。
f(x)={1,if x>=0 0,if x<0 f(x)= \begin{cases} 1, & \text {if $x>=0$ } \\ 0, & \text{if $x<0$ } \end{cases} f(x)={1,0,if x>=0 if x<0
函数间隔和几何间隔
一般情况下,某点距超平面的距离可以表示分类的确信程度,在超平面ω∗x+b=0ω*x+b=0ω∗x+b=0确定的情况下,∣ω∗x+b∣|ω*x+b|∣ω∗x+b∣可以表示该点到平面的距离。对点(xi,yi)(x_i,y_i)(xi,yi),(ω∗xi+b)(ω*x_i+b)(ω∗xi+b)和yiy_iyi的符号可以判断分类是否正确,此时定义该点的函数间隔为:ιi=yi∗(ω∗xi+b)\iota_i=y_i*(ω*x_i+b)ιi=yi∗(ω∗xi+b)
定义超平面(ω,b)关于数据集T的函数间隔为所有实例点的函数间隔的最小值,即:
ι=min(ιi)\iota=min(\iota_i )ι=min(ιi)
函数间隔可以表示分类的正确性,但是只要成比例的改变超平面的参数,函数间隔会发生改变但是分类结果保持不变,所以需要对函数间隔加一些约束,例如规范化超平面的法向量,∣∣ω∣∣=1||ω||=1∣∣ω∣∣=1,这使得间隔时确定的,此时函数间隔变为几何间隔。
定义数据集中点(xi,yi)(x_i,y_i)(xi,yi)的几何间隔为:
γ=yi∗(w∣∣ω∣∣∗w+b∣∣ω∣∣)\gamma=y_i*(\frac{w}{||ω||}*w+\frac{b}{||ω||})γ=yi∗(∣∣ω∣∣w∗w+∣∣ω∣∣b)
与函数间隔相似的是定义超平面(ω,b)关于数据集T的几何间隔为所有实例点的几何间隔的最小值,即:γ=min(γi)\gamma=min(γ_i )γ=min(γi)
根据两者的定义,函数间隔和几何关系有如下关系:
ι=γ∗∣(∣ω∣)∣\iota=γ*|(|ω|)|ι=γ∗∣(∣ω∣)∣
其中∣∣ω∣∣||ω||∣∣ω∣∣是ω的L2L_2L2范式,就是内积。
(硬)间隔最大化
支持向量机的基本思路就是找到可以把数据分为正负两类的超平面,对于数据集T来说在分类精度不确定的情况下可以找到无数个超平面,为了让分类准确,我们让几何间隔保持最大,也就是说最难分的点(靠近超平面的点)也有足够的确信度将其分开,此时超平面对未知的新实例具有较好的分类作用。
将几何间隔最大化问题写成如下方程:
maxγw,bmax \quad\gamma_{w,b}maxγw,b
s.t.yi(w∣∣ω∣∣∗w+b∣∣ω∣∣)≥γi=1,2,…,ns.t.\qquad y_i (\frac{w}{||ω||}*w+\frac{b}{||ω||})≥γ\qquad i=1,2,…,ns.t.yi(∣∣ω∣∣w∗w+∣∣ω∣∣b)≥γi=1,2,…,n
方程表示我们希望最大化几何间隔γ,而数据集中所有点的几何间隔至少为γ。考虑到几何间隔和函数间隔的关系,方程用函数间隔表示为:
maxι∣∣w∣∣max\quad\frac{\iota}{||w||}max∣∣w∣∣ι
s.t.yi∗(w∗xi+b)≥ιii=1,2,...,ns.t.\quad y_i*(w*x_i+b)≥\iota_i\quad i=1,2,...,ns.t.yi∗(w∗xi+b)≥ιii=1,2,...,n
此时可以看出来γ ̌的取值与最优化问题无关,我们将ι\iotaι取值为1,而最大化1∣∣w∣∣\frac{1}{||w||}∣∣w∣∣1的问题相当于最小化12∣∣w∣∣2\frac{1}{2}||w||^221∣∣w∣∣2,此时将上述方程整理为:
min12∣∣w∣∣w,b2min \quad\frac{1}{2}||w||^2_{w,b}min21∣∣w∣∣w,b2
s.t.yi∗(w∗xi+b)≥1i=1,2,…,ns.t. \quad y_i *(w*x_i+b)≥1\quad i=1,2,…,ns.t.yi∗(w∗xi+b)≥1i=1,2,…,n
这是一个凸二次规划问题,可以采用拉格朗日对偶法进行进一步计算。此时给出支持向量的概念,优化问题的提出基础是最难分的点也要保证较好的分类效果,最难分的点就是超平面附近的点,在超平面两端,各有点在约束条件上,以正数集为例。点A(xa,ya)(x_a,y_a)(xa,ya)位于正数据,则ya=1y_a=1ya=1,同时有w∗xa+b=1w*x_a+b=1w∗xa+b=1,这样的点就是支持向量。在优化问题中,支持向量的位置决定最终的结果,除支持向量以外,其他点位置变动或直接删除没有影响。
拉格朗日对偶法
假设一个约束条件优化问题,方程如下:
minf(x)xmin\quad f(x)_xminf(x)x
s.t.gi(x)≤0,i=1,2,…,n;hj(x)=0,j=1,2,…,ms.t.\quad g_i (x)≤0,i=1,2,…,n;
h_j (x)=0,j=1,2,…,ms.t.gi(x)≤0,i=1,2,…,n;hj(x)=0,j=1,2,…,m
构建拉格朗日函数为:
L(x,α,β)=f(x)+∑i=1nαigi+∑j=1mβjhjL(x,α,β)=f(x)+\sum_{i=1}^{n}\alpha_ig_i+\sum_{j=1}^{m}\beta_jh_jL(x,α,β)=f(x)+i=1∑nαigi+j=1∑mβjhj
s.t.αi≥0,i=1,2,…,ns.t. α_i≥0,i=1,2,…,ns.t.αi≥0,i=1,2,…,n
考虑x的函数,p(x)=maxα,β;αi≥0L(x,α,β)p(x)=max_{α,β;α_i≥0} \quad L(x,α,β)p(x)=maxα,β;αi≥0L(x,α,β)
当x不满足原本的约束条件时,即出现gi(x)>0g_i (x)>0gi(x)>0或者βi≠0β_i≠0βi̸=0,就令αiα_iαi 、βiβ_iβi趋向无穷大,则有p(x)也趋向于无穷大;当x满足约束条件时,p(x)=f(x)。
可以整理为:
p(x)={f(x), 满足约束条件 ∞,不满足约束条件 p(x)= \begin{cases} f(x), & \text { 满足约束条件 } \\ ∞, & \text{不满足约束条件 } \end{cases} p(x)={f(x),∞, 满足约束条件 不满足约束条件
此时原本的极小化问题表示为:
minxmaxα,β;αi>0L(x,α,β)min_x\quad max_{α,β;α_i>0 } \quad L(x,α,β)minxmaxα,β;αi>0L(x,α,β)
定义为拉格朗日函数的极小极大问题。
maxα,β;αi>0minxL(x,α,β)max_{α,β;α_i>0}\quad min_x\quad L(x,α,β)maxα,β;αi>0minxL(x,α,β)
是原本优化问题的对偶问题,而且对偶问题在某些条件下最优值相等。
间隔最大化的对偶计算
原问题为
minw,b12∣∣w∣∣2min_{w,b} \quad\frac{1}{2} ||w||^2minw,b21∣∣w∣∣2
s.t.yi(wxi+b)≥1i=1,2,…,ns.t. y_i (wx_i+b)≥1\quad i=1,2,…,ns.t.yi(wxi+b)≥1i=1,2,…,n
拉格朗日函数为:
(1)L(w,b,x)=12∣∣w∣∣2−∑i=1nαiyi(yi(wxi+b))+∑i=1nαiL(w,b,x)=\frac{1}{2}||w||^2-\sum_{i=1}^{n}\alpha_iy_i(y_i (wx_i+b))+\sum_{i=1}^{n}\alpha_i\tag{1}L(w,b,x)=21∣∣w∣∣2−i=1∑nαiyi(yi(wxi+b))+i=1∑nαi(1)
s.t.αi>0s.t.\quad α_i>0s.t.αi>0
原问题可以整理为:
minw,bmaxαL(w,b,α)min_{w,b}\quad max_\alpha \quad L(w,b,α)minw,bmaxαL(w,b,α)
对偶问题为:
maxαminw,bL(w,b,α)max_α\quad min_{w,b} \quad L(w,b,α)maxαminw,bL(w,b,α)
求解过程如下:
先求minw,bL(w,b,α)min_{w,b}\quad L(w,b,α)minw,bL(w,b,α)。
(1){dLdw=w−∑i=1nαiyixi=0, dLdb=∑i=1nαiyi0, \begin{cases} \frac{dL}{dw}=w-\sum_{i=1}^{n}\alpha_iy_ix_i=0, & \text { } \\\frac{dL}{db}=\sum_{i=1}^{n}\alpha_iy_i0, & \text{ } \end{cases} \tag{1}{dwdL=w−∑i=1nαiyixi=0,dbdL=∑i=1nαiyi0, (1)
把2式代入1整理则有
L(w,b,α)=12∣∣w∣∣2−∑i=1nαiyi(wTxi+b)+∑i=1nαiL(w,b,α)=\frac{1}{2} ||w||^2-\sum_{i=1}^{n}\alpha_iy_i(w^Tx_i+b)+\sum_{i=1}^{n}\alpha_i L(w,b,α)=21∣∣w∣∣2−i=1∑nαiyi(wTxi+b)+i=1∑nαi
=12wTw−∑i=1nαiyiwTxi−∑i=1nαiyib+∑i=1nαi=\frac{1}{2}w^Tw-\sum_{i=1}^{n}\alpha_iy_iw^Tx_i-\sum_{i=1}^{n}\alpha_iy_ib+\sum_{i=1}^{n}\alpha_i=21wTw−i=1∑nαiyiwTxi−i=1∑nαiyib+i=1∑nαi
=12wT∑i=1nαiyixi−∑i=1nαiyiwTxi+∑i=1nαiyib+∑i=1nαi=\frac{1}{2}w^T \sum_{i=1}^{n}\alpha_iy_ix_i-\sum_{i=1}^{n}\alpha_iy_iw^Tx_i+\sum_{i=1}^{n}\alpha_iy_ib+\sum_{i=1}^{n}\alpha_i =21wTi=1∑nαiyixi−i=1∑nαiyiwTxi+i=1∑nαiyib+i=1∑nαi
=12wT∑i=1nαiyixi−wT∑i=1nαiyixi+∑i=1nαi=\frac{1}{2}w^T\sum_{i=1}^{n}\alpha_iy_ix_i-w^T \sum_{i=1}^{n}\alpha_iy_ix_i+\sum_{i=1}^{n}\alpha_i=21wTi=1∑nαiyixi−wTi=1∑nαiyixi+i=1∑nαi
=−12wT∑i=1nαiyixi+∑i=1nαi=-\frac{1}{2}w^T \sum_{i=1}^{n}\alpha_iy_ix_i+\sum_{i=1}^{n}\alpha_i =−21wTi=1∑nαiyixi+i=1∑nαi
=−12∑i=1n∑j=1nαiαjyiyj(xi∙xj)+∑i=1nαi=-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_j(x_i∙x_j)+\sum_{i=1}^{n}\alpha_i=−21i=1∑nj=1∑nαiαjyiyj(xi∙xj)+i=1∑nαi
问题转换为:
maxα−12∑i=1n∑j=1nαiαjyiyj(xi∙xj)+∑i=1nαimax_α\quad-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_j(x_i∙x_j)+\sum_{i=1}^{n}\alpha_imaxα−21i=1∑nj=1∑nαiαjyiyj(xi∙xj)+i=1∑nαi
s.t.∑i=1nαiyi=0,αi≥0s.t. \sum_{i=1}^{n}\alpha_iy_i=0,
α_i≥0s.t.i=1∑nαiyi=0,αi≥0
对上式求出最优解α∗=(α1,α2,…,αn)α^*=(α_1,α_2,…,α_n)α∗=(α1,α2,…,αn)
计算w∗=∑i=1nxiyiαi,b∗=yj−∑i=1nαiyi(xi∙xj)w^*=\sum_{i=1}^{n}x_iy_i\alpha_i,b^*=y_j-\sum_{i=1}^{n}\alpha_iy_i(x_i∙x_j)
w∗=i=1∑nxiyiαi,b∗=yj−i=1∑nαiyi(xi∙xj)
(未完)