对偶
对偶问题
对偶问题定义
考虑一个一般的优化问题:
$$\begin{aligned}&\min_x\quad f_0(x)\\&s.t.\quad f_i(x_0)\leq0,i=1,\ldots,m\\&h_j(x)=0,j=1,\ldots,p\\&x\in R^n\end{aligned}$$
定义其拉格朗日函数为 $$L(x,\lambda,v)=f_0(x)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{j=1}^pv_jh_j(x),\lambda\in R^m,v\in R^p$$
拉格朗日对偶函数为 g(λ, v) = infx ∈ DL(x, λ, v)
我们可以观察到对偶函数的两条优良性质: - 对偶函数一定为凹函数,不论原来的优化问题里面的函数是什么东西,因为对偶函数是由关于λ,v的仿射函数逐点取最小得到的,由上一节的知识我们知道凸函数逐点取最大依然是凸的,凹函数逐点取最小依然是凹的,而仿射函数作为凹函数与凸函数的分界函数,对它逐点取最大即可得到凸函数,对它逐点取最小即可得到凹函数。既然对偶函数是凹的,那么对其求max就一定是个凸问题了。 - 记p*为原始问题的最优值,则∀λ ≥ 0, ∀v, 一定有g(λ, v) ≤ p*。这是容易理解的,因为∀λ ≥ 0,必然有$\sum_{i=1}^m\lambda_if_i(x)+\sum_{j=1}^pv_jh_j(x) \leq 0$,自然得到g(λ, v) ≤ p*
所以我们将对偶问题定义为 $$\begin{aligned}\max_{\lambda,v}&&g(\lambda,v)\\s.t.&&\lambda\geq0\end{aligned}$$
【对偶函数为原问题的最优值定义了一个下界,而求解max g(λ, v)就是求解p*的一个最好的下界。如果条件再好一点的话,这个下界还会等于p*本身,这样就相当于把非凸问题转化为凸问题求解了。】
这里我们也可以理解为何要令λ ≥ 0,因为只有这样才能满足g(λ, v) ≤ p*恒成立,才能使max g(λ, v)这一问题有意义,若是λ < 0的话,g(λ, v)总可以取到正无穷,对偶问题也失去了意义。
对偶问题举例
写出对偶问题关键在于消去x,一般采用求导的方法即可,举个例子 $$ \begin{aligned} &\min x^Tx \\ &s.\textit{t. }Ax=b \\ &x\in R^n,b\in R^p.A\in R^{p\times n} \\ &\Rightarrow L(x,\lambda)=x^Tx+v^T(Ax-b) \\ &\Rightarrow g(v)=\inf_x\{x^Tx+v^T(Ax-b)\} \\ &=\inf_x\{x^Tx+v^TAx-v^Tb\} \\ &=-\frac14v^TAA^Tv-b^Tv \end{aligned} $$
min cTx
s.t. Ax = b x ≥ 0 L(x, λ, η) = cTx − λTx + ηT(Ax − b)
g(λ, η) = infx ∈ 𝒟L(x, λ, η)
= infx ∈ 𝒟cTx − λTx + ηT(Ax − b)
g(λ, η)中是关于x的线性函数,如果系数不为0,则最小值为负无穷大,若系数为0,则
g(λ, η) = −ηTb这里对偶函数仍然是凹函数
对偶问题性质
记原问题(Prime Problem)为P,
原问题对应的最优值记为p*
记对偶问题为D,对偶问题对应的最优值为d*
由上文我们已经知道d* ≤ p*总是成立的,它被称为弱对偶性Weak Dual。当d* = p*的时候,就叫做强对偶性(Strong Dual)。一个问题的对偶间隙(Dual Gap)指的就是p* − d*,是大于0的。
slater条件
我们不禁要问,什么时候才能满足强对偶条件呢?下面给出一个常用的判断强对偶关系的充分不必要条件:slater条件。为了方便阐述,先介绍一个定义:D的相对内部:RelintD = {x ∈ D|B(x, r) ∩ affD ⊂ D, ∃r > 0},这里的定义不必深究,其几何意义指的是一个把D的边界去掉的开集
1.slater条件
若有凸问题(注意等式约束要是仿射的) $$\begin{aligned}&\min f_0(x)\\&s.t.
f_i(x)\leq0,i=1,\ldots,m\\&Ax=b\end{aligned}$$ 若∃x ∈ RelintD, s.t.fi(x) < 0, i = 1, …, m, Ax = b时,有p* = d*
Slater条件就是说:如果你能从可行域D
的相对内部里能够找到一个点,使得这个点它严格可行的话(不等式严格成立),那么强对偶性成立。
2.弱slater条件
若不等式约束fi(x) ≤ 0为仿射约束时,只要可行域非空,一定有p* = d*
推论:线性规划问题如果可行的话,必有强对偶性成立
几何解释
假设当前优化问题为min f0(x), s.t. f1(x) ≤ 0 令G = {(f1(x), f0(x))|x ∈ 𝒟} 简单起见,这里令f1(x) = u, f0(x) = t
则原问题最优值p⋆ = min t = min {t|(u, t) ∈ G|u ≤ 0}
对偶问题最优值d⋆ = maxλminx{t + λu}
这里(u, t)点集合G如下图所示,从几何关系可知,原问题最优值为G左侧最低点的纵坐 标。在这个空间中t + λu为一条直线,g(λ)因为是对x取逐点最小得来的,所以 t + λu = g(λ)为与集合G下侧边缘相切的直线(直线从下方向上平移直到与G相切)。当u = 0时,t = g(λ)是直线截距,也是对偶问题要最大化的目标。显然这个截距最大为d⋆ 时,仍然小于等于p⋆,所以弱对偶成立。
KKT条件
极大极小不等式
我们都知道,优化问题的原问题可以记为 $$\begin{aligned}&\min f_0(x)\\&s.t. f_i(x)\leq0\\&h_i(x)=0\end{aligned}$$ 在引入拉格朗日乘子后,原问题可以巧妙地写为另一种形式:sup{f0(x) + ∑λifi(x) + ∑ηihi(x)},他事实上是原函数的一种拓展,因为 $$\sup_{\lambda\succeq0}\{f_0(x)+\sum\lambda_if_i(x) + \sum\eta_ih_i(x) \}=\left\{\begin{array}{ll}f_0(x),&f_i(x)\leq0\\+\infty,&otherwise\end{array}\right.$$ 因此对原函数求min,可以转化为对上述函数求min,因此原问题的解可以等价的写为 p* = infxsupλ ≽ 0L(x, λ, η) 而我们又知道对偶问题的解可以写为 d* = supλ ≽ 0infxL(x, λ, η) 因此自然的得到了不等式 supλ ≽ 0, ηinfxL(x, λ, η) ≤ infxsupλ ≽ 0, ηL(x, λ, η) 这便是极大极小不等式,我们把对函数的第一个变量极小的结果记为L(x̃, λ),对第二个变量 方便起见,把极大的结果记为L(x, λ̃),上述不等式可写为 supλL(x̃, λ) ≤ infxL(x, λ̃) 如果一个点满足对函数第一个变量极大再对第二个变量极小的值等于先对第二个变量极大再 对第一个变量极小,那么这个点就称为这个函数的鞍点。也就是∃(x̃, λ̃), s.t.: supλL(x̃, λ) = L(x̃, λ̃) = infxL(x, λ̃) 从鞍点的定义就可以看出:如果一个优化问题的强对偶性成立,那么最优解就是拉格朗日函数的一个鞍点,反过,拉格朗日函数的鞍点就是使得强对偶性成立的点,所以是最优解,因此鞍点就等价于强对偶性成立的点等价于最优解。
kkt条件
在强对偶关系满足的情况下,有以下几条性质。
首先必须满足原问题的约束 假设该问题满足强对偶关系p⋆ = d⋆,且所有函数可微。则x⋆, λ⋆, η⋆是原问题、对偶问 题的最优解,满足如下可行条件(primal/dual feasibility): fi(x⋆) ≤ 0 hi(x⋆) = 0 λ⋆ ≥ 0
根据强对偶关系进行不等式分析。 $$\begin{aligned} &d^{\star}=\sup_{\lambda\geq0,\eta}\inf_{x\in\mathcal{D}}L(x,\lambda,\eta) \\ &\leq L(x^\star,\lambda^\star,\eta^\star) \\ &=f(x^\star)+\sum_i\lambda_i^\star f_i(x^\star) \\ &\leq f(x^\star)=p^\star \end{aligned}$$ 因此∑iλi⋆fi(x⋆) = 0,这一条件叫做互补松弛条件。求和的每一项都是非负数与非正数的乘积,乘积结果必然非正数,现在求和结果为0,说明求和的每一项都是0,即两项的乘积项中至少有一项为0
在上面的推导中, 第三行的不等式取了等号,这表明x⋆是L(x, λ⋆)的极小值点,则这点处偏导数为0。因此得到 $$\frac{\partial L(x,\lambda^\star,\eta^\star)}{\partial x}|_{x=x^\star}=0$$ 这个条件叫做稳定点(stationary) 上面所讲的三个条件就是KKT条件
我们此时梳理一下前面的推导,发现两件事实 - 1.前面推导没有任何凸函数的假设,因此不论是否为凸问题,如果满足强对偶性,那么最优解一定满足 KKT 条件。 - 2.但是反过来不一定成立,也即 KKT 条件的解不一定是最优解,因为如果L(x, λ⋆, ν⋆)不是凸的,那么∇xL = 0并不能保证g(λ⋆, ν⋆) = infxL(x, λ⋆, ν⋆) ≠ L(x⋆, λ⋆, ν⋆),也即不能保证 x⋆, λ⋆, ν⋆ 就是鞍点。
因此我们可以画出下面的图。
当原问题为凸问题、各个函数可微、强对偶关系满足时,KKT条件是最优解的充要条件。举几个例子
例1:min 0.5xTPx + qTx + r, P ∈ S+n s.t. Ax = b
可行条件Ax⋆ = b
稳定点$\frac\partial{\partial x}\{0.5x^TPx+q^Tx+r+(Ax-b)^T\eta^\star\}|_{x=x^\star}=0$ Px⋆ + q + ATη⋆ = 0 将这两个等式写为线性方程组的形式 $$\begin{bmatrix}P&A^T\\A&0\end{bmatrix}\begin{bmatrix}x^\star\\\eta^\star\end{bmatrix}=\begin{bmatrix}-q\\b\end{bmatrix}$$ 解这个线性方程组即得到最优解
### 敏感性分析
如果我们求出了最优解,但是突然想对最优解做一些改动,看看有什么变化时,或者我们求不出最优解,想求一个差不多的解,,所以想看看理论上离最优解比较近的点它的最优值有什么特点时,就要从优化问题出发,分析问题的敏感性/扰动分析。
原问题 $$\begin{aligned}&\\&\min\:f_0(x)\\&s.t.\:f_i(x)\leq0,i=1:m\\&h_i(x)=0,i=1:p\end{aligned}$$ 干扰问题
min f0(x)
s.t. fi(x) ≤ ui, i = 1 : m
hi(x) = wi, i = 1 : p
考虑最优值可变化从p⋆(0, 0)变为p⋆(u, w)
约束变化后,有以下性质: 性质1:若原问题为凸问题,则p⋆(u, w)为(u, w)的凸函数
性质2:若原问题为凸问题,且满足Slater条件,λ⋆, η⋆为对偶问题最优解,则 p⋆(u, w) ≥ p⋆(0, 0) − (λ⋆)Tu − (η⋆)Tw 这个性质有以下用法 - 1)若λi⋆很大,且加紧第i项约束,则p⋆(u, w)急剧增加 - 2)若ηi*为很大的正值,wi < 0下降,或者相反若ηi⋆为很大的负值,wi > 0上升,则 p⋆(u, w)急剧增加 - 3)若λi⋆很小,且ui > 0,则p⋆(u, w)几乎不变 - 4)若ηi⋆为很小的正值,wi > 0增加,或ηi⋆为很小的负值,wi < 0下降,则p⋆(u, w) 几乎不变
性质3:(局部敏感性)若原问题为凸问题,满足强对偶关系,且p⋆(u, w)在(0,0)处可 微 $$\lambda_i^\star=-\frac{\partial p^\star(u,w)}{\partial u_i}\big|_{(0,0)}$$ $\eta_{i}^{\star}=-\frac{\partial p^{\star}(u,w)}{\partial w_{i}}\left|_{(0,0)}\right.$
p⋆(u, w) = p⋆(0, 0) − (λ⋆)Tu − (η⋆)Tw
罚函数法
在原约束条件不好处理的情况下,我们采用放松的约束方法添加罚函数项去近似该项约束。
一种是把约束惩罚到目标函数上去,比如范数平方,log-barrier,这种我感觉更多的像是一种求近似解的手段。当约束不太好的时候,罚到目标函数上去,变成无约束优化问题,也许它的对偶问题就好求了。而且一般加到目标函数会带一个惩罚因子,一方面是为了保证最优值不变,另一方面也会影响新问题和原问题最优解之间的关系。另一种是单纯的额外加一个罚项,就像是针对自变量xxx增加的一种约束,使得变量的各个分量之间距离不会太大/稀疏。
平方项罚函数
min f0(x)
s.t. Ax − b = 0
把约束惩罚到目标函数
$\operatorname* { min} f_{0}( x) + \frac \alpha 2\| Ax- b\| _{2}^{2}$, α ≥ 0
假设新问题的最优解为x̃,则∇f0(x̃) + αAT(Ax̃ − b) = 0 而这样的话x̃就也会是min f0(x) + α(Ax̃ − b)T(Ax − b)的最优解。 现在计算下原问题的对偶函数g(v) = infx{f0(x) + vTAx − vTb},知如果 v = α(Ax̃ − b)时,对偶函数g(v)就和f0(x) + α(Ax̃ − b)T(Ax − b)等价了。又因为 对偶问题最优解d* ≥ g(v),因此可以得到 f0(x*) = p* = d* ≥ g(α(Ax̃ − b)) = f0(x̃) + α∥Ax̃ − b∥22 ≥ f0(x̃)
log-barrier法
$$ \begin{aligned} &\min f_0(x) \\ &s.t. Ax\geq b,x\in R^m,A\in R^{m\times n},b\in R^m \\ &\text{log-barrier法:} \\ &\min f_0(x)-\sum_{i=1}^mu\log(a^Tx-b_i) \end{aligned} $$