KKT&Dual

KKT

问题引入

我们考虑一个最优化问题:

(P)minf(x)s.t. gi(x)0,i=1,2,,mhi(x)=0,i=1,2,,p

假设问题拥有三个不等式约束和一个等式约束,在x处应该会满足如下图的条件:

img

即在x处,f(x)的负梯度方向(正交于约束曲面,因为不正交就可以沿着方向移动)可以表示为部分约束的梯度方向的线性组合,即

f(x)=λ1g1(x)λ2g2(x)

其中λ1,λ20

那么为了上述等式更加规范化,我们将g3(x)也加入到约束中,即

f(x)=λ1g1(x)λ2g2(x)λ3g3(x)λ1,λ20, λ3=0

可以将约束条件写为

λigi(x)=0,i=1,2,3

直观地想,这是一个必要条件,因为很多地方都能满足这个条件,但是不一定是最优解。

那么如何将这样一个想法转化为一个标准的条件,这就是 KKT 条件的作用。

KKT 条件简述

KKT 条件:对于一个最优化问题,如果x是一个局部最优解,且在x处满足某一种 constraint qualification,那么最优解满足以下条件:

f(x)+i=1mλigi(x)+i=1pμihi(x)=0λi0,i=1,2,,mgi(x)0,i=1,2,,mhi(x)=0,i=1,2,,pλigi(x)=0,i=1,2,,m

我们称满足条件的λi,μi拉格朗日乘子

其中,第(1)(2)个条件称作Dual Feasibility,第(3)(4)个条件称作Primal Feasibility,第(5)个条件称作Complementary Slackness

可以想象,gi(x)<0对最优解的梯度方向不起作用。

其实可以指出,KKT 条件是一个必要条件,而不是充分条件。

KKT 条件的推导

证明 KKT 条件涉及三个集合、一个 constraint qualification 和 Farkas 引理,理论性较强,这里不做详细推导。

Dual Problem

我们依旧考虑上面提及的 Primal Problem

(P)minf(x)s.t. gi(x)0,i=1,2,,mhi(x)=0,i=1,2,,p

可行集合为

S={xRn|gi(x)0,hi(x)=0}

为什么我们需要从 Primal Problem 转化为 Dual Problem 呢?因为

  1. 如果 P 问题非凸,求解原问题是一个 NP-hard 问题,而 Dual Problem 可能是一个凸优化问题
  2. 当 P 问题是一个凸优化问题时,Dual Problem 可以帮助我们理解问题的几何性质
  3. Dual Problem 可以帮助我们理解问题的最优解

拉格朗日对偶函数

我们定义拉格朗日函数

L(x,λ,μ)=f(x)+i=1mλigi(x)+i=1pμihi(x),xX,λ0

拉格朗日对偶函数定义为

dual(λ,μ)=infxXL(x,λ,μ)λi0

我们可以得到如下不等式:

dual(λ,μ)=infxXL(x,λ,μ)λi0infxSL(x,λ,μ)λi0infxSf(x)

如果我们 denote 原问题最优值为p记为v(p),那么我们可以得到如下结论:

λ0,μ,dual(λ,μ)p

即对偶函数是原问题最优值的下界。

拉格朗日对偶问题(求一个最大下界)

我们定义拉格朗日对偶问题为

(D)maxdual(λ,μ)s.t. λi0,i=1,2,,m

如果我们将对偶函数写开,则对偶问题可以写为

(D)maxλ,μminxXL(x,λ,μ)s.t. λi0,i=1,2,,m

如果我们考虑将最小值和最大值交换,那么可以得到如下问题

minxXmaxλ,μL(x,λ,μ)s.t. λi0,i=1,2,,m

对于这个优化问题

  1. 如果i,gi(x)>0,那么最大值为无穷大
  2. 如果i,hi(x)0,那么最大值为无穷大
  3. 如果i,gi(x)0,hi(x)=0,那么最大值为f(x),则此时可以等价为 Primal Problem

因此,这个问题,值希望有界的话,实际上与 Primal Problem 等价,即

minxXmaxλ0,μL(x,λ,μ)min{minxSf(x),}minxSf(x)

弱对偶定理

在前面我们已经得到了d(λ,μ)v(P)的结论,对于任意的λ0,μ

那么对于对偶问题,我们如果我们 denote 对偶问题最优值为d=v(D),那么我们可以得到如下结论:

λi0,d(λ,μ)v(D)v(P)f(x)

可以形象理解为鸡头和凤尾的关系。

Dual Gap

我们定义对偶问题和原问题的差距为 Dual Gap,即

Dual Gap=v(P)v(D)

可以映射到几何空间中

强对偶定理

一个凸优化问题可以被涉及成不满足强对偶问题的情况,因此在凸优化问题外,还要满足一个条件。

假设(充分条件):

  1. (凸优化)X 是非空凸集,f,gi 是凸函数,hi是仿射函数。(原问题是凸优化问题)
  2. (Slater Condition)x^X,s.t.gi(x^)<0,hi(x^)=0(有一个严格可行点),同时 0 是一个h(x)的内点。(这个条件最常用的是 Slater Condition)
    • Slater Condition:x^relintD,s.t.gi(x^)<0,hi(x^)=0

那么我们可以得到如下结论:

v(P)=v(D)minf(x)=maxd(λ,μ)

证明略...

于是,对于强对偶问题,我们只需要分别对函数中的λ,μ和原问题中的x进行偏导=0 即可。

对偶问题的性质

对偶函数是一个凹函数

dual(λ,μ)=minxXL(x,λ,μ)λi0

其中若将x看作一个参数,那么L(x,λ,μ)是一个关于λ,μ的仿射函数,因此对偶函数是一个凹函数。

所以maxconcaveminconvex对偶问题一定是一个凸优化问题

KKT 条件与对偶问题

一个凸优化问题,只要是强对偶的,一定满足 KKT 条件(必要条件)。因此,我们可以通过求解对偶问题来求解原问题。

对偶问题的求解方法就是先构建拉格朗日函数,然后先对x求梯度,然后对λ,μ求最大值。

对于凸优化

  1. 如果x满足 KKT 条件,那么x是原问题的最优解,且对偶问题的最优解是 KKT 条件中的乘子。

  2. 如果 Slater Condition 满足,那么原问题的最优解的 KKT 点乘子与对偶问题的最优解相等。

posted @   Blackteaxx  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示