机器学习(六):支持向量机(SVM)

      • 引言
      • 一、数学预备知识
          • 1.函数极值必要条件
          • 2.拉格朗日乘子法
          • 3.库恩-塔克条件(K-T条件)
          • 4.拉格朗日对偶问题
      • 二、线性可分支持向量机
          • 1.基本型
          • 2.对偶问题
          • 3.利用对偶问题求解$w$和$b$
      • 三、线性支持向量机
          • 1.基本型
          • 2.对偶问题
          • 3.利用对偶问题求解$w$和$b$
      • 四、非线性支持向量机
          • 1、非线性分类问题
          • 2、核函数的定义
          • 3、核技巧在支持向量机中的应用
          • 4、常用核函数
      • 五、序列最小最优化(Sequential Minimal Optimization,SMO)算法
          • 1.SMO算法思路
          • 2.构造两个变量的二次规划问题
          • 4.两个变量(${α_1}^{old}$和${α_2}^{old}$)的选择方法
          • 5.计算b和差值$E_i$
          • 6.SMO算法
      • 六、SMO代码实现

引言

    支持向量机(support vector machines,SVM)是一种二值分类模型。分类学习最基本的想法就是基于训练集在样本空间中找到一个分隔超平面(separating hyperplane),将不同类别的样本分开。但能将训练样本分开的分隔面可能有很多,我们应该努力去找哪一个呢?直观上看,应该去找位于两类训练样本‘正中间’的分隔面,即图1中的红线。
机器学习(六):支持向量机(SVM)_第1张图片

图1  线性可分支持向量机     如何寻找这条红线?我们希望找到离分隔面最近的点,确保它们离分隔面的距离尽可能远。这里点到分隔面的距离称为间隔(margin)。我们要做的就是为红线设一线性方程,用点到线的距离公式计算间隔,求出能使间隔最大化的线性方程即可求出分隔超平面。     由于寻找分隔超平面就是寻找能使间隔最大化的函数的值,介绍理论知识部分会用到求函数极值的许多数学知识,均在‘数学预备知识’中介绍,此部分只给出结论,不予证明,有此数学基础可跳过。另外,现实中很多数据并不像图1那样清晰可分,更多时候是如图2或图3所示,它们分别对应支持向量机中由简至繁的模型:线性可分支持向量机、线性支持向量机、非线性支持向量机。

机器学习(六):支持向量机(SVM)_第2张图片

图2  线性支持向量机

机器学习(六):支持向量机(SVM)_第3张图片

图3  非线性支持向量机

一、数学预备知识

无约束条件下求函数极值

1.函数极值必要条件

设函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)具有偏导数,且在点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)处有极值,则有 f x ( x 0 , y 0 ) = 0 f_x(x_0,y_0)=0 fx(x0,y0)=0 f y ( x 0 , y 0 ) = 0 f_y(x_0,y_0)=0 fy(x0,y0)=0以上关于二元函数的概念,可推广到 n n n元函数。
例1  某厂要用钢板做成一个体积为 2 m 3 2m^3 2m3的长方体有盖水箱,问当长、宽、高各取怎样的尺寸时,才能使用料最省?
解:
设水箱的长、宽各为 x x x y y y,则其高应为 2 x y 2\over{xy} xy2,此水箱所用材料的面积 A = 2 ( x y + x ⋅ 2 x y + y ⋅ 2 x y ) = 2 ( x y + 2 y + 2 x )            x > 0 , y > 0 A=2\left(xy+x\cdot{2\over{xy}}+y\cdot{2\over{xy}}\right)=2\left(xy+{2\over y}+{2\over x}\right)\ \ \ \ \ \ \ \ \ \ x>0,y>0 A=2(xy+xxy2+yxy2)=2(xy+y2+x2)          x>0,y>0下面求使上述函数取得最小值的点(x,y),求其对x、y的一阶偏导数得 A x = 2 ( y − 2 x 2 ) = 0 A_x=2\left(y-{2\over{x^2}}\right)=0 Ax=2(yx22)=0 A y = 2 ( x − 2 y 2 ) = 0 A_y=2\left(x-{2\over{y^2}}\right)=0 Ay=2(xy22)=0解得 x = 2 3 x=\sqrt[3]2 x=32 y = 2 3 y=\sqrt[3]2 y=32
根据题意可知,水箱所用材料面积的最小值一定存在,并在开区域 D = { ( x , y ) ∣ x > 0 , y > 0 } D=\{(x,y)|x>0,y>0\} D={(x,y)x>0,y>0}内取得,又知函数在 D D D内只有唯一的驻点 ( 2 3 , 2 3 ) ({\sqrt[3]2},{\sqrt[3]2}) (32 ,32 ),因此可判定,当长、宽、高各取 2 3 \sqrt[3]2 32 2 3 \sqrt[3]2 32 2 x y = 2 3 {2\over{xy}}=\sqrt[3]2 xy2=32 时,使用料最省。

求等式约束条件下函数极值,可用拉格朗日乘子法求解

2.拉格朗日乘子法

