转 拉格朗日乘子法和KKT条件

原文链接:http://www.cnblogs.com/tandier/p/10138918.html

 

问题的引出

给定一个函数ff,以及一堆约束函数g1,g2,...,gmg1,g2,...,gm和h1,h2,...,hlh1,h2,...,hl.带约束的优化问题可以表示为

minXRnf(X)s.t.gi(X)0,hj(X)=0minX∈Rnf(X)s.t.gi(X)≤0,hj(X)=0


下面我们将来讨论具有上述问题的解,一共可以分为四种情况:

 

  • 无约束条件
  • 只有等式约束条件
  • 只有不等式约束条件
  • 同时有等式和不等式约束条件

无约束条件

我们先来复习一下多元函数取得极值的条件。设f:RnRf:Rn→R,是一个连续可导的函数,并且JfJf和HfHf分别是ff的一阶梯度和二阶梯度矩阵(Hession矩阵),判断f(x)f(x∗)是它的一个极值的条件是:

  • Jf=0,HfJf=0,Hf是负定矩阵,则xx∗是ff的极大值
  • Jf=0,HfJf=0,Hf是正定矩阵,则xx∗是ff的极小值
  • Jf=0,HfJf=0,Hf是半正定或半负定或不定矩阵,则需要进一步讨论

这样,无约束下的最优化问题可以通过上述规则来求函数的极值。

等式约束条件

只含等式约束条件的最优化问题表示为(以一个等式约束为例)

minXRnf(X)s.t.h(X)=0.minX∈Rnf(X)s.t.h(X)=0.


下面用具体的实例来讨论这一类问题,令

f(X)=x1+x2,h(X)=x21+x222f(X)=x1+x2,h(X)=x12+x22−2

 

 
                              图(1 )                                                        图(2)

在图(1)和(2)中蓝色线是f(X)f(X)的等高线,红色线是在h(X)=0h(X)=0约束下的可行域(XX可取值的可行范围)。

 
                              图(3 )                                                        图(4)

为了找到f(X)f(X)的最小值。如图(3),我们需要从红色点的位置(点XFXF)往某一个方向走一小步,并且目标位置依然在可行域内(满足h(X)=0h(X)=0的限制),同时还希望f(X)f(X)的值能够下降,即

h(XF+ΔX)=0andf(XF)>f(XF+ΔX)h(XF+ΔX)=0andf(XF)>f(XF+ΔX)


我们知道沿着梯度的反方向是下降最快的。如果要满足f(XF)>f(XF+ΔX)f(XF)>f(XF+ΔX)则必须有

ΔX(xf(X))>0ΔX⋅(−∇xf(X))>0


意思就是说,下一步走的方向ΔXΔX应该与Xf(X)−∇Xf(X)的夹角小于等于90度。

 

 
                              图(5 )                                                        图(6)

图(5)和图(6)分别画出了约束函数h(X)h(X)的梯度方向以及梯度的正交方向。为了限制在移动XFXF后,使得XF+ΔXXF+ΔX依然在约束曲线上,则ΔXΔX必须沿着h(X)h(X)梯度的正交方向移动(否则h(X)h(X)会增大或减小,这样不再满足约束条件h(X)=0h(X)=0)。这说明任何时刻都有

  • ΔXΔX沿着Xh(XF)∇Xh(XF)正交方向移动,可以保证h(XF+ΔX)=0h(XF+ΔX)=0.

  • f(XF)>f(XF+ΔX)f(XF)>f(XF+ΔX)时,必须有

    ΔX(Xf(X))>0ΔX⋅(−∇Xf(X))>0

     

考虑一种情况

Xf(XF)=μXh(XF)∇Xf(XF)=μ∇Xh(XF)


其中μμ是一个常数,此时

 

  • 当移动ΔXΔX时,ΔX(xf(X))=μΔXxh(X)=0ΔX⋅(−∇xf(X))=−μΔX⋅∇xh(X)=0.
  • 无法找到一个方向ΔXΔX使得f(X)f(X)能够继续减小或增大,此时XFXF是函数的一个极值点.

回到我们最初的问题

minXRnf(X)s.t.h(X)=0.minX∈Rnf(X)s.t.h(X)=0.


定义拉格朗日函数

L(X,λ)=f(X)+λh(X)L(X,λ)=f(X)+λh(X)


XX∗是一个局部最小值的充分条件是

 

  • XL(X,μ)=0∇XL(X∗,μ∗)=0.
  • μL(X,μ)=0∇μL(X∗,μ∗)=0.
  • YT2XXL(X,μ)Y>0s.t.(Xh(X))TY=0YT∇XX2L(X∗,μ∗)Y>0s.t.(∇Xh(X∗))TY=0

最后的约束条件是保证YY的方向与h(X)h(X)梯度方向正交。上面结论很容易推广到多等式约束问题,设

