原因是学到SVM这里发现这个lagrange dual problem 必须满足 KKT 条件, 于是写下了这篇文章记录这些条件被推出的过程, 本人才疏学浅, 不当之处请尽管指出
1.线性可分SVM要求解的原始问题
目标函数:
f(w)=12‖w‖2(1) (1) f ( w ) = 1 2 ‖ w ‖ 2
原问题:
minw,b12‖w‖2s.t. 1−yi(wTxi+b)≤0i=1,2,…,N(2) (2) min w , b 1 2 ‖ w ‖ 2 s . t . 1 − y i ( w T x i + b ) ≤ 0 i = 1 , 2 , … , N
原问题的拉格朗日函数:
L(w,b,a)=12‖w‖2+∑i=1Nαi(1−yi(wTxi+b))s.t. αi≥0i=1,2,…,Ns.t. 1−yi(wTxi+b)≤0i=1,2,…,N(3) (3) L ( w , b , a ) = 1 2 ‖ w ‖ 2 + ∑ i = 1 N α i ( 1 − y i ( w T x i + b ) ) s . t . α i ≥ 0 i = 1 , 2 , … , N s . t . 1 − y i ( w T x i + b ) ≤ 0 i = 1 , 2 , … , N
令:
p(w)=maxaL(w,b,a)(4) (4) p ( w ) = max a L ( w , b , a )
∵ ∵ 若有一个
1−yi(wTxi+b)>0 1 − y i ( w T x i + b ) > 0 , 令
αi=∞ α i = ∞ , 则
L(w,b,a)=∞ L ( w , b , a ) = ∞
∴ ∴ 当所有不等式条件满足时,
p(w)=f(w) p ( w ) = f ( w ) ,
p p 就是
primitive function
这样, 原始问题用拉格朗日的形式来表达:
p∗=minw,bmaxaL(w,b,a)=12‖w‖2+∑i=1Nαi(1−yi(wTxi+b))s.t. αi≥0i=1,2,…,Ns.t. 1−yi(wTxi+b)≤0i=1,2,…,N(5) (5) p ∗ = min w , b max a L ( w , b , a ) = 1 2 ‖ w ‖ 2 + ∑ i = 1 N α i ( 1 − y i ( w T x i + b ) ) s . t . α i ≥ 0 i = 1 , 2 , … , N s . t . 1 − y i ( w T x i + b ) ≤ 0 i = 1 , 2 , … , N
这里 p∗ p ∗ 代表原始问题的最优值
我们看看直接求解会怎样: 首先式子里有 w,b w , b 两个参数, 目标变量 a a 又要满足不等式约束, 实在不好求, 所以转化为对偶形式:
2.对偶问题(dual problem)
d∗=maxaminw,bL(w,b,a)(6) (6) d ∗ = max a min w , b L ( w , b , a )
这里
d∗ d ∗ 代表对偶问题最优解, 看下现在该怎样求解呢?
首先只有
a a 一个参数,
w,b w , b 又没有不等式约束, 那就直接对它们求偏导为0啊, 代回原式再来求
a a , 不错, 好求解多了
不过 d∗ d ∗ 和 p∗ p ∗ 的关系是什么呢?
原始问题最优解与对偶问题最优解的关系
∵minw,bL(w,b,a)≤L(w,b,a)≤maxaL(w,b,a)(7) (7) ∵ min w , b L ( w , b , a ) ≤ L ( w , b , a ) ≤ max a L ( w , b , a )
∴d∗=maxaminw,bL(w,b,a)≤minw,bmaxaL(w,b,a)=p∗(8) (8) ∴ d ∗ = max a min w , b L ( w , b , a ) ≤ min w , b max a L ( w , b , a ) = p ∗
我们可以看到,
d∗≤p∗ d ∗ ≤ p ∗ 是没跑了, 那么究竟相等不呢?
经查阅资料,
d∗=p∗ d ∗ = p ∗ 时称为
strong duality(强对偶), 在满足
Slater条件, 即在凸优化问题中, 如果找到一个点
xi x i 使所有的等式约束成立,所有的不等式约束(严格的不等)也成立的条件下, 如果满足
KKT条件, 那么强对偶成立
换言之, d∗=p∗ d ∗ = p ∗ 的充要条件就是在满足Slater条件的约束下满足KKT条件, 注意这两种条件是对于最优点 (w∗,b∗,a∗) ( w ∗ , b ∗ , a ∗ ) 而言的
3.KKT条件推导
所谓KKT条件不就是在最优点应该满足的关系式吗, 那直接从原问题形式即(3)式入手:
那么, 有
α∗i≥0i=1,2,…,N(9) (9) α i ∗ ≥ 0 i = 1 , 2 , … , N
1−yi((w∗)Txi+b∗)≤0i=1,2,…,N(10) (10) 1 − y i ( ( w ∗ ) T x i + b ∗ ) ≤ 0 i = 1 , 2 , … , N
对式(10)这个不等式约束, 取其中一个
i i 为例子, 分为两种情况讨论:
情况一
1−yi((w∗)Txi+b∗)=0 1 − y i ( ( w ∗ ) T x i + b ∗ ) = 0 时, 相当于确定了一个 N−1 N − 1 维的约束平面 S S , 在这个平面上寻找使得式(1)中的目标函数 f(w) f ( w ) 最小点
通过以下几条线索:
1, 在约束曲面 S S 上任意点, 该点的梯度垂直于曲面
2, 在最优点处, ∇f(w∗) ∇ f ( w ∗ ) 也垂直于曲面(沿负梯度方向是下降方向, 垂直说明 降无可降, 即为最小点)
可以得出结论,
∇f(w∗)=αi∇(1−yi((w∗)Txi+b∗))(11) (11) ∇ f ( w ∗ ) = α i ∇ ( 1 − y i ( ( w ∗ ) T x i + b ∗ ) )
且
αi>0 α i > 0
∇f(w) ∇ f ( w ) 方向是约束曲面上
无路可走 的方向, 式(11)说明 它和约束不等式梯度方向相反, 即和约束不等式负梯度方向相同, 要沿负梯度方向下降?无路可走啦, 这不是最小值点吗
情况二
1−yi((w∗)Txi+b∗)<0 1 − y i ( ( w ∗ ) T x i + b ∗ ) < 0 时, 此时问题为在被约束曲面分隔开的其中一个区域中求解最小值
如果 w w 有在此区域内的点, 则直接对其求偏导为0即可得 w∗ w ∗
此时相当于令 αi=0 α i = 0 , 因为这个不等式约束在求解最优点过程中没起作用
综合两种情况
得到:
αi(1−yi(w∗Txi+b∗))=0i=1,2,…,N(12) (12) α i ( 1 − y i ( w ∗ T x i + b ∗ ) ) = 0 i = 1 , 2 , … , N
注意,
二者不能同时为0 !
来看看我们做了什么: 我们从原始拉格朗日问题形式的两种约束, 经过分析最优点的情况, 推出了新的约束
那么接下来, 就是不管约束, 对式(3)求解极值点了呗
所以加上这两个式子:
∇wL(w∗,b∗,a∗)=w−∑i=1Nαiyixi=0(13) (13) ∇ w L ( w ∗ , b ∗ , a ∗ ) = w − ∑ i = 1 N α i y i x i = 0
∇bL(w∗,b∗,a∗)=−∑i=1Nαiyi=0(14) (14) ∇ b L ( w ∗ , b ∗ , a ∗ ) = − ∑ i = 1 N α i y i = 0
总结得到的式子, 这些就叫做KKT条件啦:
⎧⎩⎨⎪⎪⎪⎪∇wL(w∗,b∗,a∗)=0∇bL(w∗,b∗,a∗)=0α∗i≥0i=1,2,…,N1−yi((w∗)Txi+b∗)≤0i=1,2,…,Nαi(1−yi(w∗Txi+b∗))=0i=1,2,…,N { ∇ w L ( w ∗ , b ∗ , a ∗ ) = 0 ∇ b L ( w ∗ , b ∗ , a ∗ ) = 0 α i ∗ ≥ 0 i = 1 , 2 , … , N 1 − y i ( ( w ∗ ) T x i + b ∗ ) ≤ 0 i = 1 , 2 , … , N α i ( 1 − y i ( w ∗ T x i + b ∗ ) ) = 0 i = 1 , 2 , … , N
公式比较多, 手写latex真是累死……不当之处请大家指出
参考:
1, 《统计学习方法》,李航著;
2, 《机器学习》, 周志华著;
3, 支持向量机通俗导论(理解SVM的三层境界)