要找函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在约束条件 s . t .    φ ( x , y ) = 0                ( 1 ) s.t.\ \ φ(x,y)=0\ \ \ \ \ \ \ \ \ \ \ \ \ \ (1) s.t.  φ(x,y)=0              (1)下的可能极值点,可以先作拉格朗日函数 L ( x , y , λ ) = f ( x , y ) + λ φ ( x , y ) L(x,y,λ)=f(x,y)+λφ(x,y) L(x,y,λ)=f(x,y)+λφ(x,y)其中 λ λ λ为参数,求其对 x x x y y y的一阶偏导数,并使之为零,然后与方程(1)联立起来: f x ( x , y ) + λ φ x ( x , y ) = 0 f_x(x,y)+λφ_x(x,y)=0 fx(x,y)+λφx(x,y)=0 f y ( x , y ) + λ φ y ( x , y ) = 0 f_y(x,y)+λφ_y(x,y)=0 fy(x,y)+λφy(x,y)=0 φ ( x , y ) = 0 φ(x,y)=0 φ(x,y)=0由这方程组解出 x x x y y y λ λ λ,这样得到的 ( x , y ) (x,y) (x,y)就是函数 f ( x , y ) f(x,y) f(x,y)在附加条件 φ ( x , y ) = 0 φ(x,y)=0 φ(x,y)=0下的可能极值点。
λ λ λ称为拉格朗日乘子。
这方法还可以推广到自变量多于两个而条件多于一个的情形。
例如要求函数 u = f ( x , y , z , t ) u=f(x,y,z,t) u=f(x,y,z,t)在约束条件 s . t .    φ 1 ( x , y , z , t ) = 0 , φ 2 ( x , y , z , t ) = 0               ( 2 ) s.t.\ \ φ_1(x,y,z,t)=0,φ_2(x,y,z,t)=0\ \ \ \ \ \ \ \ \ \ \ \ \ (2) s.t.  φ1(x,y,z,t)=0,φ2(x,y,z,t)=0             (2)下的可能极值点,可以先作拉格朗日函数 L ( x , y , z , t , λ 1 , λ 2 ) = f ( x , y , z , t ) + λ 1 φ 1 ( x , y , z , t ) + λ 2 φ 2 ( x , y , z , t ) L(x,y,z,t,λ_1,λ_2)=f(x,y,z,t)+λ_1φ_1(x,y,z,t)+λ_2φ_2(x,y,z,t) L(x,y,z,t,λ1,λ2)=f(x,y,z,t)+λ1φ1(x,y,z,t)+λ2φ2(x,y,z,t)其中 λ 1 λ_1 λ1 λ 2 λ_2 λ2均为参数,求其对 x x x y y y的一阶偏导数,并使之为零,然后与(2)中2个方程联立起来求解,这样得出的 ( x , y , z , t ) (x,y,z,t) (x,y,z,t)就是函数 f ( x , y , z , t ) f(x,y,z,t) f(x,y,z,t)在附加条件(2)下的可能极值点。
至于如何确定所求得的点是否为极值点,在实际问题中往往可根据问题本身的性质来判定。
例2  求表面积为 a 2 a^2 a2体积为最大的长方体的体积。
解:
设长方体的三棱长为 x , y , z x,y,z x,y,z,则问题就是在条件 φ ( x , y , z ) = 2 x y + 2 x z + 2 y z − a 2 = 0 下 φ(x,y,z)=2xy+2xz+2yz-a^2=0下 φ(x,y,z)=2xy+2xz+2yza2=0,求函数 V = x y z   ( x > 0 , y > 0 , z > 0 ) V=xyz\ (x>0,y>0,z>0) V=xyz (x>0,y>0,z>0)的最大值。作拉格朗日函数 L ( x , y , z , λ ) = x y z + λ ( 2 x y + 2 x z + 2 y z − a 2 ) L(x,y,z,λ)=xyz+λ(2xy+2xz+2yz-a^2) L(x,y,z,λ)=xyz+λ(2xy+2xz+2yza2)求其对 x , y , z x,y,z x,y,z的偏导数,并使之为零,得到 y z + 2 λ ( y + z ) = 0 yz+2λ(y+z)=0 yz+2λ(y+z)=0 x z + 2 λ ( x + z ) = 0 xz+2λ(x+z)=0 xz+2λ(x+z)=0 x y + 2 λ ( x + y ) = 0 xy+2λ(x+y)=0 xy+2λ(x+y)=0再与约束条件 φ ( x , y , z ) φ(x,y,z) φ(x,y,z)联立求解,得 x = y = z = 6 6 a x=y=z={\sqrt6\over6}a x=y=z=66 a,这是唯一可能的极值点,因为由问题本身可知最大值一定存在,所以最大值就在这个可能的极值点处取得。
固表面积为 a 2 a^2 a2体积为最大的长方体的体积为 x y z = 6 36 a 3 xyz={\sqrt6\over36}a^3 xyz=366 a3

求不等式约束条件下函数极值,可用K-T条件求解

3.库恩-塔克条件(K-T条件)

定义: 线性规划的一般形式
机器学习(六):支持向量机(SVM)_第4张图片
X ∗ X^* X是非线性规划(4)式的极小点,且 X ∗ X^* X点的所有起作用约束的梯度线性无关,则存在向量 T = ( λ 1 , λ 2 , ⋯   , λ n ) T T=(λ_1,λ_2,\cdots,λ_n)^T T=(λ1,λ2,,λn)T,使下述条件成立:
这里写图片描述
条件(5)式常简称为K-T条件,满足这个条件的点 X ∗ X^* X称为库恩-塔克点(或K-T点)。
为了得出非线性规划(3)式的库恩-塔克条件,我们用
这里写图片描述
代替约束条件 h i ( X ) = 0 h_i(X)=0 hi(X)=0,这样即可得出(5)求解。
上式中, λ 1 , λ 2 , . . . , λ n λ_1,λ_2,...,λ_n λ1,λ2,...,λn称为广义拉格朗日(Lagrange)乘子。
例3  用K-T条件解下述非线性规划问题 min ⁡    f ( x ) = ( x − 3 ) 2 \min\ \ f(x)=(x-3)^2 min  f(x)=(x3)2 s . t .    0 ≤ x ≤ 5 s.t.\ \ 0≤x≤5 s.t.  0x5解:
先将该非线性规划问题写成以下形式                   min ⁡    f ( x ) = ( x − 3 ) 2 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \min\ \ f(x)=(x-3)^2                  min  f(x)=(x3)2 s . t .    g 1 ( x ) = x ≥ 0 s.t.\ \ g_1(x)=x≥0 s.t.  g1(x)=x0                 g 2 ( x ) = 5 − x ≥ 0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ g_2(x)=5-x≥0                g2(x)=5x0写出其目标函数和约束函数的梯度: ∇ f ( x ) = 2 ( x − 3 ) ∇f(x)=2(x-3) f(x)=2(x3) ∇ g 1 ( x ) = 1 , ∇ g 2 ( x ) = − 1 ∇g_1(x)=1, ∇g_2(x)=-1 g1(x)=1,g2(x)=1对第一个和第二个约束条件分别引入广义拉格朗日乘子 λ 1 λ_1 λ1 λ 2 λ_2 λ2,则可写出该问题的K-T条件如下: 2 ( x − 3 ) − λ 1 + λ 2 = 0 2(x-3)-λ_1+λ_2=0 2(x3)λ1+λ2=0 λ 1 x = 0 λ_1x=0 λ1x=0 λ 2 ( 5 − x ) = 0 λ_2(5-x)=0 λ2(5x)=0 λ 1 , λ 2 ≥ 0 λ_1,λ_2≥0 λ1,λ20解得 λ 1 = 0 λ_1=0 λ1=0 λ 2 = 0 λ_2=0 λ2=0 x = 3 x=3 x=3
固函数在约束条件下的最小值为 f ( 3 ) = 0 f(3)=0 f(3)=0

