本章简要介绍一下SVM(支持向量机)里面关键的对偶问题,KKT条件,slater条件
对偶问题,就是将原问题(primal problem)转化为对偶问题(dual problem)然后在进行求解的方法。
详细解说对偶
优化问题的定义域 D为所有函数定义域的交集。
2.一个优化问题的对偶问题可以这样得到:
1.首先写出拉格朗日函数
L(x,u,v)=f0(x)+∑n1ui∗fi(x)+∑m1vjhj(x)L(x,u,v)=f0(x)+∑1nui∗fi(x)+∑1mvjhj(x)
其中u,vu,v为拉格朗日乘数,也叫对偶变量,顾名思义,u,vu,v是对偶问题中的变量。
2. 拉格朗日函数逐点对x求下确界得到对偶函数
g(u,v)=infx∈DL(x,u,v)=infx∈Df0(x)+∑n1ui∗fi(x)+∑m1vjhj(x)g(u,v)=infx∈DL(x,u,v)=infx∈Df0(x)+∑1nui∗fi(x)+∑1mvjhj(x)
其中下确界指最大的下届,也就是最小值。逐点对x求下确界意味着,对任意一个u,vu,v求出一个x使L(x,u,v)L(x,u,v)最小。如果把u,vu,v当成变量,x当成参数,那么不论x取什么值,L都是一个仿射函数
L(X,u,v)=A∗u+B∗v+CL(X,u,v)=A∗u+B∗v+C,其中
A=(f1(X),f2(X),…,fn(X))A=(f1(X),f2(X),…,fn(X))
B=(h1(X),h2(X),…,hm(X))B=(h1(X),h2(X),…,hm(X))
C=f0(X)
当然有用,KKT condition 就是对偶性质的一个应用。
f∗>=g∗f∗>=g∗,那么如果存在x,u,vx,u,v,使f∗=g∗f∗=g∗(不一定要计算出来,只要说明相等就行)那么,此时x,u,vx,u,v就分别是原问题和对偶问题的最优解。那么我们就可以以这个为条件作为约束求出最优解。怎么利用这个条件呢?推一推(参考CMU教程)
f(x∗)=g(u∗,v∗)=minxL(x,u∗,v∗)<=L(x∗,u∗,v∗)<=f(x∗)f(x∗)=g(u∗,v∗)=minxL(x,u∗,v∗)<=L(x∗,u∗,v∗)<=f(x∗)
可知所有等号都成立
f(x∗)=g(u∗,v∗)=minxL(x,u∗,v∗)=L(x∗,u∗,v∗)=f(x∗)f(x∗)=g(u∗,v∗)=minxL(x,u∗,v∗)=L(x∗,u∗,v∗)=f(x∗)
即如果存在 x,u,vx,u,v使
而拉格朗日乘数法正是KKT条件在等式约束优化问题的简化版。
slater条件官方正规定义:存在x,使得不等式约束g(x)<=0严格成立。
slater条件性质: slater条件是原问题P可以等价于对偶问题Q的一个充分条件,该条件确保了鞍点的存在。