1. 线性支持向量机
我们介绍了线性可分支持向量机模型,我们适用硬间隔最大化算法学得最好的分离超平面,但是该模型只适用于训练数据集是线性可分的情况,对于线性不可分训练数据集并不适用。通常情况下,线性不可分训练数据集,往往有一些特异点,将这些特异点去除之后,剩下大部分的样本点组成的集合是线性可分的,根据这个特性,我们允许一些特异点不满足函数间隔大于等于 1 1 1(即 y i ( w ⋅ x i + b ) − 1 ≥ 0 y_i({w}\cdot x_i+{b})-1\geq 0 yi(w⋅xi+b)−1≥0)的约束条件 ,来使用支持向量机达到分类训练数据集的目的。
为此,我们为训练数据集 T T T的每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi)都引入一个松弛变量 ξ i ≥ = 0 \xi_i \geq = 0 ξi≥=0 ,使得函数间隔加上松弛变量,能满足间隔大于等于 1 1 1的约束条件,即 y i ( w ⋅ x i + b ) + ξ i − 1 ≥ 0 y_i({w}\cdot x_i+{b})+\xi_i-1\geq 0 yi(w⋅xi+b)+ξi−1≥0 即
y i ( w ⋅ x i + b ) ≥ 1 − ξ i y_i({w}\cdot x_i+{b})\geq 1-\xi_i yi(w⋅xi+b)≥1−ξi
-
怎么理解这件事情呢,为了方便描述,我们将上面的式子两边同时除以 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣,得到
y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) + ξ i ∣ ∣ w ∣ ∣ ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) + \frac{\xi_i}{||w||}\geq \frac{1}{||w||} yi(∣∣w∣∣w⋅xi+b)+∣∣w∣∣ξi≥∣∣w∣∣1
如下图所示,红色圆圈和五角星为特异点,白色则为正常的训练数据点
- 对于图中的点 1 1 1,其位于间隔边界内部,且能够被正确分类,其距离分离超平面的距离可表示为为 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) y_i(\frac{{w}\cdot x_i+{b}}{||w||}) yi(∣∣w∣∣w⋅xi+b) ,我们通过对该点添加松弛变量 ξ 1 \xi_1 ξ1,使得 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) + ξ i ∣ ∣ w ∣ ∣ ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) + \frac{\xi_i}{||w||}\geq \frac{1}{||w||} yi(∣∣w∣∣w⋅xi+b)+∣∣w∣∣ξi≥∣∣w∣∣1成立,即可以看做是将点沿 w w w所在直线方向朝正确分类的一侧移动至间隔边界上或者间隔边界外。 至少应移动 ξ 1 ∣ ∣ w ∣ ∣ \frac {\xi_1}{||w||} ∣∣w∣∣ξ1至间隔边界上,此时有 0 < ξ 1 < 1 0< \xi_1< 1 0<ξ1<1
- 对于图中的点 2 2 2,其位于分离超平面上,则其距离分离超平面的距离可表示为为 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) = 0 y_i(\frac{{w}\cdot x_i+{b}}{||w||}) = 0 yi(∣∣w∣∣w⋅xi+b)=0 ,我们通过对该点添加松弛变量 ξ 2 \xi_2 ξ2,使得 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) + ξ i ∣ ∣ w ∣ ∣ ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) + \frac{\xi_i}{||w||}\geq \frac{1}{||w||} yi(∣∣w∣∣w⋅xi+b)+∣∣w∣∣ξi≥∣∣w∣∣1成立,即可以看做是将点沿 w w w所在直线方向朝正确分类的一侧移动至间隔边界上或者间隔边界外。至少应移动 ξ 2 ∣ ∣ w ∣ ∣ \frac {\xi_2}{||w||} ∣∣w∣∣ξ2至间隔边界上,此时有 ξ 2 = 1 \xi_2=1 ξ2=1
- 对于图中的点 3 3 3,被错误分类,其距离分离超平面的距离可表示为为 − y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) -y_i(\frac{{w}\cdot x_i+{b}}{||w||}) −yi(∣∣w∣∣w⋅xi+b) ,我们通过对该点添加松弛变量 ξ 3 \xi_3 ξ3,使得 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) + ξ i ∣ ∣ w ∣ ∣ ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) + \frac{\xi_i}{||w||}\geq \frac{1}{||w||} yi(∣∣w∣∣w⋅xi+b)+∣∣w∣∣ξi≥∣∣w∣∣1成立,即可以看做是将点沿 w w w所在直线方向朝正确分类的一侧移动至间隔边界上或者间隔边界外。至少应移动 ξ 3 ∣ ∣ w ∣ ∣ \frac {\xi_3}{||w||} ∣∣w∣∣ξ3至间隔边界上,此时有 ξ 3 > 1 \xi_3>1 ξ3>1
- 对于图中的点 4 4 4,其位于间隔边界外部,且能够被正确分类,其距离分离超平面的距离可表示为为 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) y_i(\frac{{w}\cdot x_i+{b}}{||w||}) yi(∣∣w∣∣w⋅xi+b) ,从图中可知,该点已经满足 y i ( w ⋅ x i + b ∣ ∣ w ∣ ∣ ) ≥ 1 ∣ ∣ w ∣ ∣ y_i(\frac{{w}\cdot x_i+{b}}{||w||}) \geq \frac{1}{||w||} yi(∣∣w∣∣w⋅xi+b)≥∣∣w∣∣1成立,此时有 ξ 4 = 0 \xi_4=0 ξ4=0
通过引入松弛变量的几何意义解释,我们可以认为,松弛变量 ξ i \xi_i ξi表征了样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 如果是特异点的话,需要多少距离,才能被正确分类。
我们需要对每个松弛变量 ξ i \xi_i ξi,支付一个代价 ξ i \xi_i ξi,目标函数由原来的 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2 变成了
1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i , C > 0 [ 1.1 ] \frac{1}{2}||w||^2+C\sum\limits_{i=1}^N\xi_i,\quad C>0 \quad [1.1] 21∣∣w∣∣2+Ci=1∑Nξi,C>0[1.1]
这里的 C ∑ i = 1 N ξ i C\sum\limits_{i=1}^N\xi_i Ci=1∑Nξi其实就是正则项, C C C 称为惩罚参数,一般由应用问题决定, C C C值大时对误分类的惩罚增大, C C C值小时对误分类的惩罚减小,最小化 [ 1.1 ] [1.1] [1.1] 其实就是使 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2尽可能小即间隔尽量大,同时使误分类点的个数尽量小, C C C则是调和二者的系数。
基于上面的思路,我们得到了线性不可分的线性支持向量机的学习最优化问题:
min w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i , [ 1.2 ] \min\limits_{w,b,\xi} \quad \frac{1}{2}||w||^2+C\sum\limits_{i=1}^N\xi_i,\quad [1.2] w,b,ξmin21∣∣w∣∣2+Ci=1∑Nξi,[1.2]
s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ , N [ 1.3 ] ξ i ≥ 0 , i = 1 , 2 , ⋯ , N [ 1.4 ] \begin{aligned} s.t. \quad &y_i({w}\cdot x_i+{b})\geq 1-\xi_i ,\quad i=1,2,\cdots,N \quad [1.3] \\ &\xi_i \geq 0 ,\quad i=1,2,\cdots,N \quad [1.4]\end{aligned} s.t.yi(w⋅xi+b)≥1−ξi,i=1,2,⋯,N[1.3]ξi≥0,i=1,2,⋯,N[1.4]
将这个问题作为原始问题,其仍是一个凸二次规划问题。相比于线性可分支持向量机的硬间隔最大化,我们将线性不可分的线性支持向量机学习问题称为软间隔最大化。显然,线性支持向量机是包含线性可分支持向量机的,由于现实中训练数据集往往是线性不可分的,因此线性支持向量机具有更广的适用性。
-
线性支持向量机定义
对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大化问题 [ 1.2 ] ∼ [ 1.4 ] [1.2] \sim [1.4] [1.2]∼[1.4],得到的分离超平面为 w ∗ ⋅ x + b ∗ = 0 w^*\cdot x+b^*=0 w∗⋅x+b∗=0
以及相应的分类决策函数
f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ = 0 ) f(x) = sign(w^*\cdot x+b^*=0) f(x)=sign(w∗⋅x+b∗=0)
称为线性支持向量机
2. 学习的对偶算法
参照线性可分支持向量机,我们依然通过对偶问题来解线性支持向量机的原始问题 [ 1.2 ] ∼ [ 1.4 ] [1.2] \sim [1.4] [1.2]∼[1.4]。
首先构建拉格朗日函数,为:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i [ y i ( w ⋅ x i + b ) − 1 + ξ i ] − ∑ i = 1 N μ i ξ i = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i + ∑ i = 1 N ( C − α i − μ i ) ξ i [ 2.1 ] \begin{aligned}L(w,b,\xi,\alpha,\mu) &= \frac{1}{2}||w||^2 +C\sum\limits_{i=1}^N\xi_i- \sum\limits_{i=1}^N\alpha_i[y_i({w}\cdot x_i+{b})-1+\xi_i]-\sum\limits_{i=1}^N\mu_i\xi_i \\&= \frac{1}{2}||w||^2 - \sum\limits_{i=1}^N\alpha_iy_i({w}\cdot x_i+{b})+\sum\limits_{i=1}^N\alpha_i + \sum\limits_{i=1}^N(C-\alpha_i-\mu_i)\xi_i \quad [2.1]\end{aligned} L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi[yi(w⋅xi+b)−1+ξi]−i=1∑Nμiξi=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi+i=1∑N(C−αi−μi)ξi[2.1]
其中, α i ≥ 0 , μ i ≥ 0 \alpha_i \geq 0,\mu_i\geq 0 αi≥0,μi≥0
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
max α , μ min w , b , ξ L ( w , b , α ) \max\limits_{\alpha,\mu} \min\limits_{w,b,\xi}L(w,b,\alpha) α,μmaxw,b,ξminL(w,b,α)
所以,为了得到对偶问题的解,需要先求 L ( w , b , ξ , α , μ ) L(w,b,\xi,\alpha,\mu) L(w,b,ξ,α,μ) 对 w , b , ξ w,b,\xi w,b,ξ的极小,再求对 α , μ \alpha,\mu α,μ的极大,
( 1 ) (1) (1) 求 min w , b , ξ L ( w , b , ξ , α , μ ) \min\limits_{w,b,\xi}L(w,b,\xi,\alpha,\mu) w,b,ξminL(w,b,ξ,α,μ)
将拉格朗日函数 L ( w , b , ξ , α , μ ) L(w,b,\xi,\alpha,\mu) L(w,b,ξ,α,μ) 分别对 w , b w,b w,b 求偏导并令其等于 0 0 0,得到
{ ∇ w L ( w , b , ξ , α , μ ) = w − ∑ i = 1 N α i y i x i = 0 ∇ b L ( w , b , ξ , α , μ ) = − ∑ i = 1 N α i y i = 0 ∇ ξ i L ( w , b , ξ , α , μ ) = C − α i − μ i = 0 \begin{cases} \nabla_wL(w,b,\xi,\alpha,\mu) = w -\sum\limits_{i=1}^N\alpha_iy_i x_i = 0 \\ \nabla_bL(w,b,\xi,\alpha,\mu) = -\sum\limits_{i=1}^N\alpha_iy_i = 0 \\ \nabla_{\xi_i} L(w,b,\xi,\alpha,\mu) = C-\alpha_i-\mu_i = 0 \end{cases} ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∇wL(w,b,ξ,α,μ)=w−i=1∑Nαiyixi=0∇bL(w,b,ξ,α,μ)=−i=1∑Nαiyi=0∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0
得
w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 \begin{aligned} &w = \sum\limits_{i=1}^N\alpha_iy_i x_i \\ &\sum\limits_{i=1}^N\alpha_iy_i=0 \\ &C-\alpha_i-\mu_i = 0 \end{aligned} w=i=1∑Nαiyixii=1∑Nαiyi=0C−αi−μi=0
将上式带入拉格朗日函数 [ 2.1 ] [2.1] [2.1] ,得到
L ( w , b , ξ , α , μ ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i [ ( ∑ j = 1 N α j y j x j ) ⋅ x i + b ] + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \begin{aligned}L(w,b,\xi,\alpha,\mu) &= \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)- \sum\limits_{i=1}^N\alpha_iy_i[{(\sum\limits_{j=1}^N\alpha_jy_j x_j)}\cdot x_i+{b}]+\sum\limits_{i=1}^N\alpha_i \\&= -\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum\limits_{i=1}^N\alpha_i\end{aligned} L(w,b,ξ,α,μ)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi[(j=1∑Nαjyjxj)⋅xi+b]+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
即
min w , b , ξ L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \min\limits_{w,b,\xi}L(w,b,\xi,\alpha,\mu) = -\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum\limits_{i=1}^N\alpha_i w,b,ξminL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
( 2 ) (2) (2) 由于 min w , b , ξ L ( w , b , ξ , α , μ ) \min\limits_{w,b,\xi}L(w,b,\xi,\alpha,\mu) w,b,ξminL(w,b,ξ,α,μ) 中没有参数 μ \mu μ了,因此只需求 min w , b , ξ L ( w , b , ξ , α , μ ) \min\limits_{w,b,\xi}L(w,b,\xi,\alpha,\mu) w,b,ξminL(w,b,ξ,α,μ) 对 α \alpha α的极大,即是对偶问题
max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \max\limits_\alpha -\frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum\limits_{i=1}^N\alpha_i αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
s . t . ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 α i ≥ = 0 , i = 1 , 2 , ⋯ , N μ i ≥ = 0 , i = 1 , 2 , ⋯ , N \begin{aligned} s.t.\quad &\sum\limits_{i=1}^N\alpha_iy_i=0 \\ &C-\alpha_i-\mu_i = 0 \\ &\alpha_i \geq =0, \quad i=1,2,\cdots,N \\&\mu_i \geq =0, \quad i=1,2,\cdots,N\end{aligned} s.t.i=1∑Nαiyi=0C−αi−μi=0αi≥=0,i=1,2,⋯,Nμi≥=0,i=1,2,⋯,N
该问题等价为
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i \min\limits_\alpha \quad \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum\limits_{i=1}^N\alpha_i αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N \begin{aligned}s.t. \quad &\sum\limits_{i=1}^N\alpha_iy_i=0 \\ &0\leq \alpha_i \leq C, \quad i=1,2,\cdots,N \end{aligned} s.t.i=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N
可以看出,线性支持向量机和线性可分支持向量机的对偶算法,就只有对偶变量的不等式约束条件不一样,前者是 0 ≤ α i ≤ C 0\leq \alpha_i \leq C 0≤αi≤C ,后者是 0 ≤ α i 0\leq \alpha_i 0≤αi 。
原始问题的解应满足 K K T KKT KKT条件,得到:
{ ∇ w L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ∇ b L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 ∇ ξ i L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = C − α i ∗ − μ i ∗ = 0 [ 2.2 ] α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ) = 0 [ 2.3 ] y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ≥ 0 μ i ∗ ξ i ∗ = 0 α i ∗ ≥ 0 ξ i ∗ ≥ 0 μ i ∗ ≥ 0 , i = 1 , 2 , ⋯ , N \begin{cases} \nabla_wL(w^*,b^*,\xi^*,\alpha^*,\mu^*) = w^* -\sum\limits_{i=1}^N\alpha_i^*y_i x_i = 0 \\ \nabla_bL(w^*,b^*,\xi^*,\alpha^*,\mu^*) = -\sum\limits_{i=1}^N\alpha_i^*y_i = 0 \\ \nabla_{\xi_i} L(w^*,b^*,\xi^*,\alpha^*,\mu^*) = C-\alpha_i^*-\mu_i^* = 0 \quad[2.2] \\ \alpha_i^*(y_i(w^* \cdot x_i+b^*)-1+\xi_i^*) = 0 \quad[2.3]\\ y_i(w^* \cdot x_i+b^*)-1+\xi_i^* \geq 0 \\ \mu_i^*\xi_i^* = 0\\ \alpha_i^* \geq 0 \\\xi_i^* \geq 0 \\ \mu_i^* \geq 0 ,\quad i=1,2,\cdots,N\end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−i=1∑Nαi∗yixi=0∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−i=1∑Nαi∗yi=0∇ξiL(w∗,b∗,ξ∗,α∗,μ∗)=C−αi∗−μi∗=0[2.2]αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=0[2.3]yi(w∗⋅xi+b∗)−1+ξi∗≥0μi∗ξi∗=0αi∗≥0ξi∗≥0μi∗≥0,i=1,2,⋯,N
由此得
w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum\limits_{i=1}^N\alpha_i^*y_i x_i w∗=i=1∑Nαi∗yixi
其中至少有一个 0 < α j < C 0< \alpha_j < C 0<αj<C(用反证法,假设 α ∗ = 0 \alpha^*=0 α∗=0,则 w ∗ = 0 w^*=0 w∗=0,很显然 w ∗ = 0 w^*=0 w∗=0不是原始最优化问题的解,产生矛盾),对此 j j j有
y i ( w ∗ ⋅ x j + b ∗ ) − 1 + ξ j ∗ = 0 y_i(w^* \cdot x_j+b^*)-1+\xi_j^*=0 yi(w∗⋅xj+b∗)−1+ξj∗=0
C − α j ∗ − μ j ∗ = 0 C-\alpha_j^*-\mu_j^* = 0 C−αj∗−μj∗=0 ,且 μ j ∗ ξ j ∗ = 0 \mu_j^*\xi_j^* = 0 μj∗ξj∗=0
由于 0 < α j < C 0< \alpha_j < C 0<αj<C 可知 μ j ∗ = C − α j ∗ \mu_j^*= C-\alpha_j^* μj∗=C−αj∗ ,由于 μ j ∗ ξ j ∗ = 0 \mu_j^*\xi_j^* = 0 μj∗ξj∗=0
所以有 ξ j ∗ = 0 \xi_j^* = 0 ξj∗=0
此时
y i ( w ∗ ⋅ x j + b ∗ ) − 1 = 0 y_i(w^* \cdot x_j+b^*)-1=0 yi(w∗⋅xj+b∗)−1=0
上式两边同时乘以 y j y_j yj
y j 2 ( w ∗ ⋅ x j + b ∗ ) − y j = 0 y_j^2(w^* \cdot x_j+b^*)-y_j=0 yj2(w∗⋅xj+b∗)−yj=0 根据 y j 2 = 1 y_j^2=1 yj2=1 可解得
b ∗ = y j − w ∗ ⋅ x j = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^* = y_j-w^* \cdot x_j = y_j-\sum\limits_{i=1}^N\alpha_i^*y_i (x_i\cdot x_j) b∗=yj−w∗⋅xj=yj−i=1∑Nαi∗yi(xi⋅xj)
至此,我们解出了 w ∗ w^* w∗和 b ∗ b^* b∗的值,则最大间隔分离超平面为
∑ i = 1 N α i ∗ y i ( x ⋅ x j ) + b ∗ = 0 \sum\limits_{i=1}^N\alpha_i^*y_i (x\cdot x_j)+b^*=0 i=1∑Nαi∗yi(x⋅xj)+b∗=0
分类决策函数可以写成
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x ⋅ x j ) + b ∗ ) f(x) = sign\bigg(\sum\limits_{i=1}^N\alpha_i^*y_i (x\cdot x_j)+b^*\bigg) f(x)=sign(i=1∑Nαi∗yi(x⋅xj)+b∗)
综上所述,我们得到了线性支持向量机的对偶学习算法,描述如下
-
算法2: 线性支持向量机的对偶学习算法
输入:线性数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中, x i ∈ χ = R n , y i ∈ Y = { − 1 , 1 } , i = 1 , 2 , ⋯ , N ; x_i \in \chi=R^n,y_i \in Y=\{-1,1\},\quad i=1,2,\cdots,N; xi∈χ=Rn,yi∈Y={−1,1},i=1,2,⋯,N;
输出:分离超平面和分类决策函数
( 1 ) (1) (1)选择惩罚参数 C > 0 C>0 C>0,构造并求解凸二次规划问题:
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i \min\limits_\alpha \quad \frac{1}{2}\sum\limits_{i=1}^N\sum\limits_{j=1}^N \alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum\limits_{i=1}^N\alpha_i αmin21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi
s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N \begin{aligned}s.t. \quad &\sum\limits_{i=1}^N\alpha_iy_i=0 \\ &0\leq \alpha_i \leq C, \quad i=1,2,\cdots,N \end{aligned} s.t.i=1∑Nαiyi=00≤αi≤C,i=1,2,⋯,N
求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯ , α N ∗ ) T \alpha^* = (\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T
( 2 ) (2) (2) 计算
w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum\limits_{i=1}^N\alpha_i^*y_i x_i w∗=i=1∑Nαi∗yixi
并选择 α ∗ \alpha^* α∗的一个正分量 a j ∗ > 0 a_j^*>0 aj∗>0适合条件 0 < α j ∗ < C 0< \alpha_j^* < C 0<αj∗<C,计算
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^* =y_j-\sum\limits_{i=1}^N\alpha_i^*y_i (x_i\cdot x_j) b∗=yj−i=1∑Nαi∗yi(xi⋅xj)
对任一适合条件 0 < α j ∗ < C 0< \alpha_j^* < C 0<αj∗<C的 a j ∗ a_j^* aj∗ ,均能按上式求出 b ∗ b^* b∗, 但是不同的样本点计算出的 b ∗ b^* b∗ 并不一致,所以一般在所有满足条件的样本点上都计算 b b b,然后求平均值作为 b ∗ b^* b∗的最终值。
( 3 ) (3) (3) 求得分离超平面
w ∗ ⋅ x + b ∗ = 0 w^* \cdot x+b^*=0 w∗⋅x+b∗=0
分类决策函数
f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x) = sign(w^* \cdot x+b^*) f(x)=sign(w∗⋅x+b∗)
3. 支持向量
在线性不可分的情况下,将对偶问题的解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯ , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T中对应于 α i ∗ > 0 \alpha_i^*>0 αi∗>0的样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的实例 x i x_i xi称为软间隔的支持向量。有上述求解 w ∗ w^* w∗和 b ∗ b^* b∗的过程可知,线性支持向量机仍只与支持向量有关。
求解过程中的 K K T KKT KKT 条件中,需要满足
α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ) = 0 \alpha_i^*(y_i(w^* \cdot x_i+b^*)-1+\xi_i^*) = 0 αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=0,对于支持向量,该式子可写成
y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ = 0 y_i(w^* \cdot x_i+b^*)-1+\xi_i^*= 0 yi(w∗⋅xi+b∗)−1+ξi∗=0 即
y i ( w ∗ ⋅ x i + b ∗ ) = 1 − ξ i ∗ y_i(w^* \cdot x_i+b^*)=1-\xi_i^* yi(w∗⋅xi+b∗)=1−ξi∗
根据该式可知软间隔的支持向量 x i x_i xi 要么在间隔边界上,要么在间隔边界与分离超平面之间,要么在分离超平面误分一侧。 若 a i ∗ < C a_i^*<C ai∗<C,则 ξ i = 0 \xi_i=0 ξi=0 (上面根据 K K T KKT KKT条件求解 b ∗ b^* b∗时有证明),此时有 y i ( w ∗ ⋅ x i + b ∗ ) = 1 y_i(w^* \cdot x_i+b^*)=1 yi(w∗⋅xi+b∗)=1 则支持向量 x i x_i xi恰好落在间隔边界上;若 a i ∗ = C , 0 < ξ i < 1 a_i^* = C, 0< \xi_i<1 ai∗=C,0<ξi<1,此时有 y i ( w ∗ ⋅ x i + b ∗ ) = 1 − ξ i ∈ ( 0 , 1 ) y_i(w^* \cdot x_i+b^*)=1-\xi_i \in (0,1) yi(w∗⋅xi+b∗)=1−ξi∈(0,1),则分类正确, x i x_i xi在间隔边界与分离超平面之间;若 a i ∗ = C , ξ i = 1 a_i^* = C, \xi_i=1 ai∗=C,ξi=1,此时有 y i ( w ∗ ⋅ x i + b ∗ ) = 0 y_i(w^* \cdot x_i+b^*)=0 yi(w∗⋅xi+b∗)=0,则 x i x_i xi在分离超平面上;若 a i ∗ = C , ξ i > 1 a_i^* = C, \xi_i>1 ai∗=C,ξi>1,此时有 y i ( w ∗ ⋅ x i + b ∗ ) = 1 − ξ i ∈ ( − ∞ , 0 ) y_i(w^* \cdot x_i+b^*)=1-\xi_i \in (-\infty,0) yi(w∗⋅xi+b∗)=1−ξi∈(−∞,0) 则 x i x_i xi位于分离超平面误分类一侧。这和我们在开篇引入松弛变量 ξ i \xi_i ξi时的几何解释是一致的。
至此我们完成了线性支持向量机的算法介绍,线性支持向量机可以从多个角度进行解释,感兴趣的同学可以自行查阅相关资料。
当然,还有很多训练数据,属于非线性可分的情况,我们需要找到一个合适的超曲面来实现数据分类,我们如果处理这类数据呢?下一篇,我们将介绍SVM使用核函数处理非线性可分的情况。
本文参考李航老师的《统计学习方法》