例4  写出下述非线性规划问题的K-T条件 min ⁡    f ( x 1 , x 2 ) = ( x 1 − 3 ) 2 + ( x 2 − 2 ) 2 \min\ \ f(x_1,x_2)=(x_1-3)^2+(x_2-2)^2 min  f(x1,x2)=(x13)2+(x22)2 s . t .    4 − x 1 − x 2 ≥ 0 s.t.\ \ 4-x_1-x_2≥0 s.t.  4x1x20 x 1 , x 2 ≥ 0 x_1,x_2≥0 x1,x20解:
先将该非线性规划问题写成以下形式 min ⁡    f ( x 1 , x 2 ) = ( x 1 − 3 ) 2 + ( x 2 − 2 ) 2 \min\ \ f(x_1,x_2)=(x_1-3)^2+(x_2-2)^2 min  f(x1,x2)=(x13)2+(x22)2        s . t .    g 1 ( x 1 , x 2 ) = 4 − x 1 − x 2 ≥ 0 \ \ \ \ \ \ s.t.\ \ g_1(x_1,x_2)=4-x1-x2≥0       s.t.  g1(x1,x2)=4x1x20 g 2 ( x 1 , x 2 ) = x 1 ≥ 0 g_2(x_1,x_2)=x1≥0 g2(x1,x2)=x10 g 3 ( x 1 , x 2 ) = x 2 ≥ 0 g_3(x_1,x_2)=x2≥0 g3(x1,x2)=x20写出其目标函数和约束函数的梯度: ∇ f ( x 1 , x 2 ) = ( 2 x 1 − 6 , 2 x 2 − 4 ) T ∇f(x_1,x_2)=(2x_1-6,2x_2-4)^T f(x1,x2)=(2x16,2x24)T ∇ g 1 ( x 1 , x 2 ) = ( − 1 , − 1 ) T , ∇ g 2 ( x 1 , x 2 ) = ( 1 , 0 ) T , ∇ g 3 ( x 1 , x 2 ) = ( 0 , 1 ) T ∇g_1(x_1,x_2)=(-1,-1)^T, ∇g_2(x_1,x_2)=(1,0)^T,∇g_3(x_1,x_2)=(0,1)^T g1(x1,x2)=(1,1)T,g2(x1,x2)=(1,0)T,g3(x1,x2)=(0,1)T对三个约束条件分别引入广义拉格朗日乘子 λ 1 λ_1 λ1 λ 2 λ_2 λ2 λ 3 λ_3 λ3,则可写出该问题的K-T条件如下: ( 2 x 1 − 6 , 2 x 2 − 4 ) T − λ 1 ( − 1 , − 1 ) T − λ 2 ( 1 , 0 ) T − λ 3 ( 0 , 1 ) T = 0 (2x_1-6,2x_2-4)^T-λ_1(-1,-1)^T-λ_2(1,0)^T-λ_3(0,1)^T=0 (2x16,2x24)Tλ1(1,1)Tλ2(1,0)Tλ3(0,1)T=0分解为: 2 x 1 − 6 + λ 1 − λ 2 = 0 2x_1-6+λ_1-λ_2=0 2x16+λ1λ2=0 2 x 2 − 4 + λ 1 − λ 3 = 0 2x_2-4+λ_1-λ_3=0 2x24+λ1λ3=0 λ 1 ( 4 − x 1 − x 2 ) = 0 λ_1(4-x_1-x_2)=0 λ1(4x1x2)=0 λ 2 x 1 = 0 λ_2x_1=0 λ2x1=0 λ 3 x 2 = 0 λ_3x_2=0 λ3x2=0 λ 1 , λ 2 , λ 3 ≥ 0 λ_1,λ_2,λ_3≥0 λ1,λ2,λ30

求不等式约束条件下函数极值,若原始问题过于复杂,可转换成对偶问题

4.拉格朗日对偶问题

1)原始问题
假设 f ( x ) f(x) f(x) c i ( x ) c_i(x) ci(x) h j ( x ) h_j(x) hj(x)是定义在 R n R^n Rn上的连续可微函数,考虑约束条件
这里写图片描述
称此约束最优化问题为原始最优化问题或原始问题。
作广义拉格朗日函数 L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) L(x,α,β)=f(x)+\sum_{i=1}^kα_ic_i(x)+\sum_{j=1}^lβ_jh_j(x) L(x,α,β)=f(x)+i=1kαici(x)+j=1lβjhj(x)其中 x = ( x 1 , x 2 , . . . , x n ) T ∈ R n x=(x_1,x_2,...,x_n)^T∈R^n x=(x1,x2,...,xn)TRn α i α_i αi β j β_j βj是拉格朗日乘子且 α i ≥ 0 α_i≥0 αi0。考虑 x x x的函数: θ p ( x ) = max ⁡ α , β , α i ≥ 0 L ( x , α , β ) θ_p(x)=\max_{α,β,α_i≥0}L(x,α,β) θp(x)=α,β,αi0maxL(x,α,β)这里下标P表示原始问题,则 θ p ( x ) = max ⁡ α , β , α i ≥ 0 f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) θ_p(x)=\max_{α,β,α_i≥0}f(x)+\sum_{i=1}^kα_ic_i(x)+\sum_{j=1}^lβ_jh_j(x) θp(x)=α,β,αi0maxf(x)+i=1kαici(x)+j=1lβjhj(x)因为 α i ≥ 0 α_i≥0 αi0 c i ( x ) ≤ 0 c_i(x)≤0 ci(x)0 h j ( x ) = 0 h_j(x)=0 hj(x)=0,解得 θ P ( x ) = f ( x ) θ_P(x)=f(x) θP(x)=f(x)
考虑极小化问题 min ⁡ x θ p ( x ) = min ⁡ x max ⁡ α , β , α i ≥ 0 L ( x , α , β ) \min_xθ_p(x)=\min_x\max_{α,β,α_i≥0}L(x,α,β) xminθp(x)=xminα,β,αi0maxL(x,α,β)它是与原始最优化问题(6)等价的,即它们有相同的解。问题 min ⁡ x max ⁡ α , β , α i ≥ 0 L ( x , α , β ) \min_x\max_{α,β,α_i≥0}L(x,α,β) minxmaxα,β,αi0L(x,α,β)称为广义拉格朗日的极小极大问题。
为了方便,定义原始问题的最优值 p ∗ = min ⁡ x θ p ( x ) p^*=\min_xθ_p(x) p=xminθp(x)称为原始问题的值。
2)对偶问题 θ D ( α , β ) = min ⁡ x L ( x , α , β ) θ_D(α,β)=\min_xL(x,α,β) θD(α,β)=xminL(x,α,β)再考虑极大化 θ D ( α , β ) = min ⁡ x L ( x , α , β ) θ_D(α,β)=\min_xL(x,α,β) θD(α,β)=minxL(x,α,β),即 max ⁡ α , β , α i ≥ 0 θ D ( α , β ) = max ⁡ α , β , α i ≥ 0 min ⁡ x L ( x , α , β ) \max_{α,β,α_i≥0}θ_D(α,β)=\max_{α,β,α_i≥0}\min_xL(x,α,β) α,β,αi0maxθD(α,β)=α,β,αi0maxxminL(x,α,β)问题 max ⁡ α , β , α i ≥ 0 min ⁡ x L ( x , α , β ) \max_{α,β,α_i≥0}\min_xL(x,α,β) maxα,β,αi0minxL(x,α,β)称为广义拉格朗日的极大极小问题。
将拉格朗日函数的极大极小问题表示为约束最优化问题:
这里写图片描述
称为原始问题的对偶问题。
为了方便,定义对偶问题的最优值 d ∗ = max ⁡ α , β , α i ≥ 0 θ D ( α , β ) d^*=\max_{α,β,α_i≥0}θ_D(α,β) d=α,β,αi0maxθD(α,β)称为对偶问题的值。
3)原始问题与对偶问题的关系
对原始问题(6)和对偶问题(7),假设函数 f ( x ) f(x) f(x) c i ( x ) c_i(x) ci(x)是凸函数, h j ( x ) h_j(x) hj(x)是仿射函数,并且不等式约束 c i ( x ) c_i(x) ci(x)是严格可行的,即存在 x x x,对所有 i i i c i ( x ) < 0 c_i(x)<0 ci(x)<0,则存在 x ∗ x^* x α ∗ α^* α β ∗ β^* β,使得 x ∗ x^* x是原始问题的解, α ∗ α^* α β ∗ β^* β是对偶问题的解,并且 p ∗ = d ∗ = L ( x ∗ , α ∗ , β ∗ ) p^*=d^*=L(x^*,α^*,β^*) p=d=L(x,α,β) x ∗ x^* x α ∗ α^* α β ∗ β^* β分别是原始问题和对偶问题的解的充分必要条件是 x ∗ x^* x α ∗ α^* α β ∗ β^* β满足K-T条件。
例5  求下列非线性规划问题的对偶问题 min ⁡    x 1 2 + x 2 2 \min\ \ {x_1}^2+{x_2}^2 min  x12+x22 s . t .    4 − x 1 − x 2 ≤ 0 s.t.\ \ 4-x_1-x_2≤0 s.t.  4x1x20解:
该问题的拉格朗日函数为 L ( x , α ) = x 1 2 + x 2 2 + α ( 4 − x 1 − x 2 ) ,         α ≥ 0 L(x,α)={x_1}^2+{x_2}^2+α(4-x_1-x_2),\ \ \ \ \ \ \ α≥0 L(x,α)=x12+x22+α(4x1x2),       α0 f ( x ) = x 1 2 + x 2 2 f(x)={x_1}^2+{x_2}^2 f(x)=x12+x22,其中 x = ( x 1 , x 2 ) T x=(x_1,x_2)^T x=(x1,x2)T。则原始问题为: min ⁡ x   f ( x ) = min ⁡ x   θ P ( x ) = min ⁡ x max ⁡ α , α ≥ 0 L ( x , α ) \min_x\ f(x)=\min_x\ θ_P(x)=\min_x\max_{α,α≥0}L(x,α) xmin f(x)=xmin θP(x)=xminα,α0maxL(x,α)对偶问题为: max ⁡ α , α ≥ 0 θ D ( α ) = max ⁡ α , α ≥ 0 min ⁡ x L ( x , α ) \max_{α,α≥0}θ_D(α)=\max_{α,α≥0}\min_xL(x,α) α,α0maxθD(α)=α,α0maxxminL(x,α) min ⁡ x L ( x , α ) = min ⁡ x x 1 2 + x 2 2 + α ( 4 − x 1 − x 2 ) \min_xL(x,α)=\min_x{x_1}^2+{x_2}^2+α(4-x_1-x_2) minxL(x,α)=minxx12+x22+α(4x1x2),求其对 x 1 x_1 x1 x 2 x_2 x2的一阶偏导数得 L x 1 = 2 x 1 − α = 0 L_{x1}=2x_1-α=0 Lx1=2x1α=0 L x 2 = 2 x 2 − α = 0 L_{x2}=2x_2-α=0 Lx2=2x2α=0解得 x 1 = α 2 x_1={α\over2} x1=2α x 2 = α 2 x_2={α\over2} x2=2α,代入得 min ⁡ x L ( x , α ) = − α 2 2 + 4 α \min_xL(x,α)=-{{α^2}\over2}+4α minxL(x,α)=2α2+4α
求得对偶问题为 max ⁡ α , α ≥ 0 θ D ( α ) = max ⁡ α , α ≥ 0 − α 2 2 + 4 α \max_{α,α≥0}θ_D(α)=\max_{α,α≥0}-{{α^2}\over2}+4α α,α0maxθD(α)=α,α0max2α2+4α



