回忆SVM硬间隔最大化所对应的优化问题
minw,b12∥w∥2s.t. y(i)(wTx(i)+b)⩾1i=1,⋯,m min w , b 1 2 ‖ w ‖ 2 s.t. y ( i ) ( w T x ( i ) + b ) ⩾ 1 i = 1 , ⋯ , m
对于约束条件,并不是所有样本都能满足,换句话说,可能存在某个样本,其函数间隔无法做到大于等于 1 1 ,因此为每一个样本引入一个松弛变量 ξi ξ i ,于是约束条件变为 y(i)(wTx(i)+b)⩾1−ξi y ( i ) ( w T x ( i ) + b ) ⩾ 1 − ξ i ,称为软间隔
规定松弛变量的取值为非负数, ξi⩾0 ξ i ⩾ 0 ,对于能够满足约束条件的样本 ξi=0 ξ i = 0 ,对于不能够满足约束条件的样本 ξi>0 ξ i > 0
对于每一个松弛变量 ξi ξ i ,需要付出的代价为 ξi ξ i ,因此代价函数变为 12∥w∥2+C∑i=1mξi 1 2 ‖ w ‖ 2 + C ∑ i = 1 m ξ i ,超参数 C C 控制松弛变量代价的权重
总结一下,SVM软间隔最大化所对应的优化问题为
s.t.y(i)(wTx(i)+b)⩾1−ξii=1,⋯,m
s.t.
y
(
i
)
(
w
T
x
(
i
)
+
b
)
⩾
1
−
ξ
i
i
=
1
,
⋯
,
m
ξi⩾0i=1,⋯,m
ξ
i
⩾
0
i
=
1
,
⋯
,
m
其中,约束条件的标准形式为
s.t.1−ξi−y(i)(wTx(i)+b)⩽0i=1,⋯,m
s.t.
1
−
ξ
i
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
⩽
0
i
=
1
,
⋯
,
m
−ξi⩽0i=1,⋯,m
−
ξ
i
⩽
0
i
=
1
,
⋯
,
m
拉格朗日函数
为约束 1−ξi−y(i)(wTx(i)+b)⩽0 1 − ξ i − y ( i ) ( w T x ( i ) + b ) ⩽ 0 分配拉格朗日乘子 αi α i ,为约束 −ξi⩽0 − ξ i ⩽ 0 分配拉格朗日乘子 ri r i
L(w,b,ξ,α,r)=12∥w∥2+C∑i=1mξi+∑i=1mαi[1−ξi−y(i)(wTx(i)+b)]+∑i=1mri(−ξi)=12∥w∥2+C∑i=1mξi+∑i=1mαi−∑i=1mαiξi−∑i=1mαiy(i)(wTx(i)+b)−∑i=1mriξi=12∥w∥2+C∑i=1mξi+∑i=1mαi−∑i=1mαiξi−∑i=1mαiy(i)wTx(i)−∑i=1mαiy(i)b−∑i=1mriξi=12∥w∥2+∑i=1mξi(C−αi−ri)+∑i=1mαi−∑i=1mαiy(i)wTx(i)−∑i=1mαiy(i)b 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
求出具体的对偶问题,共分为两步
第一步,求 minw,b,ξ L(w,b,ξ,α,r) min w , b , ξ L ( w , b , ξ , α , r ) ,即固定对偶变量 α α , r r ,优化原变量, b b ,
求原变量 w w ,, ξ ξ 的梯度,令梯度为 0 0
∇bL(w,b,ξ,α,r)=−∑i=1mαiyi=0 ∇ b L ( w , b , ξ , α , r ) = − ∑ i = 1 m α i y i = 0
∇ξiL(w,b,ξ,α,r)=C−αi−ri=0i=1,⋯,m ∇ ξ i L ( w , b , ξ , α , r ) = C − α i − r i = 0 i = 1 , ⋯ , m (注意这里共有 m m 个式子)
得到下列3个式子(注意到式1和式2与SVM硬间隔情况下完全相同)
∑i=1mαiy(i)=0 ∑ i = 1 m α i y ( i ) = 0
C−αi−ri=0i=1,⋯,m C − α i − r i = 0 i = 1 , ⋯ , m
上述3个式子的作用稍有不同,式1中包含原变量 w w 和对偶变量,可以利用 αi α i 从 L(w,b,ξ,α,r) L ( w , b , ξ , α , r ) 中消去 w w
而式2仅包含对偶变量,式3仅包含对偶变量 αi α i 和 ri r i ,式2和式3将作为新的约束条件带入第二步中,同时式2和式3同样能够起到化简 L(w,b,ξ,α,r) L ( w , b , ξ , α , r ) 的作用
因此将上述3个式子代入 L(w,b,ξ,α,r) L ( w , b , ξ , α , r )
minw,b,ξ L(w,b,ξ,α,r)=12∥w∥2+∑i=1mξi(C−αi−ri)+∑i=1mαi−∑i=1mαiy(i)wTx(i)−∑i=1mαiy(i)b=12∑i=1m∑j=1mαiαjy(i)y(j)⟨x(i),x(j)⟩+0+∑i=1mαi−∑i=1mαiy(i)(∑j=1mαjy(j)x(j))x(i)−0=12∑i=1m∑j=1mαiαjy(i)y(j)⟨x(i),x(j)⟩+∑i=1mαi−∑i=1m∑j=1mαiαjy(i)y(j)⟨x(i),x(j)⟩=∑i=1mαi−12∑i=1m∑j=1mαiαjy(i)y(j)⟨x(i),x(j)⟩ 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 w ,, ξ ξ 被消去了,对偶变量 r r 也恰好消掉了,尽管这本来并不在我们的计划之内,但少一个变量总是件好事,最重要的一点,化简结果和SVM硬间隔情况下完全相同
总结一下在这一步中我们所做的事情,固定对偶变量, r r ,优化原变量, b b ,,求 L(w,b,ξ,α,r) L ( w , b , ξ , α , r ) 的最小值
minw,b,ξ L(w,b,ξ,α,r)=∑i=1mαi−12∑i=1m∑j=1mαiαjy(i)y(j)⟨x(i),x(j)⟩
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=1mαiy(i)=0
s.t.
∑
i
=
1
m
α
i
y
(
i
)
=
0
C−αi−ri=0i=1,⋯,m
C
−
α
i
−
r
i
=
0
i
=
1
,
⋯
,
m
第二步,求 maxα,r:αi⩾0,ri⩾0 minw,b,ξ L(w,b,ξ,α,r) max α , r : α i ⩾ 0 , r i ⩾ 0 min w , b , ξ L ( w , b , ξ , α , r ) ,即得到如下的对偶问题(此时对偶变量 r r 虽然被消掉了,但仍然要把第一步中的约束条件式2和式3照搬过来)
s.t.∑i=1mαiy(i)=0
s.t.
∑
i
=
1
m
α
i
y
(
i
)
=
0
C−αi−ri=0i=1,⋯,m
C
−
α
i
−
r
i
=
0
i
=
1
,
⋯
,
m
αi⩾0i=1,⋯,m
α
i
⩾
0
i
=
1
,
⋯
,
m
ri⩾0i=1,⋯,m
r
i
⩾
0
i
=
1
,
⋯
,
m
可以对约束条件进行一些化简,由 C−αi−ri=0⇒ri=C−αi C − α i − r i = 0 ⇒ r i = C − α i ,代入约束条件 ri⩾0 r i ⩾ 0 ,得 αi⩽C α i ⩽ C ,再与约束条件 αi⩾0 α i ⩾ 0 合并,得 0⩽αi⩽C 0 ⩽ α i ⩽ C (通过这一番化简,使得约束条件中也不再包含 r r )
最终对偶问题为(对偶变量仅剩下,与SVM硬间隔的区别仅为新增了约束 αi⩽C α i ⩽ C )
maxα ∑i=1mαi−12∑i=1m∑j=1mαiαjy(i)y(j)⟨x(i),x(j)⟩
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=1mαiy(i)=0
s.t.
∑
i
=
1
m
α
i
y
(
i
)
=
0
0⩽αi⩽Ci=1,⋯,m 0 ⩽ α i ⩽ C i = 1 , ⋯ , m
因为对于原始问题, 12∥w∥2+C∑i=1mξi 1 2 ‖ w ‖ 2 + C ∑ i = 1 m ξ i , 1−ξi−y(i)(wTx(i)+b) 1 − ξ i − y ( i ) ( w T x ( i ) + b ) 和 −ξi − ξ i 均为凸函数,并且存在 (w,b,ξ) ( w , b , ξ ) 使得所有不等式约束成立,所以存在一组 (w∗,b∗,ξ∗,α∗,r∗) ( w ∗ , b ∗ , ξ ∗ , α ∗ , r ∗ ) 满足 p∗=d∗=L(w∗,b∗,ξ∗,α∗,r∗) p ∗ = d ∗ = L ( w ∗ , b ∗ , ξ ∗ , α ∗ , r ∗ )
故求解对偶问题等价于求解原始问题
【KKT条件】
原问题的约束
①
1−ξi−y(i)(wTx(i)+b)⩽0i=1,⋯,m
1
−
ξ
i
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
⩽
0
i
=
1
,
⋯
,
m
② ξi⩾0i=1,⋯,m ξ i ⩾ 0 i = 1 , ⋯ , m
梯度等于0
③
∇wL(w,b,ξ,α,r)=0⇒w=∑i=1mαiy(i)x(i)
∇
w
L
(
w
,
b
,
ξ
,
α
,
r
)
=
0
⇒
w
=
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
④
∇bL(w,b,ξ,α,r)=0⇒∑i=1mαiyi=0
∇
b
L
(
w
,
b
,
ξ
,
α
,
r
)
=
0
⇒
∑
i
=
1
m
α
i
y
i
=
0
⑤ ∇ξiL(w,b,ξ,α,r)=0⇒C−αi−ri=0i=1,⋯,m ∇ ξ i L ( w , b , ξ , α , r ) = 0 ⇒ C − α i − r i = 0 i = 1 , ⋯ , m
不等式约束的拉格朗日乘子大于等于0
⑥
αi⩾0i=1,2,⋯,m
α
i
⩾
0
i
=
1
,
2
,
⋯
,
m
⑦ ri⩾0i=1,2,⋯,m r i ⩾ 0 i = 1 , 2 , ⋯ , m
对偶互补条件
⑧
αi[1−ξi−y(i)(wTx(i)+b)]=0i=1,2,⋯,m
α
i
[
1
−
ξ
i
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
]
=
0
i
=
1
,
2
,
⋯
,
m
⑨ ri(−ξi)=0⇒riξi=0i=1,2,⋯,m r i ( − ξ i ) = 0 ⇒ r i ξ i = 0 i = 1 , 2 , ⋯ , m
我们稍稍做一些约简,主要是消去拉格朗日乘子 ri r i
由⑤得 ri=C−αi r i = C − α i ,代入⑦ C−αi⩾0⇒αi⩽0 C − α i ⩾ 0 ⇒ α i ⩽ 0 ,再结合⑥得 0⩽αi⩽C 0 ⩽ α i ⩽ C
将
ri=C−αi
r
i
=
C
−
α
i
代入⑨得
(C−αi)ξi=0
(
C
−
α
i
)
ξ
i
=
0
于是最终的KKT条件如下
①
1−ξi−y(i)(wTx(i)+b)⩽0i=1,⋯,m
1
−
ξ
i
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
⩽
0
i
=
1
,
⋯
,
m
② ξi⩾0i=1,⋯,m ξ i ⩾ 0 i = 1 , ⋯ , m
③
w=∑i=1mαiy(i)x(i)
w
=
∑
i
=
1
m
α
i
y
(
i
)
x
(
i
)
④
∑i=1mαiyi=0
∑
i
=
1
m
α
i
y
i
=
0
⑤ 0⩽αi⩽Ci=1,2,⋯,m 0 ⩽ α i ⩽ C i = 1 , 2 , ⋯ , m
⑥ αi[1−ξi−y(i)(wTx(i)+b)]=0i=1,2,⋯,m α i [ 1 − ξ i − y ( i ) ( w T x ( i ) + b ) ] = 0 i = 1 , 2 , ⋯ , m
⑦
(C−αi)ξi=0i=1,2,⋯,m
(
C
−
α
i
)
ξ
i
=
0
i
=
1
,
2
,
⋯
,
m
求解对偶问题(使用SMO算法),得到最优解 α∗ α ∗ ,此时任务还没有完成,还需要利用 α∗ α ∗ 求出 w∗ w ∗ , b∗ b ∗
对于 w∗ w ∗ ,利用KKT条件③计算: w∗=∑i=1mα∗iy(i)x(i) w ∗ = ∑ i = 1 m α i ∗ y ( i ) x ( i )
再求 b∗ b ∗ ,选取任意一个支持向量对应的 α∗j α j ∗ ,满足 0<α∗j<C 0 < α j ∗ < C ,利用KKT条件⑥⑦得
1−ξ∗j−y(j)(w∗Tx(j)+b∗)=0 1 − ξ j ∗ − y ( j ) ( w ∗ T x ( j ) + b ∗ ) = 0
ξ∗j=0 ξ j ∗ = 0
最终解出 b∗ b ∗
1−ξ∗j−y(j)(w∗Tx(j)+b∗)y(j)(w∗Tx(j)+b∗)−1y(j)(w∗Tx(j)+b∗)−(y(j))2(w∗Tx(j)+b∗)−y(j)b∗=0=0=0(使用(y(j))2替换1)=0=y(j)−w∗Tx(j) 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
α
j
∗
计算出的
b∗
b
∗
会不同,通常取均值即可
【软间隔下的KKT条件】
KKT条件
① y(i)(wTx(i)+b)⩾1−ξii=1,⋯,m y ( i ) ( w T x ( i ) + b ) ⩾ 1 − ξ i i = 1 , ⋯ , m
② ξi⩾0i=1,⋯,m ξ i ⩾ 0 i = 1 , ⋯ , m
③ αi[1−ξi−y(i)(wTx(i)+b)]=0 α i [ 1 − ξ i − y ( i ) ( w T x ( i ) + b ) ] = 0
④ (C−αi)ξi=0 ( C − α i ) ξ i = 0
(1)若 αi=0 α i = 0 ,则由④得 ξi=0 ξ i = 0 ,代入①得 y(i)(wTx(i)+b)⩾1 y ( i ) ( w T x ( i ) + b ) ⩾ 1
(2)若
αi=C
α
i
=
C
,则由③得
1−ξi−y(i)(wTx(i)+b)=0⇒ξi=1−y(i)(wTx(i)+b)
1
−
ξ
i
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
=
0
⇒
ξ
i
=
1
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
代入②得
1−y(i)(wTx(i)+b)⩾0⇒y(i)(wTx(i)+b)⩽1
1
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
⩾
0
⇒
y
(
i
)
(
w
T
x
(
i
)
+
b
)
⩽
1
(3)若 0<αi<C 0 < α i < C ,由③得 ξi=0 ξ i = 0 ,再由②得 1−ξi−y(i)(wTx(i)+b)=0 1 − ξ i − y ( i ) ( w T x ( i ) + b ) = 0 ,因此有 y(i)(wTx(i)+b)=1 y ( i ) ( w T x ( i ) + b ) = 1
由KKT条件推出的结论总结如下,这3条结论可以用于判断SMO算法是否收敛
αi=0αi=C0<αi<C⇒y(i)(wTx(i)+b)⩾1⇒y(i)(wTx(i)+b)⩽1⇒y(i)(wTx(i)+b)=1
α
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∗Tx(i)+b∗)]=0 α i ∗ [ 1 − ξ i ∗ − y ( i ) ( w ∗ T x ( i ) + b ∗ ) ] = 0
(C−α∗i)ξ∗i=0 ( C − α i ∗ ) ξ i ∗ = 0
(1) αi=0 α i = 0 ,该样本为非支持向量
(2)
0<αi<C
0
<
α
i
<
C
,该样本为支持向量,由对偶互补条件2得
ξi=0
ξ
i
=
0
,由对偶互补条件1得
1−ξi−y(i)(wTx(i)+b)=0⇒γ^(i)=1
1
−
ξ
i
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
=
0
⇒
γ
^
(
i
)
=
1
,即该样本落在分隔边界上,函数间隔为
1
1
(3),该样本为支持向量,由对偶互补条件1得
1−ξi−y(i)(wTx(i)+b)=0
1
−
ξ
i
−
y
(
i
)
(
w
T
x
(
i
)
+
b
)
=
0
,即函数间隔
γ^(i)=1−ξi
γ
^
(
i
)
=
1
−
ξ
i
松弛变量自身的约束条件为 ξi⩾0 ξ i ⩾ 0 ,其中 ξi=0 ξ i = 0 的情况已经在(2)中讨论过了,仍然可以分为3种情况讨论
a. 若 0<ξi<1 0 < ξ i < 1 ,该样本落在分类超平面正确分类的一侧和分隔边界之间,函数间隔 γ^(i)=1−ξi∈(0,1) γ ^ ( i ) = 1 − ξ i ∈ ( 0 , 1 )
b. 若 ξi=1 ξ i = 1 ,该样本落在分类超平面上,函数间隔 γ^(i)=0 γ ^ ( i ) = 0
c. 若 ξi>1 ξ i > 1 ,该样本落在分类超平面错误分类的一侧,函数间隔 γ^(i)<0 γ ^ ( i ) < 0