其他分享
首页 > 其他分享> > 拉格朗日对偶性

拉格朗日对偶性

作者:互联网

文章结构如下:

1: 原始问题

2: 对偶问题

3: 原始问题和对偶问题的关系

4: 参考文献

 

在约束最优化问题中,常常利用拉格朗日对偶性(Lagrange duality)将原始问题转为对偶问题,通过解决对偶问题而得到原始问题的解。

对偶问题有非常良好的性质,以下列举几个:

    1. 对偶问题的对偶是原问题;
    2. 无论原始问题是否是凸的,对偶问题都是凸优化问题;
    3. 对偶问题可以给出原始问题一个下界;
    4. 当满足一定条件时,原始问题与对偶问题的解是完全等价的;

1: 原始问题

假设 [公式] 是定义在 [公式] 上的连续可微函数。
称约束最优化问题

[公式]

为原始最优化问题或原始问题。

首先引入拉格朗日函数(generalized Lagrange function)


[公式] 
其中, [公式] 是拉格朗日乘子, [公式] 。

构建关于 [公式] 的函数

[公式] 
假设给定某个违反原始问题约束条件的 [公式] ,即存在某个 [公式] 使得 [公式] 或 [公式] 。若 [公式] ,可令 [公式] ,使得 [公式] ;若 [公式] ,可令 [公式] 使 [公式] ,使得 [公式] 。将其余 [公式] 均取值为0。 

[公式]

假设给定某个符合原始问题约束条件的 [公式] ,即 [公式] 且 [公式] ,

[公式] 
由以上,得

[公式] 
则极小化问题

[公式] 
与原始最优化问题等价,即有相同的解。(因为当趋向无穷时,问题无解,因此必须满足约束条件)

[公式]

称为广义拉格朗日函数的极小极大问题。

定义原始问题的最优值

[公式] 
称为原始问题的值。

 

2: 对偶问题

构建关于 [公式] 的函数

[公式] 
则极大化问题

[公式] 
称为广义拉格朗日函数的极大极小问题。

将广义拉格朗日函数的极大极小问题表示为约束最优化问题

[公式] 
称为原始问题的对偶问题。

定义对偶问题的最优值

[公式] 
称为对偶问题的值。

 

3: 原始问题和对偶问题的关系

若原始问题与对偶问题都有最优解,则

[公式] 
这个性质便叫做弱对偶性(weak duality),对于所有优化问题都成立,即使原始问题非凸。

与弱对偶性相对应的有一个强对偶性(strong duality) ,强对偶即满足:

[公式] 
强对偶是一个非常好的性质,因为在强对偶成立的情况下,可以通过求解对偶问题来得到原始问题的解,在 SVM 中就是这样做的。当然并不是所有的对偶问题都满足强对偶性 ,在 SVM 中是直接假定了强对偶性的成立,其实只要满足一些条件,强对偶性是成立的,比如说 Slater 条件与KKT条件。

Slater条件:对于原始问题及其对偶问题,假设函数 [公式] 和 [公式] 是凸函数, [公式] 是仿射函数,且不等式约束 [公式] 是严格可行的,即存在 [公式] ,对所有 [公式] 有 [公式] ,则存在 [公式]使 [公式] 是原始问题的解, [公式] 是对偶问题的解,并且

[公式] 
也就是说如果原始问题是凸优化问题并且满足 Slater 条件的话,那么强对偶性成立。需要注意的是,这里只是指出了强对偶成立的一种情况,并不是唯一的情况。

KKT条件:对于原始问题及其对偶问题,假设函数 [公式] 和 [公式] 是凸函数, [公式] 是仿射函数,且不等式约束 [公式] 是严格可行的,即存在 [公式] ,对所有 [公式] 有 [公式] ,则存在 [公式],使 [公式] 是原始问题的解, [公式] 是对偶问题的解的充分必要条件是 [公式] 满足下面的Karush-Kuhn-Tucker(KKT)条件:

[公式] 
总的来说就是说任何满足强对偶性的优化问题,只要其目标函数与约束函数可微,任一对原始问题与对偶问题的解都是满足 KKT 条件的。即满足强对偶性的优化问题中,若 [公式] 为原始问题的最优解, [公式] 为对偶问题的最优解,则可得 [公式] 满足 KKT 条件。

KKT详见:Karush-Kuhn-Tucker (KKT)条件

小结:本文介绍了对偶的基本概念,对于一个约束优化问题,找到其对偶问题,当弱对偶成立时,可以得到原始问题的一个下界。而如果强对偶成立,则可以直接求解对偶问题来解决原始问题。 SVM 就是这样的。对偶问题由于性质良好一般比原始问题更容易求解,在 SVM 中通过引入对偶问题可以将问题表示成数据的内积形式从而使得 kernel trick 的应用更加自然)。

 

标签:拉格朗,函数,KKT,问题,对偶性,原始,对偶
来源: https://www.cnblogs.com/qiu-hua/p/12994832.html