二、线性可分支持向量机

1.基本型

给定训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } D=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} D={(x1,y1),(x2,y2),,(xN,yN)} y i ∈ { − 1 , 1 } y_i∈\{-1,1\} yi{1,1},分类学习最基本的想法就是基于训练集 D D D在样本空间中找到一个分隔超平面,将不同类别的样本分开。
在样本空间中,分隔超平面可通过如下线性方程来描述: w T x + b = 0                                  ( 8 ) w^Tx+b=0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (8) wTx+b=0                                (8)其中 w = ( w 1 , w 2 , ⋯   , w n ) T w=(w_1,w_2,\cdots,w_n)^T w=(w1,w2,,wn)T为法向量,决定了分隔面的方向, b b b为位移项,决定了分隔面与原点之间的距离。样本空间中任意点x到分隔面的距离可写为 r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r={{|w^Tx+b|}\over{||w||}} r=wwTx+b证明:
考虑二维空间,则(8)可表示为 w 1 x 1 + w 2 x 2 + b = 0 w_1x_1+w_2x_2+b=0 w1x1+w2x2+b=0,点 ( x 1 , x 2 ) (x_1,x_2) (x1,x2)到线的距离为 r = ∣ w 1 x 1 + w 2 x 2 + b ∣ w 1 2 + w 2 2 r={{|w_1x_1+w_2x_2+b|}\over{\sqrt{{w_1}^2+{w_2}^2}}} r=w12+w22 w1x1+w2x2+b考虑三维空间,则(8)可表示为 w 1 x 1 + w 2 x 2 + w 3 x 3 + b = 0 w_1x_1+w_2x_2+w_3x_3+b=0 w1x1+w2x2+w3x3+b=0,点 ( x 1 , x 2 , x 3 ) (x_1,x_2,x_3) (x1,x2,x3)到面的距离为 r = ∣ w 1 x 1 + w 2 x 2 + w 3 x 3 + b ∣ w 1 2 + w 2 2 + w 3 2 r={{|w_1x_1+w_2x_2+w_3x_3+b|}\over{\sqrt{{w_1}^2+{w_2}^2+{w_3}^2}}} r=w12+w22+w32 w1x1+w2x2+w3x3+b以此类推,可得 n n n维空间,点 ( x 1 , x 2 , … , x n (x_1,x_2,…,x_n (x1,x2,,xn)到分隔面的距离为 r = ∣ w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b ∣ w 1 2 + w 2 2 + ⋯ + w n 2 = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r={{|w_1x_1+w_2x_2+\cdots+w_nx_n+b|}\over{\sqrt{{w_1}^2+{w_2}^2+\cdots+{w_n}^2}}}={{|w^Tx+b|}\over{||w||}} r=w12+w22++wn2 w1x1+w2x2++wnxn+b=wwTx+b
假设分隔面能将训练样本正确分类,即对于 ( x i , y i ) ∈ D (x_i,y_i)∈D (xi,yi)D,若 y i = + 1 y_i=+1 yi=+1,则有 w T x + b > 0 w^Tx+b>0 wTx+b>0;若 y i = − 1 y_i=- 1 yi=1,则有 w T x + b < 0 w^Tx+b<0 wTx+b<0。令
这里写图片描述
如图4所示,距离分隔面最近的这几个训练样本点(位于黑线上的点)使式(9)的等号成立,它们被称为“支持向量”,两个异类支持向量到超平面的距离(两条黑线的间隔)之和为 γ = 2 ∣ ∣ w ∣ ∣ γ={2\over{||w||}} γ=w2它被称为间隔。
证明:
假设 ξ > 0 ξ>0 ξ>0 ξ 2 = 1 ξ^2=1 ξ2=1
y i = + 1 y_i=+1 yi=+1,则有 w T x + b > 0 w^Tx+b>0 wTx+b>0等价于 w T x + b ≥ ξ w^Tx+b≥ξ wTx+bξ,等号两边同时乘以 ξ ξ ξ ξ w T x + ξ b ≥ 1 ξw^Tx+ξb≥1 ξwTx+ξb1
y i = − 1 y_i=-1 yi=1,则有 w T x + b < 0 w^Tx+b<0 wTx+b<0等价于 w T x + b ≤ − ξ w^Tx+b≤-ξ wTx+bξ,等号两边同时乘以 ξ ξ ξ ξ w T x + ξ b ≤ − 1 ξw^Tx+ξb≤-1 ξwTx+ξb1
即若分隔面能将训练样本正确分类,则总存在缩放变换 ξ w → w ′ ξw\rightarrow w' ξww ξ b → b ′ ξb\rightarrow b' ξbb使式(9)成立。
机器学习(六):支持向量机(SVM)_第5张图片

图4

欲找到具有“最大间隔”的分隔面,也就是要找到能满足式(9)中约束的参数 w w w b b b,使
γ γ γ最大,即
这里写图片描述
显然为了最大化间隔,仅需要最大化 ∣ ∣ w ∣ ∣ − 1 ||w||^{-1} w1,这等价于最小化 ∣ ∣ w ∣ ∣ 2 ||w||^2 w2,于是式(10)可重写为
这里写图片描述
这就是支持向量机的基本型。

2.对偶问题

基本型的对偶问题为:
这里写图片描述
证明:
基本型的拉格朗日函数为 L ( w , b , α ) = ∣ ∣ w ∣ ∣ 2 2 + ∑ i = 1 n α i ( 1 − y i ( w T x i + b ) ) ,            i = 1 , 2 , . . . , n L(w,b,α)={{||w||^2}\over2}+\sum_{i=1}^nα_i\left(1−y_i(w^Tx_i +b)\right),\ \ \ \ \ \ \ \ \ \ i=1,2,...,n L(w,b,α)=2w2+i=1nαi(1yi(wTxi+b)),          i=1,2,...,n其中 α = ( α 1 , α 2 , . . . , α n ) α=(α_1,α_2,...,α_n) α=(α1,α2,...,αn),设 f ( w , b ) = ∣ ∣ w ∣ ∣ 2 2 f(w,b)={{||w||^2}\over2} f(w,b)=2w2,则原始问题为 min ⁡ w , b   f ( w , b ) = min ⁡ w , b   θ P ( w , b ) = min ⁡ w , b max ⁡ α , α ≥ 0 L ( w , b , α ) \min_{w,b}\ f(w,b)=\min_{w,b}\ θ_P(w,b)=\min_{w,b}\max_{α,α≥0}L(w,b,α) w,bmin f(w,b)=w,bmin θP(w,b)=w,bminα,α0maxL(w,b,α)对偶问题为: max ⁡ α , α ≥ 0 θ D ( α ) = max ⁡ α , α ≥ 0 min ⁡ w , b L ( w , b , α ) \max_{α,α≥0}θ_D(α)=\max_{α,α≥0}\min_{w,b}L(w,b,α) α,α0maxθD(α)=α,α0maxw,bminL(w,b,α)要求对偶问题,先求 m i n w , b L ( w , b , α ) min_{w,b}L(w,b,α) minw,bL(w,b,α),即求 L ( w , b , α ) L(w,b,α) L(w,b,α) w w w b b b的一阶偏导数并使之为零 L w = w − ∑ i = 1 n α i y i x i = 0 L_w=w-\sum_{i=1}^nα_iy_ix_i=0 Lw=wi=1nαiyixi=0 L b = − ∑ i = 1 n α i y i = 0 L_b=-\sum_{i=1}^nα_iy_i=0 Lb=i=1nαiyi=0解得 w = ∑ i = 1 n α i y i x i                    ( 13 ) w=\sum_{i=1}^nα_iy_ix_i\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (13) w=i=1nαiyixi                  (13) 0 = ∑ i = 1 n α i y i                          ( 14 ) 0=\sum_{i=1}^nα_iy_i\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (14) 0=i=1nαiyi                        (14)将(13)代入拉格朗日函数 L ( w , b , α ) L(w,b,α) L(w,b,α),并利用(14)得
机器学习(六):支持向量机(SVM)_第6张图片
已知 m i n w , b L ( w , b , α ) min_{w,b}L(w,b,α) minw,bL(w,b,α)则可得对偶问题(12)

3.利用对偶问题求解 w w w b b b

α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α n ∗ ) T α^*=({α_1}^*,{α_2}^*,...,{α_n}^*)^T α=(α1,α2,...,αn)T是对偶问题(12)的解,则存在下标 j j j,使得 α j ∗ > 0 {α_j}^*>0 αj>0,并可按下式求得原始问题(11)的解 w ∗ w^* w b ∗ b^* b w ∗ = ∑ i = 1 n α i y i x i                     ( 15 ) w^*=\sum_{i=1}^nα_iy_ix_i\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (15) w=i=1nαiyixi                   (15) b ∗ = y i − ∑ i = 1 n α i y i x i T x j           ( 16 ) b^*=y_i-\sum_{i=1}^nα_iy_i{x_i}^T{x_j}\ \ \ \ \ \ \ \ \ (16) b=yii=1nαiyixiTxj         (16)
证明:
w ∗ w^* w b ∗ b^* b α ∗ α^* α分别是原始问题和对偶问题的解的充分必要条件是 w ∗ w^* w b ∗ b^* b α ∗ α^* α满足K-T条件。
先将(11)式写成以下形式: min ⁡ w , b   f ( w , b ) = ∣ ∣ w ∣ ∣ 2 2 \min_{w,b}\ f(w,b)={{||w||^2}\over2} w,bmin f(w,b)=2w2 s . t .   g i ( w , b ) = y i ( w T x i + b ) − 1 ≥ 0 ,         i = 1 , 2 , . . . , n s.t.\ g_i(w,b)=y_i(w^Tx_i+b)-1≥0,\ \ \ \ \ \ \ i=1,2,...,n s.t. gi(w,b)=yi(wTxi+b)10,       i=1,2,...,n写出其目标函数和约束函数的梯度: ∇ f ( w , b ) = ( ∣ ∣ w ∣ ∣ , 0 ) T , ∇ g i ( w , b ) = ( x i y i , y i ) T ∇f(w,b)=(||w||,0)^T, ∇g_i(w,b)=(x_iy_i,y_i)^T f(w,b)=(w,0)T,gi(w,b)=(xiyi,yi)T n n n个约束条件分别引入广义拉格朗日乘子 α 1 , α 2 , . . . , α n α_1,α_2,...,α_n α1,α2,...,αn,则可写出该问题的K-T条件如下: ( ∣ ∣ w ∣ ∣ , 0 ) T − ∑ i = 1 n α i ( x i y i , y i ) T = 0 (||w||,0)^T-\sum_{i=1}^nα_i(x_iy_i,y_i)^T=0 (w,0)Ti=1nαi(xiyi,yi)T=0将上式分解为: ∣ ∣ w ∣ ∣ = ∑ i = 1 n α i x i y i = 0 ||w||=\sum_{i=1}^nα_ix_iy_i=0 w=i=1nαixiyi=0 − ∑ i = 1 n α i y i = 0 -\sum_{i=1}^nα_iy_i=0 i=1nαiyi=0 α i ( y i ( w T x i + b ) − 1 ) = 0 α_i(y_i(w^Tx_i+b)-1)=0 αi(yi(wTxi+b)1)=0 α i ≥ 0 ,            i = 1 , 2 , . . . , n α_i≥0, \ \ \ \ \ \ \ \ \ \ i=1,2,...,n αi0,          i=1,2,...,n由此解得式(15)
其中至少有一个 α j ∗ > 0 {α_j}^*>0 αj>0(用反证法,假设 α ∗ = 0 α^*=0 α=0,由式(15)可知 w ∗ = 0 w^*=0 w=0,而 w ∗ = 0 w^*=0 w=0不是原始问题(11)的解,产生矛盾),对此 j j j y j ( w ∗ x j + b ∗ ) − 1 = 0 ( 17 ) y_j(w^*x_j+b^*)-1=0 (17) yj(wxj+b)1=0(17)注意到 y j 2 = 1 {y_j}^2=1 yj2=1,将(17)两边同时乘以 y j y_j yj,将式(15)代入即得式(16)
综上所述,对于给定的线性可分训练数据集,可以先求对偶问题(12)的解 α ∗ α^* α,再利用式(15) (16)求得原始问题的解 w ∗ w^* w b ∗ b^* b,从而得到分隔超平面的线性方程。这种算法称为线性可分支持向量机的对偶算法,是线性可分支持向量机学习的基本算法。



三、线性支持向量机

1.基本型

在前面的讨论中,我们一直假定训练样本是线性可分的,即存在一个分隔面能将不同类的样本完全划分开。然而在现实任务中,往往存在一些异常点。线性不可分意味着某些样本点 ( x i , y i ) (x_i,y_i) (xi,yi)不能满足函数间隔大于等于1的约束条件,如图5绿色框中的两个样本点。为了解决这个问题,可以对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi)引进一个松弛变量 ξ i ≥ 0 ξ_i≥0 ξi0,使函数间隔加上松弛变量大于等于1,这样,约束条件变为 y i ( w T x i + b ) + ξ i ≥ 1 y_i(w^Tx_i+b)+ξ_i≥1 yi(wTxi+b)+ξi1目标函数由原来的 m i n w , b ∣ ∣ w ∣ ∣ 2 2 min_{w,b}{{||w||^2}\over2} minw,b2w2变成 min ⁡ w , b , ξ   ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 n ξ i                 ( 18 ) \min_{w,b,ξ}\ {{||w||^2}\over2}+C\sum_{i=1}^nξ_i\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (18) w,b,ξmin 2w2+Ci=1nξi               (18)这里 C > 0 C>0 C>0称为惩罚参数,一般由应用问题决定, C C C值大时对误分类的惩罚增大, C C C值小时对误分类的惩罚减小。最小化目标函数(18)包含两层含义:使 ∣ ∣ w ∣ ∣ 2 2 {{||w||^2}\over2} 2w2尽量小即间隔尽量大,同时使误分类点的个数尽量小。至此,线性支持向量机基本型如下:
这里写图片描述
机器学习(六):支持向量机(SVM)_第7张图片

