04-拉格朗日对偶问题和KKT条件

04-拉格朗日对偶问题和KKT条件

凸优化从入门到放弃完整教程地址:https://www.cnblogs.com/nickchen121/p/14900036.html

一、拉格朗日对偶函数

[题设] 考虑以下标准形式的优化问题:

minimizef0(x)s.t.fi(x)0,i=1,...,mhi(x)=0,i=1,...,p

  • 其中 xRn ,设值域 D=i=0mdom fii=1pdom hi 不为空。
  • 最优值记为 p ,不假设这个问题是凸的。
  • 拉格朗日对偶:通过添加约束的加权和来增广目标函数。

[拉格朗日函数] 定义拉格朗日函数 L:Rn×Rm×RpR

注:大概知道拉格朗日函数的构造形式即可,下面在拉个朗日对偶问题中会详细叙述它的作用

L(x,λ,v)=f0(x)+i=1mλifi(x)+i=1pvihi(x).

  • 值域dom L=D×Rm×Rp.
  • 拉格朗日乘子:记 λi 是第 i 个不等式约束 fi(x)0 的拉格朗日乘子; vi 是第 i 个等式约束 hi(x)=0 的拉格朗日乘子。
  • 乘子向量:向量 λv 称为对偶变量,或该问题的拉格朗日乘子向量。

[拉格朗日对偶函数] 定义拉格朗日对偶函数(或对偶函数) g:Rm×RpR 为拉格朗日函数关于 x 取得的最小值:对于 λRm,vRp

g(λ,v)=infxDL(x,λ,v)

注:上面为什么用 inf 这个函数,因为解可能是趋向于一个值,而不是一个具体的值

  • 如果关于 x 无下界,那么对偶函数取值 .
  • 对偶函数是凹的:因为对偶函数是一组关于 (λ,v) 的仿射函数的逐点下确界,所以即使题设是凸的,对偶函数也是凹的

[最优值的下界] 对偶函数给出最优值 p 的下界: g(λ,v)pλ0,v.


二、拉格朗日对偶问题

[拉格朗日对偶问题] 拉格朗日函数能给出的最好下界:

maxmizeg(λ,v)s.t.λ0

注:这里解释下为什么要这样构造拉格朗日对偶问题,首先明确拉格朗日函数的作用:因为约束条件对定义域有着很大的限制,因此通过拉格朗日函数的形式去除优化问题的约束条件,取消约束限制对定义域的限制,让优化问题更容易求解,那为什么这样做有用呢?

我们可以这样来看拉格朗日函数 L(x,λ,v)=f0(x)+i=1mλifi(x)+i=1pvihi(x). ,其中由于约束条件 hi(x)=0 进而 i=1pvihi(x)=0,并且如果 λi0fi(x)0 进而 i=1mλifi(x)0,也就是说 L(x,λ,v)f0(x)

原问题是去寻找 f0(x) 的最小值,那么通过上述的分析,我们是不是可以找到 L(x,λ,v) 的最小值去作为 f0(x) 的最小值呢?可以的,只不过稍微有点误差而已,但是我们却轻松地解决了带约束问题的优化问题。

为此,为了减小这个误差,我们进而又想找到 L(x,λ,v) 的最小值中的最大值,也就有了 g(λ,v),最重要的还是,无论原问题是否为凸问题,g(λ,v) 都是一个凹函数。

  • 上述称为拉格朗日对偶问题,也称原问题(primal problem)。
  • 对偶可行:满足 λ0 , g(λ,v)> 称为对偶可行的。
  • 对偶最优解(最优拉格朗日乘子):记 (λ,v) 为对偶问题的最优解。
  • 拉格朗日对偶问题是凸优化问题:因为目标函数是凹函数,约束集合是凸集。

另一方面,由于不论原函数是否为凸优化问题,新的问题都是凸的,因此可以方便求解。下面举几个例子。

[例子 1]:原问题为

 minimize xTx s.t. Ax=b

那么可以很容易得到拉格朗日函数为 L(x,ν)=xTx+νT(Axb),对偶函数为 g(ν)=(1/4)νTAATνbTν,也即

pg(ν)

[例子 2]:标准形式的线性规划(LP)

 minimize cTx s.t. Ax=b,x0

按照定义容易得到对偶问题为

 maximize bTν s.t. ATν+c0

[例子 3]:原问题为最小化范数

 minimize x s.t. Ax=b

对偶函数为

