第6章 支持向量机

6.1 间隔与支持向量


基本思想:对于二分类问题:即给定训练样本集D={( x 1 , y 1 ),( x 2 , y 2 ),….,( x m , y m )}, y i {-1,+1},
分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开。
超平面: ω T x +b=0 , ω 为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离。
样本空间中任意点 x 到超平面的距离可写为

γ = | ω T x + b | | | ω | |
这里写图片描述
如图6.2所示 γ = 2 | | ω | | 表示“ 间隔”。而在 ω T x + b = 1 ω T x + b = 1 上的样本点表示“ 支持向量”。
欲找到具有“最大间隔”的划分超平面,也就是求如下约束问题
max ω , b 2 | | ω | |
s . t . y i ( ω T x i + b ) 1 , i = 1 , 2 , . . . m ( 6.5 )

为了最大化间隔,仅需最大化 | ω | | 1 ,这等价于最小化 | ω | | 2 .于是上式可以写为
min ω , b 1 2 | | ω | | 2
s . t . y i ( ω T x i + b ) 1 , i = 1 , 2 , . . . m ( 6.6 )
这就是支持向量机(SVM)的基本型.

6.2对偶问题(参照李航的《统计学习与方法》第七章,这本书讲的详细一点)

我们希望求解式 f ( x ) = ω T x + b 来得到最大间隔划分超平面所对应的模型。
对式(6.6)使用拉格朗日乘子法可得到其“对偶问题”。具体来说,对式(6.6)每条约束添加拉格朗日乘子 α i 0 ,则该问题的拉格朗日函数可写为 L ( ω , b , α ) = 1 2 | | ω | | 2 + i = 1 m α i ( 1 y i ( ω T x i + b ) ) ( 6 .8 )
其中 α = ( α 1 ; α 2 ; . . . . α n ) ,令 L ( ω , b , α ) ω 和b的偏导为0,可得
                   ω = i = 1 m α i y i x i              (6.9)
                   0 = i = 1 m α i y i                   (6.10)
将(6.9)代入(6.8)中,将 L ( ω , b , α ) 中的 ω 和b消去,得到(6.6)的对偶问题

max α = i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j
s . t .0 = i = 1 m α i y i
α i 0 ( 6.11 )

将其改写为
min α = 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j i = 1 m α i ( 7.22 )
s . t .0 = i = 1 m α i y i ( 7.23 )
α i 0 ( 7.24 )

定理7.2 设 α = ( α 1 , α 2 , . . . α l ) 是对偶最优化问题(7.22)~(7.24)的解,则存在下标j,使得 α j >0,并可按下式求得原始最优化问题的解 ω , b ;
ω = i = 1 m α i y i x i ( 7.25 )
b = y j i = 1 m α i y i ( x i x j ) ( 7.26 )

综上所述:对于给定的线性可分训练数据集
1.先求(7.22)~(7.24)的解 α .
2.再用(7.25),(7.26)求解原师问题的解 ω , b .
这种算法称为线性可分支持向量机的对偶学习算法,是线性可分支持向量机学习的基本算法。

下面是仿照李航的《统计学习与方法》写的,公式的序号都是这本书上的

7.2线性支持向量机与软间隔最大化

7.2.1线性支持向量机
线性可分问题的支持向量机学习方法对学习不可分训练数据是不适用的,因为此时上述方法中的不等式约束并不能都成立,怎么才能将他扩展到线性不可分问题,这就需要修改硬间隔最大化,使其成为软间隔最大化。
假设给定一个特征空间上的训练数据集T={( x 1 , y 1 ),( x 2 , y 2 ),….,( x m , y m )}, y i {-1,+1},再假设训练数据集不是线性可分的,通常情况是,训练数据中有一些特异点,将这些特异点除去后,剩下的大部分的样本点是线性可分的。
线性不可分意味着某些样本点( x i , y i )不能满足函数间隔大于等于1的约束条件,为了解决这个问题,可以对每一个样本点( x i , y i )引进一个松弛变量 ζ i >=0,使函数间隔加上松弛变量大于等于1,这样约束条件为 y i ( ω T x i + b ) 1 ζ i .同时对每个松弛变量 ζ i ,支付一个代价 ζ i ,目标函数由原来的 1 2 | | ω | | 2 变成

1 2 | | ω | | 2 + C i = 1 N ξ i ( 7.31 )
这里C大于0,称为惩罚函数,一般由应用问题决定,C增大是,误分类的惩罚增大,C值小时对误分类的惩罚减小,最小化目标函数(7.31)包含两层含义:
1使 1 2 | | ω | | 2 尽量小,即间隔尽量大。
2.同时使误分类点的个数尽量小,C是调和二者系数。
线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题(原始问题)
min ω , b 1 2 | | ω | | 2 + C i = 1 N ξ i 7.32
s . t . y i ( ω T x i + b ) 1 ζ i ( 7.33 )
ζ i >= 0 ( 7.34 )
原始问题的(7.32)~(7.34)是一个凸二次规划问题,因而关于 ( ω , b , ξ ) 的解是存在的,可以证明w的解是唯一的(具体怎么证,我也不会),但b的解不唯一。
设问题(7.32)~(7.34)的解是 ω , b ,于是得到可分离超平面 ω x + b = 0 称这为训练样本不可分时的线性支持向量机,简称为线性支持向量机。显然,线性支持向量机包含线性可分支持向量机。由于现实中训练数据往往时不可分的,线性支持向量机更具有广的适用性。
7.2.2学习的对偶算法
原始问题(7.32)~(7.34)的对偶问题是
min α 1 2 i = 1 N j = 1 N α i α j y i y j ( x i x j ) i = 1 N α i ( 7.37 )
s . t .0 = i = 1 m α i y i ( 7.38 )
o α i C ( 7.39 )
定理7.3 设 α = ( α 1 , α 2 , . . . α N ) 是对偶问题(7.37)~(7.39)的一个解,若存在 α 的一个分量 α j o < α i < C ,则原始问题(7.32)~(7.34)的解 ω , b 可按下式求得:
ω = i = 1 m α i y i x i ( 7.50 )
b = y j i = 1 m α i y i ( x i x j ) ( 7.51 )

猜你喜欢

转载自blog.csdn.net/qq_42242132/article/details/80784598