SVM——软间隔最大化

回忆SVM硬间隔最大化所对应的优化问题

min w , b 1 2 w 2 s.t.     y ( i ) ( w T x ( i ) + b ) 1 i = 1 , , m

对于约束条件,并不是所有样本都能满足,换句话说,可能存在某个样本,其函数间隔无法做到大于等于 1 ,因此为每一个样本 ( x ( i ) , y ( i ) ) 引入一个松弛变量 ξ i ,于是约束条件变为 y ( i ) ( w T x ( i ) + b ) 1 ξ i ,称为软间隔

规定松弛变量的取值为非负数, ξ i 0 ,对于能够满足约束条件的样本 ξ i = 0 ,对于不能够满足约束条件的样本 ξ i > 0

对于每一个松弛变量 ξ i ,需要付出的代价为 ξ i ,因此代价函数变为 1 2 w 2 + C i = 1 m ξ i ,超参数 C 控制松弛变量代价的权重

总结一下,SVM软间隔最大化所对应的优化问题为

min w , b , ξ   1 2 w 2 + C i = 1 m ξ i
s.t. y ( i ) ( w T x ( i ) + b ) 1 ξ i i = 1 , , m
  ξ i 0 i = 1 , , m

其中,约束条件的标准形式为

s.t. 1 ξ i y ( i ) ( w T x ( i ) + b ) 0 i = 1 , , m
  ξ i 0 i = 1 , , m

拉格朗日函数

为约束 1 ξ i y ( i ) ( w T x ( i ) + b ) 0 分配拉格朗日乘子 α i ,为约束 ξ i 0 分配拉格朗日乘子 r i

L ( w , b , ξ , α , r ) = 1 2 w 2 + C i = 1 m ξ i + i = 1 m α i [ 1 ξ i y ( i ) ( w T x ( i ) + b ) ] + i = 1 m r i ( ξ i ) = 1 2 w 2 + C i = 1 m ξ i + i = 1 m α i i = 1 m α i ξ i i = 1 m α i y ( i ) ( w T x ( i ) + b ) i = 1 m r i ξ i = 1 2 w 2 + C i = 1 m ξ i + i = 1 m α i i = 1 m α i ξ i i = 1 m α i y ( i ) w T x ( i ) i = 1 m α i y ( i ) b i = 1 m r i ξ i = 1 2 w 2 + i = 1 m ξ i ( C α i r i ) + i = 1 m α i i = 1 m α i y ( i ) w T x ( i ) i = 1 m α i y ( i ) b

求出具体的对偶问题,共分为两步

第一步,求 min w , b , ξ   L ( w , b , ξ , α , r ) ,即固定对偶变量 α r ,优化原变量 w b ξ

求原变量 w b ξ 的梯度,令梯度为 0

w L ( w , b , ξ , α , r ) = w i = 1 m α i y ( i ) x ( i ) = 0

b L ( w , b , ξ , α , r ) = i = 1 m α i y i = 0

ξ i L ( w , b , ξ , α , r ) = C α i r i = 0 i = 1 , , m (注意这里共有 m 个式子)

得到下列3个式子(注意到式1和式2与SVM硬间隔情况下完全相同)

w = i = 1 m α i y ( i ) x ( i )

i = 1 m α i y ( i ) = 0

C α i r i = 0 i = 1 , , m

上述3个式子的作用稍有不同,式1中包含原变量 w 和对偶变量 α i ,可以利用 α i L ( w , b , ξ , α , r ) 中消去 w

而式2仅包含对偶变量 α i ,式3仅包含对偶变量 α i r i ,式2和式3将作为新的约束条件带入第二步中,同时式2和式3同样能够起到化简 L ( w , b , ξ , α , r ) 的作用

因此将上述3个式子代入 L ( w , b , ξ , α , r )

