支持向量机SVM
接上文:线性可分支持向量机与硬间隔最大化
线性支持向量机与软间隔最大化
线性SVM
线性可分问题SVM学习方法,对线性不可分训练数据是不适用的,因为此时上文中的不等式约束并不能都成立。需要修改硬间隔最大化,使其成为软间隔最大化。
假设给定一个特征空间上的的训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)}
再假设训练数据集不是线性可分的。通常情况是,训练数据中有一些特异点(噪声点),将这些点除去后,剩下的大部分样本点组成的集合是线性可分的。
线性不可分意味着某些样本点(xi,yi)不能满足函数间隔大于等于1的约束条件,即上文中的式(14)。为了解决这个问题,可以对每个样本点(xi,yi)引入一个松弛变量 ξ≥0,使得函数间隔加上松弛变量大于等于1。这样,约束条件变为:
s.t.yi(w⋅xi+b)≥1−ξi
同时,对每个松弛变量ξi,支付一个代价ξi。目标函数由原来的21∣∣w∣∣2变成
21∣∣w∣∣2+Ci=1∑Nξi(1)
这里,C>0称为惩罚参数,一般由应用问题决定。C值大的时候对误分类的惩罚增大,C值小的时候对误分类的惩罚减小。最小化目标函数(1)包含两层含义:
- 使 21∣∣w∣∣2尽量小即间隔尽量大
- 同时使误分类点的个数尽量小
C是调和二者的系数。
线性不可分的SVM学习问题变成如下凸二次规划问题(原始问题):
w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξi(2)
s.t.yi(w⋅xi+b)≥1−ξi,i=1,2,...,N(3)
ξi≥0,i=1,2,...,N(4)
如果求出来约束最优化问题(2)~(4)的解w∗,b∗,就可以得到最大间隔分离超平面w∗⋅x+b∗=0及分类决策函数f(x)=sign(w∗⋅x+b∗),即训练样本线性不可分时的线性SVM。 显然,线性SVM是包含线性可分SVM的。
定义 线性SVM
对于给定线性不可分训练数据集,通过求解凸二次规划问题,即软间隔最大化问题(2)~(4),得到的分离超平面为:
w∗⋅x+b∗=0(5)
以及相应的分类决策函数
f(x)=sign(w∗⋅x+b∗)(6)
称为线性SVM。
学习的对偶算法
原始问题(2)~(4)的对偶问题是
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi(7)
s.t.i=1∑Nαiyi=0(8)
0≤αi≤C,i=1,2,...,N(9)
通过求解对偶问题而得到原始问题的解,进而确定分离超平面和决策函数。
定理
设α∗=(α1∗,α2∗,...,αN∗)T是对偶最优化问题(7)~(9)对 α 的解,则存在下标j,使得0<αj∗<C,并可按下式求得原始最优化问题(2)~(4)的解w∗,b∗:
w∗=i=1∑Nαi∗yixi(10)
b∗=yj−i=1∑Nαi∗yi(xi⋅xj)(11)
由定理可知,分离超平面可以写成
i=1∑Nαi∗yi(x⋅xi)+b∗=0(12)
f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)(13)
式(24)称为线性SVM的对偶形式。
算法 线性可分SVM学习算法
输入:线性可分的训练集T={(x1,y1),(x2,y2),...,(xN,yn=N))},其中X∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N
输出:分离超平面和分类决策函数。
(1)选择惩罚参数C>0,构造并求解约束最优化问题
αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
s.t.i=1∑Nαiyi=0
0≤αi≤C,i=1,2,...,N
求得最优解α∗=(α1∗,α2∗,...,αN∗)T。
(2)计算
w∗=i=1∑Nαi∗yixi
并选择α∗的一个正分量0<αj∗<C,计算
b∗=yj−i=1∑Nαi∗yi(xi⋅xj)
(3)求得分离超平面
w∗⋅x+b∗=0
分类决策函数:
f(x)=sign(w∗⋅x+b∗)
由于原始问题对b的解并不唯一,在实际计算时可以取在所有符合条件的样本点上的平均值。
支持向量
在线性不可分的情况下,将对偶问题(7)~(9)的解α∗=(α1∗,α2∗,...,αN∗)T中对应于αi∗>0的样本点(xi,yi)的实例xi称为支持向量(软间隔的支持向量)。如下图所示:

软间隔的支持向量xi或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。
- 若 α∗<C,则ξi=0,支持向量xi恰好落在间隔边界上;
- 若 α∗=C,0<ξi<1,则分类正确,支持向量xi在间隔边界与分离超平面之间;
- 若 α∗=C,ξi=1,则支持向量xi在分离超平面上;
- 若 α∗=C,ξi>1,则支持向量xi位于分离超平面误分一侧。
合页损失函数
线性SVM学习还有另外一种解释,就是最小化以下目标函数:
i=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2(14)
目标函数的第1项是经验损失或经验风险,函数
L(y(w⋅x+b))=[1−yi(w⋅xi+b)]+(15)
称为合页损失函数(hinge loss function)。下标“+”表示以下取正值的函数:
[z]+={z0z>0z≤0(16)
这就是说,当样本点(xi,yi)被正确分类且函数间隔(确信度)yi(w⋅xi+b)大于1时,损失是0,否则损失是1−yi(w⋅xi+b)。目标函数的第2项是系数为 λ 的 w 的 L2 范数,是正则化项。
定理
线性SVM原始最优化问题:
w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξi
s.t.yi(w⋅xi+b)≥1−ξi,i=1,2,...,N
ξi≥0,i=1,2,...,N
等价于最优化问题
w,bmini=1∑N[1−yi(w⋅xi+b)]++λ∣∣w∣∣2
合页损失函数的图形如下所示,横轴是函数间隔(y(w⋅x+b),纵轴是损失。由于函数形状像一个合页,所以称为合页损失函数。
图中还画出了0-1损失函数,可以认为它是二类分类问题真正的损失函数,而合页损失函数是0-1损失函数的上界。由于0-1损失函数不是连续可导的,直接优化由其构成的目标函数比较困难,可以认为线性SVM是优化0-1损失函数的上界(合页损失函数)构成的目标函数。这时的上界损失函数又称为代理损失函数。

上图中虚线显示的是感知机的损失函数[yi(w⋅xi+b)]+。这时,当样本点(xi,yi)被正确分类时,损失是0,否则损失是−yi(w⋅xi+b)。相比之下,合页损失函数不仅要分类正确,而且确信度足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。