附录C 拉格朗日对偶性

原文地址链接https://www.cnblogs.com/90zeng/p/Lagrange_duality.html 作者:博客园-90Zeng

 

一、原始问题

假设附录C 拉格朗日对偶性是定义在附录C 拉格朗日对偶性上的连续可微函数(为什么要求连续可微呢,后面再说,这里不用多想),考虑约束最优化问题:

                           

附录C 拉格朗日对偶性

附录C 拉格朗日对偶性

称为约束最优化问题的原始问题。

现在如果不考虑约束条件,原始问题就是:

附录C 拉格朗日对偶性

因为假设其连续可微,利用高中的知识,对附录C 拉格朗日对偶性求导数,然后令导数为0,就可解出最优解,很easy. 那么,问题来了(呵呵。。。),偏偏有约束条件,好烦啊,要是能想办法把约束条件去掉就好了,bingo! 拉格朗日函数就是干这个的。


引进广义拉格朗日函数(generalized Lagrange function):

附录C 拉格朗日对偶性

不要怕这个式子,也不要被拉格朗日这个高大上的名字给唬住了,让我们慢慢剖析!这里附录C 拉格朗日对偶性附录C 拉格朗日对偶性是拉格朗日乘子(名字高大上,其实就是上面函数中的参数而已),特别要求附录C 拉格朗日对偶性.


现在,如果把附录C 拉格朗日对偶性看作是关于附录C 拉格朗日对偶性的函数,要求其最大值,即

附录C 拉格朗日对偶性

再次注意附录C 拉格朗日对偶性是一个关于附录C 拉格朗日对偶性的函数,经过我们优化(不要管什么方法),就是确定附录C 拉格朗日对偶性的值使得附录C 拉格朗日对偶性取得最大值(此过程中把附录C 拉格朗日对偶性看做常量),确定了附录C 拉格朗日对偶性的值,就可以得到附录C 拉格朗日对偶性的最大值,因为附录C 拉格朗日对偶性已经确定,显然最大值附录C 拉格朗日对偶性就是只和附录C 拉格朗日对偶性有关的函数,定义这个函数为:

附录C 拉格朗日对偶性

其中 附录C 拉格朗日对偶性


下面通过附录C 拉格朗日对偶性是否满足约束条件两方面来分析这个函数:

  • 考虑某个附录C 拉格朗日对偶性违反了原始的约束,即附录C 拉格朗日对偶性或者附录C 拉格朗日对偶性,那么:

附录C 拉格朗日对偶性

  注意中间的最大化式子就是确定附录C 拉格朗日对偶性的之后的结果,若附录C 拉格朗日对偶性,则令附录C 拉格朗日对偶性,如果附录C 拉格朗日对偶性,很容易取值附录C 拉格朗日对偶性使得附录C 拉格朗日对偶性

 

考虑附录C 拉格朗日对偶性满足原始的约束,则:附录C 拉格朗日对偶性,注意中间的最大化是确定附录C 拉格朗日对偶性的过程,附录C 拉格朗日对偶性就是个常量,常量的最大值显然是本身.


通过上面两条分析可以得出:

附录C 拉格朗日对偶性

那么在满足约束条件下:

附录C 拉格朗日对偶性

附录C 拉格朗日对偶性与原始优化问题等价,所以常用附录C 拉格朗日对偶性代表原始问题,下标 P 表示原始问题,定义原始问题的最优值:

附录C 拉格朗日对偶性


原始问题讨论就到这里,做一个总结:通过拉格朗日这位大神的办法重新定义一个无约束问题(大家都喜欢无拘无束),这个无约束问题等价于原来的约束优化问题,从而将约束问题无约束化!


二、对偶问题

定义关于附录C 拉格朗日对偶性的函数:

附录C 拉格朗日对偶性

注意等式右边是关于附录C 拉格朗日对偶性的函数的最小化,附录C 拉格朗日对偶性确定以后,最小值就只与附录C 拉格朗日对偶性有关,所以是一个关于附录C 拉格朗日对偶性的函数.