图5
2.对偶问题

基本型的对偶问题为:
这里写图片描述
证明:
基本型的拉格朗日函数为 L ( w , b , ξ , α , μ ) = ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 n ξ i + ∑ i = 1 n α i ( 1 − y i ( w T x i + b ) − ξ ) − ∑ i = 1 n μ i ξ i L(w,b,ξ,α,μ)={{||w||^2}\over2}+C\sum_{i=1}^nξ_i+\sum_{i=1}^nα_i\left(1-y_i(w^Tx_i+b)-ξ\right)-\sum_{i=1}^nμ_iξ_i L(w,b,ξ,α,μ)=2w2+Ci=1nξi+i=1nαi(1yi(wTxi+b)ξ)i=1nμiξi其中 α i ≥ 0 α_i≥0 αi0 μ i ≥ 0 μ_i≥0 μi0,设 f ( w , b , ξ ) = ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 n ξ i f(w,b,ξ)={{||w||^2}\over2}+C\sum_{i=1}^nξ_i f(w,b,ξ)=2w2+Ci=1nξi,则原始问题为 min ⁡ w , b , ξ   f ( w , b , ξ ) = min ⁡ w , b , ξ   θ P ( w , b , ξ ) = min ⁡ w , b , ξ   max ⁡ α , μ L ( w , b , ξ , α , μ ) \min_{w,b,ξ}\ f(w,b,ξ)=\min_{w,b,ξ}\ θ_P(w,b,ξ)=\min_{w,b,ξ}\ \max_{α,μ}L(w,b,ξ,α,μ) w,b,ξmin f(w,b,ξ)=w,b,ξmin θP(w,b,ξ)=w,b,ξmin α,μmaxL(w,b,ξ,α,μ)对偶问题为: max ⁡ α , μ θ D ( α , μ ) = max ⁡ α , μ min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) \max_{α,μ}θ_D(α,μ)=\max_{α,μ}\min_{w,b,ξ}L(w,b,ξ,α,μ) α,μmaxθD(α,μ)=α,μmaxw,b,ξminL(w,b,ξ,α,μ) min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) \min_{w,b,ξ}L(w,b,ξ,α,μ) minw,b,ξL(w,b,ξ,α,μ),求 L ( w , b , ξ , α , μ ) L(w,b,ξ,α, μ) L(w,b,ξ,α,μ) w w w b b b ξ ξ ξ的一阶偏导数得 L w = w − ∑ i = 1 n α i x i y i = 0 L_w=w-\sum_{i=1}^nα_ix_iy_i=0 Lw=wi=1nαixiyi=0 L b = − ∑ i = 1 n α i y i = 0 L_b=-\sum_{i=1}^nα_iy_i=0 Lb=i=1nαiyi=0 L ξ = C − α i − μ i = 0 L_ξ=C-α_i-μ_i=0 Lξ=Cαiμi=0解得 w = ∑ i = 1 n α i x i y i                     ( 21 ) w=\sum_{i=1}^nα_ix_iy_i\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (21) w=i=1nαixiyi                   (21) ∑ i = 1 n α i y i = 0                          ( 22 ) \sum_{i=1}^nα_iy_i=0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (22) i=1nαiyi=0                        (22) C − α i − μ i = 0                    ( 23 ) C-α_i-μ_i=0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (23) Cαiμi=0                  (23)将(21)代入 min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) \min_{w,b,ξ}L(w,b,ξ,α,μ) minw,b,ξL(w,b,ξ,α,μ),并利用(22)(23)求得对偶问题 max ⁡ α , μ ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j \max_{α,μ}\sum_{i=1}^nα_i-{1\over2}\sum_{i=1}^n\sum_{j=1}^nα_iα_jy_iy_j{x_i}^Tx_j α,μmaxi=1nαi21i=1nj=1nαiαjyiyjxiTxj s . t .    ∑ i = 1 n α i y i = 0 s.t.\ \ \sum_{i=1}^nα_iy_i=0 s.t.  i=1nαiyi=0 C − α i − μ i = 0                     ( 24 ) C-α_i-μ_i=0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (24) Cαiμi=0                   (24) α i ≥ 0 ,       i = 1 , 2 , … , n α_i≥0,\ \ \ \ \ i=1,2,…,n αi0,     i=1,2,,n μ i ≥ 0 ,       i = 1 , 2 , … , n μ_i≥0,\ \ \ \ \ i=1,2,…,n μi0,     i=1,2,,n利用等式(24)得 μ i = C − α i μ_i=C-α_i μi=Cαi,即可消去 μ i μ_i μi,并将(24)的约束写成 0 ≤ α i ≤ C 0≤α_i≤C 0αiC从而得到最终的对偶问题(20)