minXRnf(X)s.t.hi(X)=0i=1,2,...,lminX∈Rnf(X)s.t.hi(X)=0i=1,2,...,l


定义拉格朗日函数

L(X,λ)=f(X)+i=1lμihi(X)=f(X)+μTh(X)L(X,λ)=f(X)+∑i=1lμihi(X)=f(X)+μTh(X)


XX∗是一个局部最小值的充分条件是

 

  • XL(X,μ)=0∇XL(X∗,μ∗)=0.
  • μL(X,μ)=0∇μL(X∗,μ∗)=0.
  • YT2XXL(X,μ)Y>0s.t.(Xh(X))TY=0YT∇XX2L(X∗,μ∗)Y>0s.t.(∇Xh(X))TY=0

不等式约束条件

只包含一个不等式约束的优化问题

minXRnf(X)s.t.g(X)0.minX∈Rnf(X)s.t.g(X)≤0.


为了便于理解,我们设

f(X)=x21+x22,g(X)=x21+x221.f(X)=x12+x22,g(X)=x12+x22−1.

 

 
                              图(7 )                                                        图(8)

图(7)画出了f(X)f(X)的等高线,并且点(0,0)(0,0)是一个极小值点,图(8)的红色区域是在g(X)g(X)约束条件下的可行域。从图中可以看出,无论是否有g(X)g(X)的约束,函数f(X)f(X)的极小值点都在(0,0)(0,0)处,此时我们称该约束未被激活g(X)<0g(X∗)<0).现在,如果把目标函数修改成

f(X)=(x11.1)2+(x21.1)2f(X)=(x1−1.1)2+(x2−1.1)2

 

 
                              图(9 )                                                        图(10)

图(9)和(10)显示,f(X)f(X)在无约束条件下的极值点是(1.1,1.1)(1.1,1.1),但是它并不在g(X)0g(X)≤0的可行域中。这种情况下,若XX∗是f(X)f(X)满足约束条件的一个极小值点,那么一定有g(X)=0g(X∗)=0,也即极小值点一定在约束的边界上取得。实际上,此处的不等式约束就变成了等式约束。

​ 图(11)

从图(11)可以看出来,在极小值点处f(X)−∇f(X)与g(X)∇g(X)的方向是一致的

f(X)=λg(X)andλ>0−∇f(X)=λ∇g(X)andλ>0


其实这也不难理解,如果说XX∗是一个极小值点,上面分析知道g(X)0g(X)≤0被激活,所以g(X)=0g(X∗)=0,如果设从点XX∗出发下一步可行的方向为ΔXΔX,由于要满足g(X+ΔX)0g(X∗+ΔX)≤0,所以

ΔXg(X)0(1)ΔX⋅∇g(X∗)≤0(1)


所以下一步的所有可行方向需要满足上述不等式约束,因为XX∗是一个极小值点,也就是说沿着满足上式(1)的ΔXΔX的方向,都有$f(X^) \leq f(X^+\Delta X) $,也就是

ΔXf(X)0(2)ΔX⋅∇f(X∗)≥0(2)


并且我们知道XX∗一定在g(X)=0g(X)=0上,通过上一节的等式约束的条件,应有

f(X)=μg(X)(3)∇f(X∗)=μ∇g(X∗)(3)


通过(1,2,3)(1,2,3)式可知μ0μ≤0,从而λ=μ0λ=−μ≥0.

 

现在我们来总结一下上面讨论的结果,给出优化问题

minXRnf(X)s.t.g(X)0.minX∈Rnf(X)s.t.g(X)≤0.


如果XX∗是一个极小值点,则可能有一下两种情况:

 

  • Case 1: 无约束条件的极小值点出现在可行域内
    • g(X)<0g(X∗)<0.
    • Xf(X)=0∇Xf(X∗)=0.
    • 2XXf(X)∇XX2f(X)是一个正定矩阵.
  • Case 2: 无约束条件的极小值点出现在可行域外
    • g(X)=0g(X∗)=0.
    • Xf(X)=λg(X)whereλ>0−∇Xf(X∗)=λ∇g(X∗)whereλ>0.
    • YT2XXL(X)Y0s.t.(Xg(X))TY=0YT∇XX2L(X∗)Y≥0s.t.(∇Xg(X∗))TY=0

下面,直接引入KKTKKT条件

minXRnf(X)s.t.g(X)0.minX∈Rnf(X)s.t.g(X)≤0.


定义拉格朗日函数

L(X,λ)=f(X)+λg(X).L(X,λ)=f(X)+λg(X).