g(ν)=infx(x+νT(bAx))={bTνATν1o.w.

这个推导过程中用到了共轭函数的知识。实际上上面三个例子都是线性等式约束,这种情况下,我们应用定义推导过程中可以很容易联想到共轭函数。(实际上加上线性不等式约束也可以)

[例子 4]:(原问题非凸)考虑 Two-way partitioning (不知道怎么翻译了...)

 minimize xTWx s.t. xi2=1,i=1,...,n

对偶函数为

g(ν)=infx(xT(W+diag(ν))x)1Tν={1TνW+diag(ν)0 otherwise 

于是可以给出原问题最优解的下界为 p1Tν if W+diag(ν)0。这个下界是不平凡的,比如可以取 ν=λmin(W)1,可以给出 pnλmin(W)

注:弱强对偶的区别,简单点说,就是我们从对偶函数 g(λ,v) 找到的最大值是否为原函数 f0(x) 的最优解,也就是通过对偶问题求解之后,对偶问题的解和真实问题的解有没有误差

[弱对偶性] 对偶问题的最优值记为 d , 是从对偶函数中得到的 p 的最优下界,因此不等式

dp 成立即使最初问题不是凸的。这个性质称为弱对偶性。

  • 最优对偶间隙: pd

[强对偶性] 如果等式 d=p 成立,即最优对偶间隙为零,那么强对偶性成立。注:如果原问题为凸优化问题,一般情况下都成立。

  • 强对偶性成立的条件:约束准则(constraint qualifications)

[Slater's constraint qualifications(SCQ)条件] 存在 xrelint D (relint指相对内部)使得 fi(x)<0,i=1,...,mAx=b.

注:Slater 条件,如果简单说,就是看 fi(x)<0 是否严格满足

  • 这样的点称为严格可行点
  • Slater定理说明如果Slater 条件成立(且原始问题是凸问题),那么强对偶性成立。
  • 由于存在线性等式约束,因此实际定义域可能不存在内点,可以将这一条件放松为相对内点 xrelintD
  • 如果不等式约束中存在线性不等式,那么他也不必严格小于0。也即如果 fi(x)=CTx+d,则只需要满足 fi(x)0 即可。

三、强弱对偶的几何解释

[弱对偶性] 令集合 G 是目标函数和约束函数的值的集合

注:看下面图片去理解的时候,需要注意,图片的阴影面积是目标函数和约束函数的值的集合,是一个集合,然后通过下面的叙述,就是从集合中找到一个支撑超平面,然后注意一些限制条件,比如u0, 就可以看出p 为什么是在那里了

G={(f1(x),...,fm(x),h1(x),...,hp(x),f0(x))Rm×Rp×R|xD}

p=inf{t|(u,v,t)G,u0,v=0}

为了得到关于 (λ,v) 的对偶函数,我们最小化仿射函数: (u,v,t)G,

(λ,v,1)T(u,v,t)=i=1mλiui+i=1pvivi+t

即对偶函数为:

g(λ,v)=inf{(λ,v,1)T(u,v,t)|(u,v,t)G}

如果下确界是有限的,那么

(λ,v,1)T(u,v,t)g(λ,v)

这定义了一个 G 的支撑超平面(以 (λ,v,1) 为法向量且与 G 在下方相切)。它是非垂直的。

假设 λ0 ,如果 u0v=0 ,那么 t(λ,v,1)T(u,v,t). 因此,

pg(λ,v).

即得到了弱对偶性。

  • 如图1,对于 G={(f1(x),f0(x))|xD} ,给定一个 λ ,然后在 G 范围内最小化 (λ,1)T(u,t) ,得到一个斜率为 λ 的支撑超平面 t=λu+g(λ)g(λ) 位于 p 的下方。注:由于 g(λ)=t+λu,可以得知 g(λ) 就是 t 轴的交点,也就相当于截距。
  • 为了最大化 g(λ) ,给 λ 取不同的值, 如图2,即使是最优的 λ ,给出的 d 也在 p 的下方,所以不满足强对偶性,只有弱对偶性。注:可以把这看成是一个迭代的过程

注:再次讲讲 p 的来源,那么 p 体现在哪个点呢?由于对于原优化问题,我们有 f1(x)0,因此体现在这个图里面就是 u0,也就是上面左图当中的红色区域,而 p=minf0(x)=mint

img

img

[弱对偶性的证明]:我们有 λ0

p=inf{t|(u,v,t)G,u0,v=0}inf{t+λTu+μTv|(u,v,t)G,u0,v=0}inf{t+λTu+μTv|(u,v,t)G}=g(λ,μ)

[强对偶性条件 Slater’s constraint qualification(SCQ) 的证明]:由 g(λ,μ)=inf(u,v,t)G(t+λTu+μTv) 可以得到

(λ,μ,1)T(u,v,t)g(λ,μ),(u,v,t)G

这实际上定义了 G 的一个超平面。特别的有 (0,0,p)bdG,因此也有

(λ,μ,1)T(0,0,p)g(λ,μ)

这个不等式可以自然地导出弱对偶性,当“=”成立时则可以导出强对偶性。那么什么时候取等号呢?点 (0,0,p)支撑点的时候!也就是说

如果在边界点 (0,0,p) 处存在一个非竖直的支撑超平面,那么我们就可以找到 λ,μ 使得上面的等号成立,也就是得到了强对偶性。

注意前面的分析中我们并没有提到 SCQ,那么 SCQ 是如何保证强对偶性的呢?注意 SCQ 要求存在 xD 使得 f(x)<0,这也就意味着 Gu<0 半平面上有点,因此如果支撑超平面存在的话,就一定不是垂直的。

但这又引出另一个问题,那就是支撑超平面一定存在吗?答案是一定存在,这是由原问题的凸性质决定的。为了证明这一点,我们可以引入一个类似于 epigraph 的概念:

A=G+(R+m×{0}×R+)={(u,v,t)| xD,s.t.f(x)u,h(x)=v,f0(x)t}

由于原优化问题为凸的,可以应用定义证明集合 A 也是凸的,同时 (0,0,p)bdA,那么集合 A(0,0,p) 点就一定存在一个支撑超平面。又由 SCQ 可知这个支撑超平面一定不是竖直的,因此就可以得到强对偶性了。

注:(λ,μ,1)T(u,v,t)g(λ,μ),(u,v,t)A 也成立。

注:说实话,这里我也有点半知半解,数学公式看的太乱了,反正要注意,u 相当于 fi(x)v 相当于 hi(x)。我只能说说我浅显的理解,就是从图中看,确保坐标轴 u 的负半轴有一个支撑超平面,且这个支撑超平面不是垂直的,那么 pd 就被保证了。

img


四、鞍点解释

4.1 鞍点的基础定义

[鞍点定义]:一个不是局部最小值的驻点(一阶导数为0的点)称为鞍点。注:鞍点的数学含义是——目标函数在此点上的梯度(一阶导数)值为 0, 但从该点出发的一个方向是函数的极大值点,而在另一个方向是函数的极小值点。

[判断鞍点的一个充分条件]:函数在一阶导数为零处(驻点)的黑塞矩阵为不定矩阵(特征值有正有负的矩阵为不定矩阵)。

下面对函数 z=x2y2 的驻点 (0,0) 判断是否为鞍点。函数图像如下(红点为图像的鞍点):

img

我们根据定义来判断 (0,0) 点的 Hessian 矩阵:

我们容易求得二元函数 z=x2y2 在驻点 (0,0) 处的 Hessian 矩阵形式为:

img

容易解出特征值一个为 2,一个为 2(有正有负),显然是不定矩阵,所以该点是鞍点。

注:函数在一阶导数为零处(驻点)的 Hessian 矩阵为不定矩阵只是判断该点是否为鞍点的充分条件,也就是说函数在一阶导数为零处(驻点)的 Hessian 矩阵不满足不定矩阵的定义,也不一定能够说明它不是鞍点。比如在 z=x4y4(0,0) 处的 Hessian 矩阵是一个 0 矩阵,并不满足是不定矩阵,但是它是一个鞍点。

4.2 极大极小不等式和鞍点性质

[极大极小不等式]:对任意 fRn×RmR,WRnZRm,有

supzZinfwWf(w,z)infwWsupzZf(w,z)

对于上述这个不等式一般称为极大极小不等式。如果等式成立,即

supzZinfwWf(w,z)=infwWsupzZf(w,z)

则称 f(以及 WZ)满足强极大极小性质或者鞍点性质

[鞍点性质]注:这个解释更多的是为了下面讲述 KKT 条件,其实就是注意下这个强极大极小性质就是鞍点性质

我们称一对 w^W,z^Z 是函数 f (以及 WZ)的鞍点,如果对任意的 wWzZ 下式成立:

f(w^,z)f(w^z^)f(w,z^)

也就是说,f(x,z^)w^ 处取得最小值(关于变量 wW),f(w^,z)z^ 处取得最大值(关于变量 zZ):

f(w^,z^)=infwWf(w,z^),f(w^,z^)=supzZf(w^,z)

该式满足强极大极小性质,且共同值为 f(w^,z^),也就是上述说的,w^z^f 的鞍点。

五、最优性条件与 KKT 条件

5.1 KKT 条件

我们首先回顾一下拉格朗日函数,考虑下面的优化问题

 minimize f0(x) s.t. fi(x)0,i=1,,mhi(x)=0,i=1,,p

那么他的拉格朗日函数就是

L(x,λ,ν)=f0(x)+λTf(x)+νTh(x)

首先,我们看对偶函数

g(λ,ν)=infxD(f0(x)+λTf(x)+νTh(x))

对偶问题实际上就是

d=supλ,νg(λ,ν)=supλ,νinfxL(x,λ,ν)

然后我们再看原问题,由于 λ0,f(x)0,我们有

f0(x)=supλ,νL(x,λ,ν)

原问题的最优解实际上就是

p=infxf0(x)=infxsupλ,νL(x,λ,ν)

弱对偶性 pd 实际上说的是什么呢?就是 max-min 不等式

infxsupλ,νL(x,λ,ν)supλ,νinfxL(x,λ,ν)

强对偶性说的又是什么呢?就是上面能够取等号

infxsupλ,νL(x,λ,ν)=supλ,νinfxL(x,λ,ν)=L(x,λ,ν)

注:实际上 x,λ,ν 就是拉格朗日函数的鞍点!!!(数学家们真实太聪明了!!!妙啊!!!)那么也就是说强对偶性成立等价于拉格朗日函数存在鞍点(在定义域内)

好,如果存在鞍点(一阶导为 0)的话,我们怎么求解呢?还是看上面取等的式子

f0(x)=g(λ,ν)=infx(f0(x)+λTf(x)+νTh(x))f0(x)+λTf(x)+νTh(x)f0(x)

这两个不等号必须要取到等号,而第一个不等号取等条件应为(鞍点一阶导为 0

x(f0(x)+λTf(x)+νTh(x))=0

第二个不等号取等条件为(这个条件成立,等号才能取到

λifi(x)=0,i

同时,由于 x,λ,ν 还必须位于定义域内,需要满足约束条件,因此上面的几个条件共同构成了 KKT 条件。

KKT 条件

  1. 原始约束 fi(x)0,i=1,...,m,hi(x)=0,i=1,...,p
  2. 对偶约束 λ0
  3. 互补性条件(complementary slackness) λifi(x)=0,i=1,...,m
  4. 梯度条件

f0(x)+i=1mλifi(x)+i=1pνihi(x)=0

5.2 KKT 条件与凸问题

Remarks(重要结论)

  1. 前面推导没有任何凸函数的假设,因此不论是否为凸问题,如果满足强对偶性,那么最优解一定满足 KKT 条件
  2. 但是反过来不一定成立,也即 KKT 条件的解不一定是最优解,因为如果 L(x,λ,ν) 不是凸的,那么 xL=0 并不能保证 g(λ,ν)=infxL(x,λ,ν)L(x,λ,ν),也即不能保证 x,λ,ν 就是鞍点。

但是如果我们假设原问题为凸问题的话,那么 L(x,λ,ν) 就是一个凸函数,由梯度条件 xL=0 我们就能得到 g(λ,ν)=L(x,λ,ν)=infxL(x,λ,ν),另一方面根据互补性条件我们有此时 f0(x)=L(x,λ,ν),因此我们可以得到一个结论

Remarks(重要结论)

  1. 考虑原问题为凸的,那么若 KKT 条件有解 x~,λ~,ν~,则原问题一定满足强对偶性,且他们就对应原问题和对偶问题的最优解。
  2. 但是需要注意的是,KKT 条件可能无解!此时就意味着原问题不满足强对偶性!

假如我们考虑上一节提到的 SCQ 条件,如果凸优化问题满足 SCQ 条件,则意味着强对偶性成立,则此时有结论

Remarks(重要结论)
如果 SCQ 满足,那么 x 为最优解当且仅当存在 λ,ν 满足 KKT 条件!

[例子 1]:等式约束的二次优化问题 PS+n

 minimize (1/2)xTPx+qTx+r s.t. Ax=b

那么经过简单计算就可以得到 KKT 条件为

[PATA0][xν]=[qb]

5.3 互补松弛性

假设原问题和对偶问题的最优值都可以达到且相等。令 x 是原问题的最优解, (λ,ν) 是对偶问题的最优解。这表明,

(8)(1)f0(x)=g(λ,ν)(2)=infx(f0(x)+i=1mλifi(x)+i=1pνihi(x))(3)f0(x)+i=1mλifi(x)+i=1pνihi(x)(4)f0(x)

其中第一个等式是因为强对偶的定义,第二个等式是Lagrange函数的定义,第三个不等式是根据Lagrange函数关于 x 求下确界小于等于其在 x 处的值(请确保你理解这个不等式),最后一个不等式是因为 λi0,fi(x)0,i=1,,m 以及 hi(x)=0,i=1,,p 。因此,在上面的式子链中,两个不等式取等号。

由于第三个不等式可以取等式,这里有一个重要的结论:

i=1mλifi(x)=0

事实上,求和的每一项都非正,因此有:

λif(xi)=0i=1,,m

所以,

λi>0fi(x)=0fi(xi)<0λi=0

注:这表明在最优点处,原问题的不等式起作用时,对于的Lagrange问题的对应的不等式不起作用,反之亦然。

六、扰动及灵敏度分析

6.1 扰动问题

注:扰动其实就是约束条件多了点限制

现在我们再回到原始问题

 minimize f0(x) s.t. fi(x)0,i=1,,mhi(x)=0,i=1,,p

我们引入了对偶函数 g(λ,ν),那这两个参数 λ,ν 有什么含义吗?假如我们把原问题放松一下

 minimize f0(x) s.t. fi(x)ui,i=1,,mhi(x)=vi,i=1,,p

记最优解为 p(u,v)=minf0(x),现在对偶问题变成了

maxg(λ,ν)uTλvTνs.t.λ0

假如说原始对偶问题的最优解为 λ,ν,松弛后的对偶问题最优解为 λ~,ν~,那么根据弱对偶性原理,有

p(u,v)g(λ~,ν~)uTλ~vTν~g(λ,ν)uTλvTν=p(0,0)uTλvTν

这像不像关于 u,v 的一阶近似?太像了!实际上,我们有

λi=p(0,0)ui,νi=p(0,0)vi

img

6.2 灵敏度分析

注:细节我也没认真看,其实看看下述给出的灵敏度解释,也就是大概知道扰动会对结果造成什么影响就行了

  1. 如果λi比较大,加强第i个约束,即ui<0,则最优值P(u,l)会大幅增加。
  2. 如果λi比较小,放松第i个约束,即ui>0,则最优值P(u,l)不会减小太多。
  3. 如果vi比较大且大于0,li<0],或者如果vi比较大且小于0,li>0,则最优值P(u,l)会大幅增加。
  4. 如果vi比较小且大于0,li>0,或者如果vi比较大且小于0,li<0,则最优值P(u,l)不会减少太多。

七、Reformulation

前面将凸优化问题的时候,我们提到了Reformulation的几个方法来简化原始问题,比如消去等式约束,添加等式约束,添加松弛变量,epigraph等等。现在当我们学习了对偶问题,再来重新看一下这些方法。

7.1 引入等式约束

[例子 1】:考虑无约束优化问题 minf(Ax+b),他的对偶问题跟原问题是一样的。如果我们引入等式约束,原问题和对偶问题变为

minimizef0(y)s.t.Ax+by=0minimizebTνf0(ν)s.t.ATν=0

[例子 2]:考虑无约束优化 minAxb,类似的引入等式约束后,对偶问题变为

minimizebTνs.t.ATν=0,ν1

7.2 显示约束与隐式约束的相互转化

[例子 3]:考虑原问题如下,可以看出来对偶问题非常复杂

minimizecTxs.t.Ax=b1x1maximizebTν1Tλ11Tλ2s.t.c+ATν+λ1λ2=0λ10,λ20

如果我们原问题的不等式约束条件转化为隐式约束,则有

minimizef0(x)={cTxx1 otherwise s.t.Ax=b

然后对偶问题就可以转化为无约束优化问题

maximizebTνATν+c1

7.3 转化目标函数与约束函数

[例子 4]:还考虑上面提到的无约束优化问题 minAxb,我们可以把目标函数平方一下,得到

minimize(1/2)y2s.t.Axb=y

然后对偶问题就可以转化为

minimize(1/2)ν2+bTνs.t.ATν=0

参考文献:Stephen Boyd, Lieven Vandenberghe: Convex Optimization

参考资料:https://www.zhihu.com/column/c_1174389256402771968

posted @   B站-水论文的程序猿  阅读(4259)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2019-06-20 __init__和__new__
点击右上角即可分享
微信分享提示