3.利用对偶问题求解 w w w b b b

α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α n ∗ ) T α^*=({α_1}^*,{α_2}^*,...,{α_n}^*)^T α=(α1,α2,...,αn)T是对偶问题(20)的解,若存在 α ∗ 的 α^*的 α一个分量 α j ∗ {α_j}^* αj,满足 0 < α j ∗ < C 0<{α_j}^*<C 0<αj<C,则原始问题(19)的解 w ∗ w^* w b ∗ b^* b可按下式求得 w ∗ = ∑ i = 1 n α i x i y i                     ( 25 ) w^*=\sum_{i=1}^nα_ix_iy_i\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (25) w=i=1nαixiyi                   (25) b ∗ = y i = ∑ i = 1 n α i y i x i T x j                     ( 26 ) b^*=y_i=\sum_{i=1}^nα_iy_i{x_i}^Tx_j\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (26) b=yi=i=1nαiyixiTxj                   (26)证明:
w ∗ w^* w b ∗ b^* b α ∗ α^* α分别是原始问题和对偶问题的解的充分必要条件是 w ∗ w^* w b ∗ b^* b α ∗ α^* α满足K-T条件。
先将式(19)写成以下形式: min ⁡ w , b , ξ   f ( w , b , ξ ) = ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 n ξ i \min_{w,b,ξ}\ f(w,b,ξ)={{||w||^2}\over2}+C\sum_{i=1}^nξ_i w,b,ξmin f(w,b,ξ)=2w2+Ci=1nξi s . t .    g i ( w , b , ξ i ) = y i ( w T x i + b ) + ξ i − 1 ≥ 0 s.t.\ \ g_i(w,b,ξ_i)=y_i(w^Tx_i+b)+ξ_i-1≥0 s.t.  gi(w,b,ξi)=yi(wTxi+b)+ξi10 h i ( w , b , ξ i ) = ξ i ≥ 0 h_i(w,b,ξ_i)=ξ_i≥0 hi(w,b,ξi)=ξi0写出其目标函数和约束函数的梯度: ∇ f ( w , b , ξ ) = ( ∣ ∣ w ∣ ∣ , 0 , C ) T ∇f(w,b,ξ)=(||w||,0,C)^T f(w,b,ξ)=(w,0,C)T ∇ g i ( w , b , ξ i ) = ( x i y i , y i , 1 ) T , ∇ h i ( w , b , ξ i ) = ( 0 , 0 , 1 ) T ∇g_i(w,b,ξ_i)=(x_iy_i,y_i,1)^T, ∇h_i(w,b,ξ_i)=(0,0,1)^T gi(w,b,ξi)=(xiyi,yi,1)T,hi(w,b,ξi)=(0,0,1)T 2 n 2n 2n个约束条件分别引入广义拉格朗日乘子 α 1 , α 2 , . . . , α n α_1,α_2,...,α_n α1,α2,...,αn μ 1 , μ 2 , … , μ n μ_1,μ_2,…,μ_n μ1,μ2,,μn,则可写出该问题的K-T条件如下: ( ∣ ∣ w ∣ ∣ , 0 , C ) T − ∑ i = 1 n α i ( x i y i , y i , 1 ) T = ∑ i = 1 n μ i ( 0 , 0 , 1 ) T = 0 (||w||,0,C)^T-\sum_{i=1}^nα_i(x_iy_i,y_i,1)^T=\sum_{i=1}^nμ_i(0,0,1)^T=0 (w,0,C)Ti=1nαi(xiyi,yi,1)T=i=1nμi(0,0,1)T=0将上式分解为: ∣ ∣ w ∣ ∣ − ∑ i = 1 n α i x i y i = 0 ||w||-\sum_{i=1}^nα_ix_iy_i=0 wi=1nαixiyi=0 − ∑ i = 1 n α i y i = 0 -\sum_{i=1}^nα_iy_i=0 i=1nαiyi=0 C − α i − μ i = 0 C-α_i-μ_i=0 Cαiμi=0 α i ( y i ( w T x i + b ) + ξ i − 1 ) = 0 ,          i = 1 , 2 , … , n α_i(y_i(w^Tx_i+b)+ξ_i -1)=0,\ \ \ \ \ \ \ \ i=1,2,…,n αi(yi(wTxi+b)+ξi1)=0,        i=1,2,,n μ i ξ i = 0 ,          i = 1 , 2 , … , n μ_iξ_i=0,\ \ \ \ \ \ \ \ i=1, 2,…,n μiξi=0,        i=1,2,,n α i ≥ 0 ,          i = 1 , 2 , . . . , n α_i≥0,\ \ \ \ \ \ \ \ i=1,2,...,n αi0,        i=1,2,...,n μ i ≥ 0 ,          i = 1 , 2 , . . . , n μ_i≥0,\ \ \ \ \ \ \ \ i=1,2,...,n μi0,        i=1,2,...,n由此解得式(25)
选择一个 α j ∗ {α_j}^* αj满足 0 < α j ∗ < C 0<{α_j}^*<C 0<αj<C,对此有 y j ( w ∗ x j + b ∗ ) − 1 = 0              ( 27 ) y_j(w^*x_j+b^*)-1=0\ \ \ \ \ \ \ \ \ \ \ \ (27) yj(wxj+b)1=0            (27)注意到 y j 2 = 1 {y_j}^2=1 yj2=1,将(27)两边同时乘以 y j y_j yj,将式(25)代入即得式(26)
综上所述,对于给定的训练数据集,可以先求对偶问题(20)的解 α ∗ α^* α,再利用式(25)(26)求得原始问题的解 w ∗ w^* w b ∗ b^* b,从而得到分隔超平面的线性方程。