min w , b , ξ   L ( w , b , ξ , α , r ) = 1 2 w 2 + i = 1 m ξ i ( C α i r i ) + i = 1 m α i i = 1 m α i y ( i ) w T x ( i ) i = 1 m α i y ( i ) b = 1 2 i = 1 m j = 1 m α i α j y ( i ) y ( j ) x ( i ) , x ( j ) + 0 + i = 1 m α i i = 1 m α i y ( i ) ( j = 1 m α j y ( j ) x ( j ) ) x ( i ) 0 = 1 2 i = 1 m j = 1 m α i α j y ( i ) y ( j ) x ( i ) , x ( j ) + i = 1 m α i i = 1 m j = 1 m α i α j y ( i ) y ( j ) x ( i ) , x ( j ) = i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y ( i ) y ( j ) x ( i ) , x ( j )

最终我们发现原变量 w b ξ 被消去了,对偶变量 r 也恰好消掉了,尽管这本来并不在我们的计划之内,但少一个变量总是件好事,最重要的一点,化简结果和SVM硬间隔情况下完全相同

总结一下在这一步中我们所做的事情,固定对偶变量 α r ,优化原变量 w b ξ ,求 L ( w , b , ξ , α , r ) 的最小值

min w , b , ξ   L ( w , b , ξ , α , r ) = i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y ( i ) y ( j ) x ( i ) , x ( j )
s.t. i = 1 m α i y ( i ) = 0
    C α i r i = 0 i = 1 , , m

第二步,求 max α , r : α i 0 , r i 0   min w , b , ξ   L ( w , b , ξ , α , r ) ,即得到如下的对偶问题(此时对偶变量 r 虽然被消掉了,但仍然要把第一步中的约束条件式2和式3照搬过来)

max α   i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y ( i ) y ( j ) x ( i ) , x ( j )

s.t. i = 1 m α i y ( i ) = 0
    C α i r i = 0 i = 1 , , m
    α i 0 i = 1 , , m
    r i 0 i = 1 , , m