考虑极大化附录C 拉格朗日对偶性,即

附录C 拉格朗日对偶性

  

这就是原始问题的对偶问题,再把原始问题写出来:

附录C 拉格朗日对偶性

形式上可以看出很对称,只不过原始问题是先固定附录C 拉格朗日对偶性中的附录C 拉格朗日对偶性,优化出参数附录C 拉格朗日对偶性,再优化最优附录C 拉格朗日对偶性,而对偶问题是先固定附录C 拉格朗日对偶性,优化出最优附录C 拉格朗日对偶性,然后再确定参数附录C 拉格朗日对偶性.

定义对偶问题的最优值:

附录C 拉格朗日对偶性


三、原始问题与对偶问题的关系

定理若原始问题与对偶问题都有最优值,则

附录C 拉格朗日对偶性

证明:对任意的附录C 拉格朗日对偶性附录C 拉格朗日对偶性,有

附录C 拉格朗日对偶性

附录C 拉格朗日对偶性

由于原始问题与对偶问题都有最优值,所以

附录C 拉格朗日对偶性

附录C 拉格朗日对偶性

也就是说原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等,于是可以得出下面的推论:

推论:设附录C 拉格朗日对偶性分别是原始问题和对偶问题的可行解,如果附录C 拉格朗日对偶性,那么附录C 拉格朗日对偶性分别是原始问题和对偶问题的最优解。

所以,当原始问题和对偶问题的最优值相等:附录C 拉格朗日对偶性时,可以用求解对偶问题来求解原始问题(当然是对偶问题求解比直接求解原始问题简单的情况下),但是到底满足什么样的条件才能使的附录C 拉格朗日对偶性呢,这就是下面要阐述的 KKT 条件


 

四、KKT 条件

定理:对于原始问题和对偶问题,假设函数附录C 拉格朗日对偶性附录C 拉格朗日对偶性是凸函数,附录C 拉格朗日对偶性是仿射函数(即由一阶多项式构成的函数,f(x)=Ax + b, A是矩阵,x,b是向量);并且假设不等式约束附录C 拉格朗日对偶性是严格可行的,即存在附录C 拉格朗日对偶性,对所有附录C 拉格朗日对偶性附录C 拉格朗日对偶性,则存在附录C 拉格朗日对偶性,使得附录C 拉格朗日对偶性是原始问题的最优解,附录C 拉格朗日对偶性是对偶问题的最优解,并且

附录C 拉格朗日对偶性


定理:对于原始问题和对偶问题,假设函数附录C 拉格朗日对偶性附录C 拉格朗日对偶性是凸函数,附录C 拉格朗日对偶性是仿射函数(即由一阶多项式构成的函数,f(x)=Ax + b, A是矩阵,x,b是向量);并且假设不等式约束附录C 拉格朗日对偶性是严格可行的,即存在附录C 拉格朗日对偶性,对所有附录C 拉格朗日对偶性附录C 拉格朗日对偶性,则附录C 拉格朗日对偶性分别是原始问题和对偶问题的最优解的充分必要条件附录C 拉格朗日对偶性满足下面的Karush-Kuhn-Tucker(KKT)条件:

附录C 拉格朗日对偶性

 

关于KKT 条件的理解:前面三个条件是由解析函数的知识,对于各个变量的偏导数为0(这就解释了一开始为什么假设三个函数连续可微,如果不连续可微的话,这里的偏导数存不存在就不能保证),后面四个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束。

特别注意当附录C 拉格朗日对偶性时,由KKT对偶互补条件可知:附录C 拉格朗日对偶性,这个知识点会在 SVM 的推导中用到.


五. 总结

一句话,某些条件下,把原始的约束问题通过拉格朗日函数转化为无约束问题,如果原始问题求解棘手,在满足KKT的条件下用求解对偶问题来代替求解原始问题,使得问题求解更加容易。