转 拉格朗日乘子法和KKT条件
原文链接:http://www.cnblogs.com/tandier/p/10138918.html
问题的引出
给定一个函数ff,以及一堆约束函数g1,g2,...,gmg1,g2,...,gm和h1,h2,...,hlh1,h2,...,hl.带约束的优化问题可以表示为
下面我们将来讨论具有上述问题的解,一共可以分为四种情况:
- 无约束条件
- 只有等式约束条件
- 只有不等式约束条件
- 同时有等式和不等式约束条件
无约束条件
我们先来复习一下多元函数取得极值的条件。设f:Rn→Rf:Rn→R,是一个连续可导的函数,并且JfJf和HfHf分别是ff的一阶梯度和二阶梯度矩阵(Hession矩阵),判断f(x∗)f(x∗)是它的一个极值的条件是:
- Jf=0,HfJf=0,Hf是负定矩阵,则x∗x∗是ff的极大值
- Jf=0,HfJf=0,Hf是正定矩阵,则x∗x∗是ff的极小值
- Jf=0,HfJf=0,Hf是半正定或半负定或不定矩阵,则需要进一步讨论
这样,无约束下的最优化问题可以通过上述规则来求函数的极值。
等式约束条件
只含等式约束条件的最优化问题表示为(以一个等式约束为例)
下面用具体的实例来讨论这一类问题,令

图(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)的值能够下降,即
我们知道沿着梯度的反方向是下降最快的。如果要满足f(XF)>f(XF+ΔX)f(XF)>f(XF+ΔX)则必须有
意思就是说,下一步走的方向Δ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
考虑一种情况
其中μμ是一个常数,此时
- 当移动ΔXΔX时,ΔX⋅(−∇xf(X))=−μΔX⋅∇xh(X)=0ΔX⋅(−∇xf(X))=−μΔX⋅∇xh(X)=0.
- 无法找到一个方向ΔXΔX使得f(X)f(X)能够继续减小或增大,此时XFXF是函数的一个极值点.
回到我们最初的问题
定义拉格朗日函数
X∗X∗是一个局部最小值的充分条件是
- ∇XL(X∗,μ∗)=0∇XL(X∗,μ∗)=0.
- ∇μL(X∗,μ∗)=0∇μL(X∗,μ∗)=0.
- YT∇2XXL(X∗,μ∗)Y>0s.t.(∇Xh(X∗))TY=0YT∇XX2L(X∗,μ∗)Y>0s.t.(∇Xh(X∗))TY=0
最后的约束条件是保证YY的方向与h(X)h(X)梯度方向正交。上面结论很容易推广到多等式约束问题,设
定义拉格朗日函数
X∗X∗是一个局部最小值的充分条件是
- ∇XL(X∗,μ∗)=0∇XL(X∗,μ∗)=0.
- ∇μL(X∗,μ∗)=0∇μL(X∗,μ∗)=0.
- YT∇2XXL(X∗,μ∗)Y>0s.t.(∇Xh(X))TY=0YT∇XX2L(X∗,μ∗)Y>0s.t.(∇Xh(X))TY=0
不等式约束条件
只包含一个不等式约束的优化问题
为了便于理解,我们设

图(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).现在,如果把目标函数修改成

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

图(11)
从图(11)可以看出来,在极小值点处−∇f(X)−∇f(X)与∇g(X)∇g(X)的方向是一致的
其实这也不难理解,如果说X∗X∗是一个极小值点,上面分析知道g(X)≤0g(X)≤0被激活,所以g(X∗)=0g(X∗)=0,如果设从点X∗X∗出发下一步可行的方向为ΔXΔX,由于要满足g(X∗+ΔX)≤0g(X∗+ΔX)≤0,所以
所以下一步的所有可行方向需要满足上述不等式约束,因为X∗X∗是一个极小值点,也就是说沿着满足上式(1)的ΔXΔX的方向,都有$f(X^) \leq f(X^+\Delta X) $,也就是
并且我们知道X∗X∗一定在g(X)=0g(X)=0上,通过上一节的等式约束的条件,应有
通过(1,2,3)(1,2,3)式可知μ≤0μ≤0,从而λ=−μ≥0λ=−μ≥0.
现在我们来总结一下上面讨论的结果,给出优化问题
如果X∗X∗是一个极小值点,则可能有一下两种情况:
- 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.
- YT∇2XXL(X∗)Y≥0s.t.(∇Xg(X∗))TY=0YT∇XX2L(X∗)Y≥0s.t.(∇Xg(X∗))TY=0
下面,直接引入KKTKKT条件
定义拉格朗日函数
X∗X∗是一个局部最小值等价于存在唯一的λ∗λ∗满足
- 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∗).
将问题推广到多个不等式约束
定义拉格朗日函数
X∗X∗是一个局部最小值等价于存在唯一的λ∗λ∗满足
- KKT1 . ∇XL(X∗,λ∗)=0∇XL(X∗,λ∗)=0.
- KKT2. λ∗j≥0j=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∗,λ∗)正定.
同时存在等式和不等式约束
我们回到最开始的情况,同时存在多个等式约束和多个不等式约束
定义拉格朗日函数
X∗X∗是一个局部最小值等价于存在唯一的λ∗λ∗满足
- KKT1 . ∇XL(X∗,μ∗,λ∗)=0∇XL(X∗,μ∗,λ∗)=0.
- KKT2. λ∗j≥0j=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∗,λ∗)正定.
下面通过一个例子来加深理解,考虑问题
构造拉格朗日函数
KKT方程如下:
联立得
- 当α≥1/2α≥1/2时,λ=0≥2−4αλ=0≥2−4α,此时约束条件未被激活,原问题的最优解为(x1,x2)=(1/2,1/2)(x1,x2)=(1/2,1/2).
- 当α<1/2α<1/2时,λ=2−4α>0λ=2−4α>0,从而x2−α=0x2−α=0,即x2=αx2=α,此时约束条件被激活,愿问题最优解为(x1,x2)=(1−α,α)(x1,x2)=(1−α,α).

浙公网安备 33010602011771号