四、非线性支持向量机

1、非线性分类问题

    一般来说,对给定的一个训练数据集,如果能用一个超曲面将数据集正确分开,则称这个问题为非线性分类问题。
    在图3中,数据点处于一个圆中,无法用直线(线性模型)将数据正确分开,但可以用一条椭圆曲线(非线性模型)将它们正确分开。
    非线性问题往往不好求解,所以希望能用线性分类问题的方法解决,所采用的方法是进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。

2、核函数的定义

    设X是输入空间,又称H为特征空间(希尔伯特空间),如果存在一个从X到H的映射 φ ( x ) : X → H φ(x) : X \rightarrow H φ(x):XH使得对所有z,x∈X,函数K(x,z)满足条件 K ( x , z ) = φ ( x ) ⋅ φ ( z ) K(x,z)=φ(x)·φ(z) K(x,z)=φ(x)φ(z)则称K(x,z)为核函数,φ(x)为映射函数,式中φ(x)·φ(z)为φ(x)和φ(z)的内积。
    核技巧的想法是,在学习与预测中只定义核函数K(x,z),而不显式地定义映射函数φ。通常,直接计算K(x,z)比较容易,而通过φ(x)和φ(z)计算K(x,z)并不容易。
例6
如下图,左边椭圆方程为 w 1 ( x ( 1 ) ) 2 + w 2 ( x ( 2 ) ) 2 + b = 0 w_1(x^{(1)})^2+w_2(x^{(2)})^2+b=0 w1(x(1))2+w2(x(2))2+b=0定义映射 y = φ ( x ) = ( ( x ( 1 ) ) 2 , ( x ( 2 ) ) 2 ) T y=φ(x)=((x^{(1)})^2,(x^{(2)})^2)^T y=φ(x)=((x(1))2,(x(2))2)T则可将椭圆变换为下图中右边的直线 w 1 y ( 1 ) + w 2 y ( 2 ) + b = 0 w_1y^{(1)}+w_2y^{(2)}+b=0 w1y(1)+w2y(2)+b=0根据定义可得对所有z,x∈X,核函数为 K ( x , z ) = φ ( x ) ⋅ φ ( z ) = ( x ( 1 ) ) 2 ( z ( 1 ) ) 2 + ( x ( 2 ) ) 2 ( z ( 2 ) ) 2 K(x,z)=φ(x)·φ(z)=(x^{(1)})^2(z^{(1)})^2+(x^{(2)})^2(z^{(2)})^2 K(x,z)=φ(x)φ(z)=(x(1))2(z(1))2+(x(2))2(z(2))2
机器学习(六):支持向量机(SVM)_第8张图片

