1.为什么要通过求解与原问题等价的对偶问题(dual problem)来得到原问题的解?
原因主要有:(1)对偶问题更容易求解;(2)在对偶问题下可以很容易引入核函数,进而扩展到线性不可分的场景。
详见:理解SVM的三层境界
2.Lagrange Duality与Wolfe Duality的区别何在?
常见的对偶问题Lagrange dual problem,但也存在其他的对偶问题,如Wolfe Dual Problem以及Fenchel Dual Problem。
在RankSVM的paper中出现的Wolfe Duality要求原问题的目标函数以及约束中的函数都是可导的。根据KKT构建约束条件,得到的对偶问题的约束为非凸函数,所以Wolfe Duality仅满足弱对偶性。其与Lagrange对偶的关系可以用下面的图来表示:
原问题:min_x f(x) s.t. gj(x)<=0
Lagrange对偶问题:max inf(f(x)-sum_j uj*gj(x)) s.t. uj>=0
Wolfe对偶问题:当f()以及gj()都是连续可导的时候,Lagrange对偶问题的目标函数inf(L)在L的导数为0的点达到极值,将之作为约束,即可得到:max f(x)-sum_j uj*gj(x) s.t. uj>=0 df(x)/dx+sum_j uj*dgj(x)/dx=0
参见:Wikipedia的Wolfe Duality
3.KKT条件的理解
4.支持向量(Support Vector)的几何解释?
支持向量,在最大间隔边界上,且对应的对偶变量值alpha>0的实例点。
候选支持向量:在最大间隔的边界上,且对应的对偶变量值alpha=0的实例点。
支持向量的作用:将原问题变量与对偶问题变量联系起来,用支持向量进行线性组合,组合系数为对偶变量值alpha即可得到原问题到达最优时的变量配置。
5.如何理解对偶?
对偶问题的解为原问题(minimization)解的下界。
原问题与对偶问题的最优解并不总是等价的,两者之差称为dual gap。
仅问题为凸优化问题且满足constraint qualification时,dual gap为0,即两者等价。为强对偶
否则为弱对偶。
摘自:Wikipedia的Duality(Optimization)