XX∗是一个局部最小值等价于存在唯一的λλ∗满足

 

  • KKT1 . XL(X,λ)=0∇XL(X∗,λ∗)=0.
  • KKT2. λ0λ∗≥0.
  • KKT3. λg(X)=0λ∗g(X∗)=0.
  • KKT4. g(X)0g(X∗)≤0.
  • KKT5. 矩阵XXL(X,λ)∇XXL(X∗,λ∗)正定.

上面就是KKTKKT条件。这些条件其实可以分两种情况

  • Case 1: 约束未激活
    • 此时λ=0,L(X,λ)=f(X)λ∗=0,L(X∗,λ∗)=f(X∗),
    • KKT1 Xf(X)=0⇒∇Xf(X∗)=0.
    • KKT4 X⇒X∗是一个可行点
  • Case 2: 约束被激活
    • 此时λ0,L(X,λ)=f(X)+λg(X)λ∗≥0,L(X∗,λ∗)=f(X∗)+λ∗g(X∗),
    • KKT1 Xf(X)=λg(X)⇒∇Xf(X∗)=−λ∇g(X∗).
    • KKT3 g(X)=0⇒g(X∗)=0.并且L(X,λ)=f(X)L(X∗,λ∗)=f(X∗).

将问题推广到多个不等式约束

minXRnf(X)s.t.gi(X)0.i=1,2,...,mminX∈Rnf(X)s.t.gi(X)≤0.i=1,2,...,m


定义拉格朗日函数

L(X,λ)=f(X)+i=1mλigi(X)=f(X)+λTg(X)L(X,λ)=f(X)+∑i=1mλigi(X)=f(X)+λTg(X)


XX∗是一个局部最小值等价于存在唯一的λλ∗满足

 

  • KKT1 . XL(X,λ)=0∇XL(X∗,λ∗)=0.
  • KKT2. λj0j=1,2...,mλj∗≥0j=1,2...,m.
  • KKT3. λjgj(X)=0j=1,2,...,mλj∗gj(X∗)=0j=1,2,...,m.
  • KKT4. gj(X)0j=1,2,...,mgj(X∗)≤0j=1,2,...,m.
  • KKT5. 矩阵XXL(X,λ)∇XXL(X∗,λ∗)正定.

同时存在等式和不等式约束

我们回到最开始的情况,同时存在多个等式约束和多个不等式约束

minXRnf(X)s.t.gi(X)0,hj(X)=0,i=1,2,...,landj=1,2,...,mminX∈Rnf(X)s.t.gi(X)≤0,hj(X)=0,i=1,2,...,landj=1,2,...,m


定义拉格朗日函数

L(X,λ)=f(X)+j=1lμjhj(X)+i=1mλigi(X)=f(X)+μTh(X)+λTg(X)L(X,λ)=f(X)+∑j=1lμjhj(X)+∑i=1mλigi(X)=f(X)+μTh(X)+λTg(X)


XX∗是一个局部最小值等价于存在唯一的λλ∗满足

 

  • KKT1 . XL(X,μ,λ)=0∇XL(X∗,μ∗,λ∗)=0.
  • KKT2. λj0j=1,2,...,mλj∗≥0j=1,2,...,m.
  • KKT3. λjgj(X)=0j=1,2,...,mλj∗gj(X∗)=0j=1,2,...,m.
  • KKT4. gj(X)0j=1,2,...,mgj(X∗)≤0j=1,2,...,m.
  • KKT5. hi(X)=0i=1,2,...,lhi(X∗)=0i=1,2,...,l
  • KKT6. 矩阵XXL(X,λ)∇XXL(X∗,λ∗)正定.

下面通过一个例子来加深理解,考虑问题

minx21+x22s.t.x1+x2=1.x2α.minx12+x22s.t.x1+x2=1.x2≤α.


构造拉格朗日函数

L(x1,x2,λ,μ)=x21+x22+μ(x1+x21)+λ(x2α)L(x1,x2,λ,μ)=x12+x22+μ(x1+x2−1)+λ(x2−α)


KKT方程如下:

xL=(2x1+μ,2x2+μ+λ)=0,x1+x2=1,x2α,λ0,λ(x2α)=0.∇xL=(2x1+μ,2x2+μ+λ)=0,x1+x2=1,x2≤α,λ≥0,λ(x2−α)=0.


联立得

λ24αλ≥2−4α

 

    • α1/2α≥1/2时,λ=024αλ=0≥2−4α,此时约束条件未被激活,原问题的最优解为(x1,x2)=(1/2,1/2)(x1,x2)=(1/2,1/2).
    • α<1/2α<1/2时,λ=24α>0λ=2−4α>0,从而x2α=0x2−α=0,即x2=αx2=α,此时约束条件被激活,愿问题最优解为(x1,x2)=(1α,α)(x1,x2)=(1−α,α).
posted @ 2019-04-15 16:03  备忘草屋  阅读(123)  评论(0)    收藏  举报