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