本文讲的是优化问题中与对偶问题、对偶性理论相关的内容,包括对偶问题的最优解、弱对偶性、强对偶性、共轭函数、以及KKT条件等。
一、对偶函数
拉格朗日量(Lagrangian)
考虑一个标准形式的优化问题:
本文讲的是优化问题中与对偶问题、对偶性理论相关的内容,包括对偶问题的最优解、弱对偶性、强对偶性、共轭函数、以及KKT条件等。
考虑一个标准形式的优化问题:
称之为原问题,记其最优解为 p∗ ,最优解满足 f0(p∗)=min{f0(x)∣x∈D} 。
其中 ∅≠D⊂Rn 是可行域。
定义上述问题的拉格朗日量(Lagrangian)如下:
其中向量 λ 和 ν 称为该问题的 对偶变量(dual variables) 或者 拉格朗日乘子(Lagrange multiplier vectors)。
同时定义 拉格朗日对偶函数(Lagrange dual function) 如下:
有以下几点相关内容需要注意:
而对偶函数 g(λ,ν) 恰好是一族关于 (λ,ν) 的仿射函数的逐点最小,因此它是凹的,这与 fi(x) 与 hi(x) 的凸性无关。
拉格朗日乘子法本是用于求多元函数的条件极值的:即 U 为 Rn 中开集, f:U→R 为 U 上多元函数, Φ:U→Rn(m<n) 为 C1 映射,令 A={x∈U:Φ(x)=0} ,则 f 在 A 上的局部极值称为条件极值,方程 Φ(x)=0 称为约束条件。
关于求条件极值的方法,有如下定理,可用隐函数定理证明,过程从略。
注:由定理可知,若 x0 为条件极值点,则 (x0,λ) 为辅助函数
的驻点。
参考 MathWorld 上对 Lagrangian Multiplier 的形象解释。
回忆原问题中的最优解 p∗ ,引入对偶函数可以导出 p∗ 的下界。
这个证明是很容易的,设 x~ 是原问题的一个可行解,则有
从而,
因此,
由于 g(λ,ν)≤f0(x~) 对任意 x~ 皆成立,故 g(λ,ν)≤p∗ 。
有以下几点需要注意:
当 g(λ,ν)=−∞ 时,上述不等式给出了一个平凡的结论。因此约定对偶可行域:
注意到上式用了记号 λ⪰0 ,因为 λ 是个向量,它等价于 λi≥0,i=1,…,m 。
由于 g(λ,ν)≤p∗ 对任意的 λ⪰0 和 ν 都成立,故
在上一节中,讲到了对原问题最优值的下界估计,其中重要的一个不等式是 g(λ,ν)≤p∗ ,其中 g(λ,ν) 是原问题的(拉格朗日)对偶函数。
那么问题来了,既然对偶函数是 p∗ 的下界估计,那么可以取到的最优下界是什么?
这就导出了另一个优化问题:
称之为原问题(primal problem)的对偶问题(Lagrange dual problem)。
此时,上一节提到的对偶可行(dual feasible)的概念也好理解了,即 (λ,ν) 对该对偶问题是可行的。同时,把该问题的最优解 (λ∗,ν∗) 称为对偶最优解(dual optimal)或最优拉格朗日乘子(optimal Lagrange multipliers)。
值得注意的是,原问题的对偶问题总是凸优化问题,与原问题是否是凸优化问题无关。
我们记上述对偶问题的最优解为 d∗ ,由性质1,便很容易推出:
这便是弱对偶性(weak duality),即对偶问题的最优解不超过原问题的最优解。
对于约束条件 hi(x) 对应的乘子 νi ,其作用相当于把跷跷板任意旋转,支点是使 hi(x~)=0 的那个 x~ ,其值对应于原问题的最优解 p∗ 。(将跷跷板置入坐标系,横轴代表 x ,纵轴代表函数值,改变 ν 的值相当于“旋转”跷跷板。)这种情况下跷跷板的高度对应于函数 L(λ,ν) ,其最低点则是 g(λ,ν)=infx∈DL(x,λ,ν) 。而根据常识,跷跷板的最低点是不会超过它的支点的。即使对于一个任意形状的跷跷板,这个性质也依旧成立。
类比一下,这就是说,在任何情况下,弱对偶性总是成立的。
对于约束条件 fi(x) 对应的乘子 λi ,其作用相当于把跷跷板往下拉,支点是使 fi(x~)=0 的那个 x~ ,最优解(最小值点 p∗ )可能位于支点处,也可能处于支点的下方,更可能是下无界的( p∗=−∞ )。这种情况下,由于跷跷板的单向运动,最小值会变得更低,因此以上性质依旧成立。
如果原问题与对偶问题的最优解相等,即等式 d∗=p∗ 成立,则称它满足强对偶性。
强对偶性一般而言是不成立的。但若原问题是凸优化问题,即在形式
中 f0,…,fm 都是凸函数。则强对偶性 通常 是成立的。
之所以说通常,是因为可能存在两个问题都无可行解的状况,这时强对偶性不成立。所以有必要建立“使其有解”的约束条件,其中之一便是 Slater's condition:
Slater's Theorem则给出了强对偶性成立的一个充分条件:
当有部分约束条件是仿射函数时,Slater's condition 可以被弱化。假定前 k 个约束条件是仿射函数,那么可以弱化为:
此外,满足 Slater's condition(或 Refined Slater's condition) 不仅意味着(凸优化问题)强对偶性的成立,而且也表示当 d∗>−∞ 时,存在一组对偶变量 (λ∗,ν∗) 满足 g(λ∗,ν∗)=d∗=p∗ ,即此时对偶最优值是可取到的。
我们可以把原问题与对偶问题的对应关系作一个总结:
可以把以上规则整理成如下表格:
对偶问题 \ 原问题 | 可行 | 下无界 ( p∗=−∞ ) | 不可行( p∗=+∞ ) |
---|---|---|---|
可行 | √ | × | × |
上无界 ( d∗=+∞ ) | × | × | √ |
不可行 ( d∗=−∞ ) | × | √ | √ |
如上表格可知,实际上只有4种情形可能发生。
给定一个原问题,如何求出它对偶问题的形式呢?这一节内容中,总结了几种求对偶问题的方法。
这一种方法比较直接,其思路是由 g(λ,ν)=infx∈DL(x,λ,ν) 的定义,直接求最值。这种方法可用于 L(x,λ,ν) 的表达式比较简单的情形。举例如下:
考虑如下问题:
则该问题的拉格朗日量是 L(x,ν)=xTx+νT(Ax−b) ,对偶函数是 g(λ,ν)=infx∈DL(x,λ,ν) 。因为 L(x,ν) 是关于 x 的二次凸函数,对 x 求导:
因此推出 x=−(1/2)ATν ,代入对偶函数表达式,即得:
这种方法的思路是先求出拉格朗日量 L(x,λ,ν) ,然后求出对偶可行域:即要使 g(λ,ν)=infx∈DL(x,λ,ν)>−∞ 成立, (λ,ν) 所需满足约束条件。这些约束条件加上 λ⪰0 便构成了对偶问题约束条件。
考虑标准形式的线性规划(Linear Programming)问题:
这时拉格朗日量是:
注意到当 ATν+c−λ≠0 时, g(λ,ν)=−∞ ,因此:
于是,该问题的对偶问题可表示成如下形式:
共轭函数法给出了从(线性约束条件下的)原问题到对偶问题的一般化形式,同时也揭示了对偶函数与共轭函数间的关系。
先给出共轭函数的定义:
接着考虑如下有线性等式和线性不等式约束的优化问题:
于是,由对偶函数及共轭函数的定义可得:
且对偶函数 g 的定义域由共轭函数 f∗ 的定义域所确定,即:
于是,求对偶函数的问题便转换成了求共轭函数的问题。
下面列举一些常用目标函数的共轭函数:
用这种方法可以很快捷地推出上面两种方法中提到的例子,可自行检验之。
TODO:需要推导 ∥Ax−b∥ 的共轭函数。
这一节中,我们关注最优解(包括原问题和对偶问题的)所需要满足的条件。并且除非特殊提及,均不假定这些问题是凸的。
假设强对偶性成立,则原问题与对偶问题的解相等。记 x∗ 和 (λ∗,ν∗) 分别表示原问题与对偶问题的最优解,那么,
故上述不等号皆可取等,这其中蕴含着两个重要的结论,一是“ x∗ 最小化了 L(x,λ∗,ν∗) 的值”,这个结论会在下一小节中用到,另一个重要结论是:
又因为 λ∗i≥0 , fi(x∗)≤0 ,所以,
这个条件被称为互补松弛条件(Complementary slackness)。它对原问题的 任意 的最优解 x∗ 和对偶问题最优解 d∗ 皆成立。
这个条件实际上描述的是:
在继续之前,需要假定函数 f0,…,fm,h1,…,hp 是一阶可微的,因此定义域是开集。并且对问题的凸性仍无任何假定。
还是记 x∗ 和 (λ∗,ν∗) 分别表示原问题与对偶问题的最优解。则 x∗ 最小化了 L(x,λ∗,ν∗) (这是上一小节的一个结论),从而梯度为 0 ,即有:
因此,我们有,
这便是KKT条件(Karush-Kuhn-Tucker condition)。对任何优化问题而言,最优解一定满足KKT条件。
既然任意的最优解都满足KKT条件,那么自然要问,满足KKT条件的解是否就是问题的最优解呢?
实际上,当问题是凸优化问题时,KKT条件便是充分的了。简单证明如下:
设 (x~,λ~,ν~) 满足KKT条件。因为 λi≥0 ,所以 L(x,λ~,ν~) 是关于 x 的凸函数。由KKT最后一个条件知, x~ 最小化了 L(x,λ~,ν~) 的值。因此,
g(λ~,ν~)===L(x~,λ~,ν~)f0(x~)+∑i=1mλi~fi(x~)+∑i=1pνi~hi(x~)f0(x~)因此对偶差(duality gap)为 0 ,解分别是原问题最优和对偶最优的。
小结一下,这就是说,对于任何目标函数和约束函数都一阶可微的凸优化问题,任何满足KKT条件的 x∗ 和 (λ∗,ν∗) ,其对偶差为 0 。此时若 Slater's condition 满足,则说明这个对偶最优值可以被取到,因而它就是问题的最优解了。
KKT条件的作用在于,某一类问题的KKT条件可以直接被(分析地)解出。而对大多数其他凸优化问题,便把任务由解优化问题转移到解KKT条件上,因为两者是等价的。
这里举一个例子来说明KKT条件在处理凸优化问题中的作用,考虑如下的凸优化问题:
其中 ωi>0,αi>0 。当 ωi=1 时,这个问题的背景是信息论中根据不同的信道状况去分配不同的发送功率,来达到最大化传输效率。变量 xi 表示分配给第 i 个信道的功率强弱,而 log(αi+xi) 则表示该信道的容量或者传输速率,最后当然是总传输速率越大越好。
为了求出其对偶问题的形式,我们引入拉格朗日乘子 λ∈Rn 对应于约束 x⪰0 ,引入 ν∈R 对应于约束 1Tx=1 ,由KKT条件,可以得到一系列关系式:
以及,
注意到上述最后一个等式, λi 在其中实际起到了 松弛变量 的作用,故可把它等价写成:
这时 λi=0 便对应于取等号的情形。下面分情况讨论:
综上所述, x∗i=max{0,ωiν∗−αi} 。将其代入条件 1Tx=1 ,我们得到:
等式左端是一个关于变量 1/ν∗ 的单调增分段线性函数,在 αi/ωi 处有间断点。因此这个方程显然有唯一解。
当 ωi=1 时,解这个方程的方法一般称之为注水算法。设想有 n 个平台,每个平台的高度为 αi ,将其注水至统一高度 1/ν∗ ,则总共需要的水量即为 ∑ni=1max{0,ωiν∗−αi} 。假设总水量是“单位1”,那么第 i 个平台上水的高度恰好就是 x∗i 。如下图所示:
如果 ωi≠1 ,那么解法会稍有变化,我将其称为 改进的注水算法。这时每个 ωi 实际上代表了第 i 个容器中液体的 密度,而 xi 代表了第 i 个容器中液体的 质量,总质量是守恒的。而 xi/ωi 代表了液体的体积(高度),让 αi/ωi 代表了平台的高度,这样第 i 个容器中液体的质量(=密度*体积)便为
因此所有容器中液体的总质量为“单位1”。这表示将一定质量的液体分配到不同的容器中,而每个容器由于自身环境不同会导致液体密度出现变化,但总体的水位高度要保持持平。这时水位的高度对应于对偶问题的解 1/ν∗ ,每个容器中液体的质量对应于原问题的解 x∗i 。
这个例子阐明了对于某一类问题,可以直接求解KKT条件,从而解决原问题。同样地,对偶变量一般(在物理意义上)代表着某种“相变”的过程。例如上例中的 λi ,当它非零时,表示容器中没有水;而容器中有水时,它一定为零。它可以看做一个 状态的指示量。
而另一个对偶变量 ν ,它来源于等式约束。它通常代表着一些 隐含的属性,或者是另一种看待问题的视角。像本例中的“统一水位”,或者经济学中涉及到的“影子价格”,都属于此类。
本文是对优化问题中对偶性理论相关内容的一个整理。第一、二节中,从拉格朗日量出发,构造对偶函数,继而引入对偶问题和弱对偶性,然后讨论强对偶性的充分性条件,以及原问题与对偶问题间的联系。第三节补充了一些常见原问题求其对偶形式的方式,并且引入共轭函数的概念给出了一大类线性约束条件的问题的通用对偶形式。第四节重点关注最优解满足的条件,包括松弛互补条件、KKT条件等。最后举了一个实例来说明KKT条件在凸优化问题中的作用。
Boyd S, Vandenberghe L. Convex optimization. Cambridge university press, 2004. Chapter 5.