上节说到我们把SVM抽象成了二次规划问题:
min 12||θ||2s.t. yi⋅θTxi≥1 ,i=1,2,...,m
我们看看怎么求解这个问题
拉格朗日乘数法
拉格朗日乘数法(Lagrange Multiplier Method),是求解等式约束优化问题的一种方法。对于任何的带等式约束优化问题,都可以写成:
min f0(x)s.t. hi(x)=0, i=1,2,...,p
高中的时候我们就知道,求解这种问题的方法,就是写成:
L(x,λi)=f0(x)+∑i=1pλihi(x)
然后对各参数求导,令其等于0,联立求解即可。可是为什么呢?有不等式约束时怎么办呢?
拉格朗日对偶
所有带约束问题,都可以表示如下:
min f0(x)s.t. fi(x)≤0, i=1,2,...,mhi(x)=0, i=1,2,...,p
然而带约束的优化问题,求解麻烦,我们能不能把它转化成无约束优化问题呢?答案是可以的。构造Lagrangian:
L(x,λi,νi)=f0(x)+∑i=1mλifi(x)+∑i=ipνihi(x)
我们规定 λi>0 。由于 fi(x)≤0,hi(x)=0 所以:
(a)对于原本满足约束条件的x取值范围里(最简单就是全部为0,注意这里变量为 λ,ν ):
f0(x)=maxλ≥0,νL(x,λi,νi)
(b)但是对于那些原本不满足条件的x,我们似乎没有处理,它们不等于 f0 ,但是,求min之后就成立了,因为它们求min之后是无穷大。最小值为无穷大,我们就知道这个x不是正解。
至此,我们把原问题变成了无约束问题:
minx maxλ≥0,νL(x,λ,ν)
这个问题叫Primal Problem,还是不容易解。与之相应的有个问题,叫Dual Problem,形式为:
maxλ≥0,ν minxL(x,λ,ν)
但是这两个问题不等价,长得高的人中最瘦的不一定就是瘦的人中长得最高的嘛。但是长得高的人中最瘦的一定比最瘦的人胖~
记内层函数: g(λ,ν)=minxL(x,λ,ν) ,它是Primal Problem的下届(能理解嘛~)。令 x∗ 为最优解,则有:
L(x∗,λ,ν)=f0(x∗)+∑i=1mλifi(x∗)+∑i=ipνihi(x∗)≤f0(x∗)
g(λ,ν)=minxL(x,λ,ν)≤L(x∗,λ,ν)≤f0(x∗)=p∗
p*为Primal Problem最有解。有:
maxλ≥0,νg(λ,ν)≤p∗
不等式左边为Dual Problem。这个性质所有优化问题都存在的,叫做weak duality。strong duality就是去等号~
KKT条件
Karush-Kuhn-Tucker 最优化条件,是满足强对偶条件的优化问题的必要条件。我们看满足强对偶时候的一些性质。
f0(x∗)=g(λ∗,ν∗)=minxL(x,λ∗,ν∗)=minx(f0(x)+∑i=1mλ∗ifi(x)+∑i=ipν∗ihi(x))≤minx(f0(x∗)+∑i=1mλ∗ifi(x∗)+∑i=ipν∗ihi(x∗))≤f0(x∗)
由于上式两边相等,所有所有符号取等号。
(a)由第一个不等号, x∗ 是 L(x,λ∗,ν∗) 的极值点,即有:
∇f0(x∗)+∑i=1mλ∗∇fi(x∗)+∑i=1pνi∗∇hi(x∗)=0
(b)由第二个不等号,而且 λ∗if∗i(x) 非正:
λ∗if∗i(x)=0, i=1,2,...,m
总结KKT条件如下:
- fi(x∗)≤0 ;
- hi(x∗)=0 ;
- λ∗i≥0 ;
- λ∗ifi(x∗)=0 ;
- ∇f0(x∗)+∑mi=1λ∗∇fi(x∗)+∑pi=1νi∗∇hi(x∗)=0
SVM
回到svm:
min 12||θ||2s.t. yi⋅θTxi≥1 ,i=1,2,...,m
Lagrangian:
L(θ,α)=12||θ||2−∑i=1pαi(yiθTxi−1)
这里我们不加证明,svm问题满足强对偶条件,可以变成无约束优化:
maxαi≥0 minθL(θ,α)
因为满足KKT条件,所以 αi(yiθTxi−1)=0 ,所以那些远离分割线的点 αi=0 ,只有 yiθTxi−1 刚好为0的点, α 才会取不同的值,这些点就叫做支持向量~所以是支持向量机~(@ο@) ~