KKT条件--约束问题最优化方法

  KKT条件在约束条件下求解非线性规划问题很有用,是确定某点为最优点的一阶必要条件。而对于凸规划问题而言,KKT条件是局部极小点的一阶必要条件,同时也是充分条件,而且局部极小点就是全局极小点。考虑以下数学模型:

min f(x)s. t. hi(x)=0 (i=1,2,...,m)gj(x)0 (j=1,2,...,l)(1)

定理:
   x 为可行域中的一点, I(x)={i|gi(x)=0,1il} , f(x) gi(x)(iI(x)) 在点 x 处可微, gi(x) 在点 x 处连续, hj(x)(j=1,2,...,m) 在点 x 处连续可微,且向量集
{gi(x),hj(x)|iI(x),j=1,2,...,m}

线性无关。若 x 是上述数学模型的局部最优解,则存在 γ=(γ1,γ2,...,γl)T 和向量 λ=(λ1,λ2,...,λm)T ,是下述条件成立:
f(x)lj=1γjgj(x)mi=1λihi(x)=0γjgj(x)=0(j=1,2,...,l)γj0(j=1,2,...,l)(2)

第一种理解思路:

辅助概念:
  1. 0 不等式约束,如上面的 gj(x) :可行点 x 处的可行下降方向 d 与该点处目标函数的负梯度方向的夹角为锐角,与该点起作用约束函数的梯度方向的夹角也为锐角。
  2. 0 不等式约束:可行点 x 处的可行下降方向 d 与该点处目标函数的负梯度方向的夹角为锐角,与该点起作用约束函数的梯度方向的夹角也为钝角。
  3. 等式约束,如上面的 hi(x) :可行点 x 处的可行下降方向 d 与该点处目标函数的负梯度方向的夹角为锐角,与该点处的约束函数的梯度方向向量的内积为0。

  由(2)中第二个向量方程可知,当不等式约束 gj(x)0 x 处为不起作用约束时, γj 必为0。这样,第一个向量方程其实就是可行点 x 处的目标函数梯度方向,与该点处不等式约束的起作用约束函数的梯度方向,以及等式约束函数的梯度方向的线性组合。
假设存在可行下降方向 d ,第一个向量方程两边同乘以 d ,则可得到

f(x)Tdj=1lγjgj(x)Tdi=1mλihi(x)Td=0

  由上面的辅助概念1可知, f(x)Td<0 , gj(x)Td>0
  由上面的辅助概念3可知, λihi(x)Td=0
  由此可知,等式不成立,即假设不成立, d 不存在,此时点 x 为局部最优解。
通常称 f(x)lj=1γjgj(x)mi=1λihi(x) 为问题(1)的广义拉格朗日函数。当该非线性规划问题只包含等式约束时,此KKT条件便具有以下形式:
f(x)i=1mλihi(x)=0(3)

(3)式即为狭义拉格朗日函数关于 x 求导形式。

第二种理解思路:

其实可以从原问题的广义拉格朗日函数的最小最大问题出发。

L(x,γj,λi)=f(x)j=1lγjgj(x)i=1mλihi(x)g(γj,λi)=maxγj>=0,λiL(x,γj,λi)={,f(x),xminxmaxγj>=0,λiL(x,γj,λi)

于是求极值先对 γj,λi 求导:
gj(x)=0γj>=0hi(x)=0

再对x求导:
f(x)j=1lγjgj(x)i=1mλihi(x)=0

但是直接求不太好求,会通过求对偶问题:
p(x)=minxL(x,γj,λi)

但是 p(x)<=L(x,γj,λi)<=g(γj,λi) ,什么时候 p(x) 的最优解就是原问题的最优解呢?
g(γj,λi) 的最优解为 γj,λi , p(x) 的最优解为 x 。当满足KKT条件时, x 是原问题的最优解。证明:
g(γj,λi)=minxL(x,γj,λi)=L(x,γj,λi)=f(x)j=1lγjgj(x)i=1mλihi(x)=f(x)

最后一步由KKT条件中的第二个和第三个条件得到。

第三种理解思路:

参考网上的资料,整理了一下从几何意义方面理解KKT条件。
- 以下二维决策变量情况的讨论参考自此
- 等式约束情况
考虑这个决策变量是二维平面内点(x,y)的优化问题:
max \ f(x,y)\\ s.\ t.\ g(x,y)=c

max f(x,y)s. t. g(x,y)=c

我们在二维平面内画出两个函数的图像。由于缺少第三维,我们使用等高线来表示目标函数 f(x,y) 的函数值。如下图:

图中画出了两条 f(x,y) 的等高线,蓝色箭头则是等高线上的梯度 f(x,y) 。从梯度的方向上来看,显然有 d1<d2 。绿色的线是约束,也就是说,只要正好落在这条绿线上的点才可能是满足要求的点。如果没有这条约束, f(x,y) 的最大值应该会落在最小那圈等高线内部的某一点上。而现在加上了约束,最大值点应该在哪里呢?显然应该是在 f(x,y) 的等高线正好和约束线相切的位置。如果我们对约束也求梯度 g(x,y) ,则其梯度如图中绿色箭头所示。很容易看出来,要想让目标函数f(x,y)的等高线和约束相切,则他们切点的梯度一定在一条直线上,即:
f(x,y)=υg(x,y)

其中 υ 可以是任何实数。
因此,我们通过观察可以得到优化取到最大值的条件:
{g(x,y)=cf(x,y)υg(x,y)=0

- 不等约束的情况
上面仅仅考虑了等式约束的情况。那么含有不等式的约束情况下, λ 乘子又有什么意义呢?
我们还是考虑一个和上面问题类似的问题:
maxf(x,y)s.t.g1(x,y)c,g2(x,y)d

我们同样在平面内画下这个问题的图像:

这个和之前的图不同之处在于:约束决定的可行区域由一条直线变成了一段带状区域。这个带状区域由两条边界 g1(x,y)=c g2(x,y)=d 来决定。
大家立刻可以从图中发现,这个问题的最优解和之前的等式约束情况下没有任何区别。也就是依然满足条件:
g1(x,y)=cf(x,y)υg1(x,y)=0υ0

- 以下三维决策变量情况的讨论参考自此
考虑以下问题模型:
minf(x1,x2,x3)s.t.c1(x1,x2,x3)=0(S1)c2(x1,x2,x3)=0(S2)

KKT条件--约束问题最优化方法_第1张图片
如上图, x 局部最优解,那么其必在S1与S2的交线D(及可行域)上,并且目标函数与约束函数的梯度 c1(x) c2(x) 共面。如果不共面,那么 f(x) 梯度向可行域D上的投影不为零。于是沿着这个投影移动,可使得目标函数下降,也就不是最优解。
根据共面的条件,我们可以推出:
f(x)=i=1lλici(x)

也就是三维空间的最优性条件。
三维决策变量的不等式约束情况和高维情况(共体)可以此类推。

你可能感兴趣的:(机器学习)