可以对约束条件进行一些化简,由 C α i r i = 0 r i = C α i ,代入约束条件 r i 0 ,得 α i C ,再与约束条件 α i 0 合并,得 0 α i C (通过这一番化简,使得约束条件中也不再包含 r

最终对偶问题为(对偶变量仅剩下 α ,与SVM硬间隔的区别仅为新增了约束 α i C

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

    0 α i C i = 1 , , m

因为对于原始问题, 1 2 w 2 + C i = 1 m ξ i 1 ξ i y ( i ) ( w T x ( i ) + b ) ξ i 均为凸函数,并且存在 ( w , b , ξ ) 使得所有不等式约束成立,所以存在一组 ( w , b , ξ , α , r ) 满足 p = d = L ( w , b , ξ , α , r )

故求解对偶问题等价于求解原始问题

【KKT条件】

原问题的约束
  1 ξ i y ( i ) ( w T x ( i ) + b ) 0 i = 1 , , m

  ξ i 0 i = 1 , , m

梯度等于0
  w L ( w , b , ξ , α , r ) = 0 w = i = 1 m α i y ( i ) x ( i )
  b L ( w , b , ξ , α , r ) = 0 i = 1 m α i y i = 0

  ξ i L ( w , b , ξ , α , r ) = 0 C α i r i = 0 i = 1 , , m

不等式约束的拉格朗日乘子大于等于0
  α i 0 i = 1 , 2 , , m

  r i 0 i = 1 , 2 , , m

对偶互补条件
  α i [ 1 ξ i y ( i ) ( w T x ( i ) + b ) ] = 0 i = 1 , 2 , , m

  r i ( ξ i ) = 0 r i ξ i = 0 i = 1 , 2 , , m

我们稍稍做一些约简,主要是消去拉格朗日乘子 r i

由⑤得 r i = C α i ,代入⑦ C α i 0 α i 0 ,再结合⑥得 0 α i C

r i = C α i 代入⑨得 ( C α i ) ξ i = 0

于是最终的KKT条件如下
  1 ξ i y ( i ) ( w T x ( i ) + b ) 0 i = 1 , , m

  ξ i 0 i = 1 , , m

  w = i = 1 m α i y ( i ) x ( i )
  i = 1 m α i y i = 0

  0 α i C i = 1 , 2 , , m

  α i [ 1 ξ i y ( i ) ( w T x ( i ) + b ) ] = 0 i = 1 , 2 , , m

  ( C α i ) ξ i = 0 i = 1 , 2 , , m

求解对偶问题(使用SMO算法),得到最优解 α ,此时任务还没有完成,还需要利用 α 求出 w b

对于 w ,利用KKT条件③计算: w = i = 1 m α i y ( i ) x ( i )

再求 b ,选取任意一个支持向量对应的 α j ,满足 0 < α j < C ,利用KKT条件⑥⑦得

1 ξ j y ( j ) ( w T x ( j ) + b ) = 0

ξ j = 0

最终解出 b

1 ξ j y ( j ) ( w T x ( j ) + b ) = 0 y ( j ) ( w T x ( j ) + b ) 1 = 0 y ( j ) ( w T x ( j ) + b ) ( y ( j ) ) 2 = 0 (使用 ( y ( j ) ) 2 替换1) ( w T x ( j ) + b ) y ( j ) = 0 b = y ( j ) w T x ( j )

使用不同 α j 计算出的 b 会不同,通常取均值即可

【软间隔下的KKT条件】

KKT条件

  y ( i ) ( w T x ( i ) + b ) 1 ξ i i = 1 , , m

  ξ i 0 i = 1 , , m

  α i [ 1 ξ i y ( i ) ( w T x ( i ) + b ) ] = 0

  ( C α i ) ξ i = 0

(1)若 α i = 0 ,则由④得 ξ i = 0 ,代入①得 y ( i ) ( w T x ( i ) + b ) 1

(2)若 α i = C ,则由③得 1 ξ i y ( i ) ( w T x ( i ) + b ) = 0 ξ i = 1 y ( i ) ( w T x ( i ) + b )
代入②得 1 y ( i ) ( w T x ( i ) + b ) 0 y ( i ) ( w T x ( i ) + b ) 1

(3)若 0 < α i < C ,由③得 ξ i = 0 ,再由②得 1 ξ i y ( i ) ( w T x ( i ) + b ) = 0 ,因此有 y ( i ) ( w T x ( i ) + b ) = 1

由KKT条件推出的结论总结如下,这3条结论可以用于判断SMO算法是否收敛

α i = 0 y ( i ) ( w T x ( i ) + b ) 1 α i = C y ( i ) ( w T x ( i ) + b ) 1 0 < α i < C y ( i ) ( w T x ( i ) + b ) = 1

【软间隔下的支持向量】

利用2个对偶互补条件进行分析

α i [ 1 ξ i y ( i ) ( w T x ( i ) + b ) ] = 0

( C α i ) ξ i = 0

(1) α i = 0 ,该样本为非支持向量

(2) 0 < α i < C ,该样本为支持向量,由对偶互补条件2得 ξ i = 0 ,由对偶互补条件1得 1 ξ i y ( i ) ( w T x ( i ) + b ) = 0 γ ^ ( i ) = 1 ,即该样本落在分隔边界上,函数间隔为 1
(3) α = C ,该样本为支持向量,由对偶互补条件1得 1 ξ i y ( i ) ( w T x ( i ) + b ) = 0 ,即函数间隔 γ ^ ( i ) = 1 ξ i

松弛变量自身的约束条件为 ξ i 0 ,其中 ξ i = 0 的情况已经在(2)中讨论过了,仍然可以分为3种情况讨论

a. 若 0 < ξ i < 1 ,该样本落在分类超平面正确分类的一侧和分隔边界之间,函数间隔 γ ^ ( i ) = 1 ξ i ( 0 , 1 )

b. 若 ξ i = 1 ,该样本落在分类超平面上,函数间隔 γ ^ ( i ) = 0

c. 若 ξ i > 1 ,该样本落在分类超平面错误分类的一侧,函数间隔 γ ^ ( i ) < 0

猜你喜欢

转载自blog.csdn.net/o0Helloworld0o/article/details/81504724