3、核技巧在支持向量机中的应用

    我们注意到在线性支持向量机的对偶问题中,无论是目标函数还是决策函数都只涉及输入实例与实例之间的内积。在对偶问题(20)的目标函数中的内积 x i T x j x_i^Tx_j xiTxj可以用核函数 K ( x i , x j ) = x i T x j K(x_i,x_j)=x_i^Tx_j K(xi,xj)=xiTxj来代替。

4、常用核函数

机器学习(六):支持向量机(SVM)_第9张图片



五、序列最小最优化(Sequential Minimal Optimization,SMO)算法

    如何求解式(20)的解α*呢?人们通过利用问题本身的特性,提出了很多高效算法,SMO就是其中一个著名的代表,这种算法1998年由Platt提出。
    将对偶问题(20)的目标函数求极大转换为求极小,即可得到SMO算法要解的如下问题:
机器学习(六):支持向量机(SVM)_第10张图片
其中 K ( x i , x j ) = x i T x j K(x_i,x_j)={x_i}^Tx_j K(xi,xj)=xiTxj,在这个问题中,变量是拉格朗日乘子,一个变量 α i α_i αi对应一个样本点 ( x i , y i ) (x_i,y_i) (xi,yi),变量的总数等于训练样本容量 N N N

1.SMO算法思路

    SMO是一种启发式算法,该算法并不直接求解对偶问题,而是从K-T条件入手,如果所有变量的解 α ∗ α^* α都满足此最优化问题的K-T条件,那么这个最优化问题的解就得到了,因为K-T条件是该最优化问题的充分必要条件。具体做法如下:
    首先,初始化一个 α α α,此 α α α满足对偶问题的约束条件(29)(30),若 α α α也刚好满足K-T条件,得解。然而,很多时候我们需要不断优化 α α α,直到 α α α即满足(29)(30)也满足K-T条件,以此来求得最优解。
    如何优化 α α α呢?
    先选择两个待优化的变量 α i o l d {α_i}^{old} αiold α j o l d {α_j}^{old} αjold(其中一个是违反K-T条件最严重的,另一个由约束条件自动确定),其他变量固定,从而构造一个新的二次规划问题,问题就变成简单的求二次函数极值。我们不太可能求解一次就让优化后的 α n e w α^{new} αnew满足K-T条件,但是关于优化后的 α i n e w {α_i}^{new} αinew α j n e w {α_j}^{new} αjnew应该更接近原始问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。
    如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。

2.构造两个变量的二次规划问题

不失一般性,假设选择的两个变量是 α 1 α_1 α1 α 2 α_2 α2,其他变量 α i α_i αi i = 3 , 4 , … , n i=3,4,…,n i=3,4,,n)是固定的。于是(28)-(30)的子问题可以写成:
机器学习(六):支持向量机(SVM)_第11张图片
其中 K i j = K ( x i , x j ) K_{ij}=K(x_i,x_j) Kij=K(xi,xj) i , j = 1 , 2 , … , n i,j=1,2,…,n i,j=1,2,,n ξ ξ ξ是常数。
######3.两个变量二次规划问题的求解方法
假设问题的初始解为 α i o l d {α_i}^{old} αiold α j o l d {α_j}^{old} αjold,最优解为 α i n e w {α_i}^{new} αinew α j n e w {α_j}^{new} αjnew,并且假设未经剪辑(忽略约束条件(33))时 α 2 α_2 α2的最优解为 α 2 n e w , u n c {α_2}^{new,unc} α2new,unc
为了叙述简单,记 g ( x ) = ∑ j = 1 n α j y j K ( x , x j ) + b g(x)=\sum_{j=1}^nα_jy_jK(x,x_j)+b g(x)=j=1nαjyjK(x,xj)+b E i = g ( x i ) − y i = ( ∑ j = 1 n α i y i K ( x i , x j ) + b ) − y i ,       i = 1 , 2       ( 34 ) E_i=g(x_i)-y_i=\left(\sum_{j=1}^nα_iy_iK(x_i,x_j)+b\right)-y_i,\ \ \ \ \ i=1,2\ \ \ \ \ (34) Ei=g(xi)yi=(j=1nαiyiK(xi,xj)+b)yi,     i=1,2     (34) i = 1 , 2 i=1,2 i=1,2时, E i E_i Ei为函数 g ( x ) g(x) g(x)对输入 x i x_i xi的预测值与真实输出 y i y_i yi之差。
α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) K 11 + K 22 − 2 K 12            ( 35 ) {α_2}^{new,unc}={α_2}^{old}+{{y_2(E_1-E_2)}\over{K_{11}+K_{22}-2K_{12}}}\ \ \ \ \ \ \ \ \ \ (35) α2new,unc=α2old+K11+K222K12y2(E1E2)          (35) α 2 n e w {α_2}^{new} α2new
这里写图片描述
其中当 y 1 y_1 y1 y 2 y_2 y2异号 L = m a x ( 0 , α 2 o l d − α 1 o l d ) , H = m i n ( C , C + α 2 o l d − α 1 o l d ) L= max(0,{α_2}^{old}-{α_1}^{old}),H=min(C,C+{α_2}^{old}-{α_1}^{old}) L=max(0,α2oldα1old)H=min(C,C+α2oldα1old) y 1 y_1 y1 y 2 y_2 y2同号 L = m a x ( 0 , α 2 o l d + α 1 o l d − C ) , H = m i n ( C , α 2 o l d + α 1 o l d ) L =max(0,{α_2}^{old}+{α_1}^{old}-C),H=min(C,{α_2}^{old}+{α_1}^{old}) L=max(0,α2old+α1oldC)H=min(C,α2old+α1old) α 2 n e w {α_2}^{new} α2new求得 α 1 n e w {α_1}^{new} α1new α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w )                ( 36 ) {α_1}^{new}={α_1}^{old}+y_1y_2({α_2}^{old}-{α_2}^{new})\ \ \ \ \ \ \ \ \ \ \ \ \ \ (36) α1new=α1old+y1y2(α2oldα2new)              (36)证明:
①求未经剪辑(忽略约束条件(33))时 α 2 α_2 α2的最优解 α 2 n e w , u n c {α_2}^{new,unc} α2new,unc
引进记号 v i = ∑ j = 3 n α j y j K ( x i , x j ) = g ( x i ) − ∑ j = 1 2 α j y j K ( x i , x j ) + b − b v_i=\sum_{j=3}^nα_jy_jK(x_i,x_j)=g(x_i)-\sum_{j=1}^2α_jy_jK(x_i,x_j)+b-b vi=j=3nαjyjK(xi,xj)=g(xi)j=12αjyjK(xi,xj)+bb目标函数可写成 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α + 2 ) + y 1 v 1 α 1 + y 2 v 2 α 2 W(α_1,α_2)={1\over2}K_{11}{α_1}^2+{1\over2}K_{22}{α_2}^2+y_1y_2K_{12}α_1α_2-(α_1+α+2)+y_1v_1α_1+y_2v_2α_2 W(α1,α2)=21K11α12+

你可能感兴趣的:(机器学习算法)