a. 转换形式
SVM算法的经典问题是一个凸二次规划模型,求解这个问题比较复杂。
(7)这个问题其实等价于“对拉格朗日函数 L(w,b,α) L ( w , b , α ) 求关于拉格朗日乘子 α α 的最大, 然后再对 L(w,b,α) L ( w , b , α ) 求关于 w,b w , b 的最小,”即(7)可以写为:
b. 证明过程:
这个转换其实就是把约束条件 gi(w)≤0 g i ( w ) ≤ 0 转化到拉格朗日函数中去。
maxα ,αi≥0L(w,b,α) m a x α , α i ≥ 0 L ( w , b , α ) 表示对L取关于a的最后大化,观察拉格朗日函数的形式:
L(w,b,α)=f(w)+∑ai⋅g(wi);αi≥0 L ( w , b , α ) = f ( w ) + ∑ a i ⋅ g ( w i ) ; α i ≥ 0
现在, ai≥0 a i ≥ 0 ,对 L(w,b,α) L ( w , b , α ) 作关于 α α 的最大化,那么:
当 g(wi)≤0 g ( w i ) ≤ 0 (即满足约束条件)时,L(w,b,a)的最大为 f(w);
当 g(wi)>0 g ( w i ) > 0 时,L(w,b,a)的最大为正无穷大。
这样 maxα ,αi≥0L(w,b,α) m a x α , α i ≥ 0 L ( w , b , α ) 是一个分段函数。第一段是满足约束条件时,有函数f(w),第二段是一个正无穷大。这时要对这个分段函数取min,那么肯定是选择对满足约束条件时的f(w)取min,因为第二段是正无穷大。
这样,就把一个约束问题转化成无约束问题。
注:
这里还可以看出 L(w,b,α) L ( w , b , α ) 要最大,那么必须有 αig(wi)=0 α i g ( w i ) = 0 也就是拉格朗日乘子和约束中至少有一个为0;这就是KKT条件中的松弛互补条件
上面提到,原始问题可以转化为拉格朗日函数的无约束问题:
那么,其对偶问题可以写为:
由于该问题是凸二次规划问题,且该问题有解。因此只要满足Slater条件),那么强对偶性成立(统计学习定理C.2)。 那么可以将原始问题转化为对偶问题的求解:
在svm的原始问题其实刚好满足Slater条件(“若原始问题为凸优化问题, 存在一个w,使得 gi(w∗)<0 g i ( w ∗ ) < 0 ”成立),因为如果存在一个 w∗, w ∗ , 让 gi(w)≤0 g i ( w ) ≤ 0 ,那么总能通过把 w∗ w ∗ 放大或缩小一定倍数,使得这个约束变成严格成立,也就是slater条件成立。
综上所述,现在求解原始问题转化为求解对偶问题
d∗=maxα ,αi≥0minw,bL(w,b,α) d ∗ = m a x α , α i ≥ 0 m i n w , b L ( w , b , α )
第一步,写出拉格朗日函数 L(w,b,α) L ( w , b , α )
拉格朗日函数 L(w,b,α) L ( w , b , α ) 对w,b求偏导数并令其为0,得:
第二步, 求 minw,bL(w,b,α) m i n w , b L ( w , b , α ) .
将上面求偏导数的结果(12)、(13)式代入(11)中的拉格朗日函数,即得到 minw,bL(w,b,α) m i n w , b L ( w , b , α )
第三步,求 maxαminw,bL(w,b,α) m a x α m i n w , b L ( w , b , α ) .即是对偶问题:
第四步,转化为等价的一般形式对偶问题
这就得到了线性可分SVM的对偶问题模型,可以用SMO算法求解出对偶问题的最优解 α∗=(α∗1,...,α∗N) α ∗ = ( α 1 ∗ , . . . , α N ∗ )
然后就可以计算 w∗ w ∗ 和 b∗ b ∗ .
具体证明利用了KKT条件。这里注意KKT条件是强对偶 d∗=p∗ d ∗ = p ∗ `的充分必要条件。而上面的问题是强对偶,因此必须满足kkt条件。(17)利用kkt条件中拉格朗日函数对w求偏导数等于零,(18)利用kkt条件中互补松弛条件 α∗igi(w)=0 α i ∗ g i ( w ) = 0 ,并且注意 1=y2j 1 = y j 2
证明:
∇wL(w,b,α)=w∗−∑Ni=1α∗iyixi=0 (I) ∇ w L ( w , b , α ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ( I )
∇bL(w,b,α)=−∑Ni=1α∗iyi=0 (II) ∇ b L ( w , b , α ) = − ∑ i = 1 N α i ∗ y i = 0 ( I I )
α∗i[yi(w∗xi+b∗)−1]=0 i=1,2,...,N (III) α i ∗ [ y i ( w ∗ x i + b ∗ ) − 1 ] = 0 i = 1 , 2 , . . . , N ( I I I )
yi(w∗xi+b∗)−1≥0; i=1,2,...,N (IV) y i ( w ∗ x i + b ∗ ) − 1 ≥ 0 ; i = 1 , 2 , . . . , N ( I V )
αi≥0; i=1,2,...,N (V) α i ≥ 0 ; i = 1 , 2 , . . . , N ( V )
由(I),得:
w∗=∑Ni=1α∗iyixi (17) w ∗ = ∑ i = 1 N α i ∗ y i x i ( 17 )
由(III)互补松弛条件得:
yj(w∗xj+b∗)−1=0 y j ( w ∗ x j + b ∗ ) − 1 = 0
yj((∑Ni=1α∗iyixi)⋅xj+b∗)−y2j=0 y j ( ( ∑ i = 1 N α i ∗ y i x i ) ⋅ x j + b ∗ ) − y j 2 = 0
则:
b∗=yj−∑Ni=1α∗iyi(xi⋅xj) b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j )
注:
计算 b∗ b ∗ 只需要一个 α∗j>0 α j ∗ > 0 的点
计算 w∗ w ∗ 只需要所有 α∗>0 α ∗ > 0 的点,并且注意得到,w 其实就是 x的线性组合,而且x都是支持向量的x。
因此,从这可以看出最佳分离超平面只依赖于支持向量。
由互补松弛条件,我们有
α∗i[yi(w∗xi+b∗)−1]=0 i=1,2,...,N (III) α i ∗ [ y i ( w ∗ x i + b ∗ ) − 1 ] = 0 i = 1 , 2 , . . . , N ( I I I )
因此,当 α∗i>0 α i ∗ > 0 时,必有 yj(w∗xj+b∗)−1=0 y j ( w ∗ x j + b ∗ ) − 1 = 0 ,即 α∗i>0 α i ∗ > 0 对应的样本点 (xi,yi) ( x i , y i ) 是支持向量,从(17)、(18)来看, w∗,b∗ w ∗ , b ∗ 依赖于 α∗i>0 α i ∗ > 0 的样本点。
参考博文:
http://www.cnblogs.com/ooon/p/5723725.html