赞
踩
上一小节讲了拉格朗日函数,可以把原始问题转化为对偶问题,并且对偶问题是凸的。我们还得到了弱对偶性和强对偶性的概念,并且提到了 Slater Condition 保证凸问题的强对偶性成立,并且给出了一些几何的直观解释。那么在这一节,我们将引出著名的 KKT 条件,它给出了最优解需要满足的必要条件,是求解优化问题最优解的一个重要方式。
有需要的话可以参考前面两节内容
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
我们首先回顾一下拉格朗日函数,考虑下面的优化问题
minimize
f
0
(
x
)
subject to
f
i
(
x
)
≤
0
,
i
=
1
,
…
,
m
h
i
(
x
)
=
0
,
i
=
1
,
…
,
p
那么他的拉格朗日函数就是
L
(
x
,
λ
,
ν
)
=
f
0
(
x
)
+
λ
T
f
(
x
)
+
ν
T
h
(
x
)
L(x,\lambda,\nu)=f_0(x)+\lambda^Tf(x)+\nu^Th(x)
L(x,λ,ν)=f0(x)+λTf(x)+νTh(x)
首先,我们看对偶函数
g
(
λ
,
ν
)
=
inf
x
∈
D
(
f
0
(
x
)
+
λ
T
f
(
x
)
+
ν
T
h
(
x
)
)
g(\lambda,\nu)=\inf_{x\in\mathcal{D}}\left(f_0(x)+\lambda^Tf(x)+\nu^Th(x)\right)
g(λ,ν)=x∈Dinf(f0(x)+λTf(x)+νTh(x))
对偶问题实际上就是
d
⋆
=
sup
λ
,
ν
g
(
λ
,
ν
)
=
sup
λ
,
ν
inf
x
L
(
x
,
λ
,
ν
)
d^\star = \sup_{\lambda,\nu}g(\lambda,\nu)=\sup_{\lambda,\nu}\inf_x L(x,\lambda,\nu)
d⋆=λ,νsupg(λ,ν)=λ,νsupxinfL(x,λ,ν)
然后我们再看原问题,由于
λ
⪰
0
,
f
(
x
)
⪯
0
\lambda\succeq0,f(x)\preceq0
λ⪰0,f(x)⪯0,我们有
f
0
(
x
)
=
sup
λ
,
ν
L
(
x
,
λ
,
ν
)
f_0(x)=\sup_{\lambda,\nu}L(x,\lambda,\nu)
f0(x)=λ,νsupL(x,λ,ν)
原问题的最优解实际上就是
p
⋆
=
inf
x
f
0
(
x
)
=
inf
x
sup
λ
,
ν
L
(
x
,
λ
,
ν
)
p^\star=\inf_x f_0(x)= \inf_x \sup_{\lambda,\nu}L(x,\lambda,\nu)
p⋆=xinff0(x)=xinfλ,νsupL(x,λ,ν)
弱对偶性
p
⋆
≥
d
⋆
p^\star \ge d^\star
p⋆≥d⋆ 实际上说的是什么呢?就是 max-min 不等式
inf
x
sup
λ
,
ν
L
(
x
,
λ
,
ν
)
≥
sup
λ
,
ν
inf
x
L
(
x
,
λ
,
ν
)
\inf_x \sup_{\lambda,\nu}L(x,\lambda,\nu) \ge \sup_{\lambda,\nu}\inf_x L(x,\lambda,\nu)
xinfλ,νsupL(x,λ,ν)≥λ,νsupxinfL(x,λ,ν)
强对偶性说的又是什么呢?就是上面能够取等号
inf
x
sup
λ
,
ν
L
(
x
,
λ
,
ν
)
=
sup
λ
,
ν
inf
x
L
(
x
,
λ
,
ν
)
=
L
(
x
⋆
,
λ
⋆
,
ν
⋆
)
\inf_x \sup_{\lambda,\nu}L(x,\lambda,\nu) = \sup_{\lambda,\nu}\inf_x L(x,\lambda,\nu) = L({x}^\star,{\lambda}^\star,{\nu}^\star)
xinfλ,νsupL(x,λ,ν)=λ,νsupxinfL(x,λ,ν)=L(x⋆,λ⋆,ν⋆)
实际上
x
⋆
,
λ
⋆
,
ν
⋆
{x}^\star,{\lambda}^\star,{\nu}^\star
x⋆,λ⋆,ν⋆ 就是拉格朗日函数的鞍点!!!(数学家们真实太聪明了!!!妙啊!!!)那么也就是说强对偶性成立等价于拉格朗日函数存在鞍点(在定义域内)。
好,如果存在鞍点的话,我们怎么求解呢?还是看上面取等的式子
f
0
(
x
⋆
)
=
g
(
λ
⋆
,
ν
⋆
)
=
inf
x
(
f
0
(
x
)
+
λ
⋆
T
f
(
x
)
+
ν
⋆
T
h
(
x
)
)
≤
f
0
(
x
⋆
)
+
λ
⋆
T
f
(
x
⋆
)
+
ν
⋆
T
h
(
x
⋆
)
≤
f
0
(
x
⋆
)
这两个不等号必须要取到等号,而第一个不等号取等条件应为
∇
x
(
f
0
(
x
)
+
λ
⋆
T
f
(
x
)
+
ν
⋆
T
h
(
x
)
)
=
0
\nabla_x \left( f_0(x)+\lambda^{\star T}f(x)+\nu^{\star T}h(x) \right) =0
∇x(f0(x)+λ⋆Tf(x)+ν⋆Th(x))=0
第二个不等号取等条件为
λ
i
⋆
f
i
(
x
⋆
)
=
0
,
∀
i
\lambda^\star_i f_i(x^\star)=0,\forall i
λi⋆fi(x⋆)=0,∀i
同时,由于 x ⋆ , λ ⋆ , ν ⋆ {x}^\star,{\lambda}^\star,{\nu}^\star x⋆,λ⋆,ν⋆ 还必须位于定义域内,需要满足约束条件,因此上面的几个条件共同构成了 KKT 条件。
KKT 条件
- 原始约束 f i ( x ) ≤ 0 , i = 1 , . . . , m , h i ( x ) = 0 , i = 1 , . . . , p f_i(x)\le0,i=1,...,m, \quad h_i(x)=0,i=1,...,p fi(x)≤0,i=1,...,m,hi(x)=0,i=1,...,p
- 对偶约束 λ ⪰ 0 \lambda\succeq0 λ⪰0
- 互补性条件(complementary slackness) λ i f i ( x ) = 0 , i = 1 , . . . , m \lambda_i f_i(x)=0,i=1,...,m λifi(x)=0,i=1,...,m
- 梯度条件
∇ f 0 ( x ) + ∑ i = 1 m λ i ∇ f i ( x ) + ∑ i = 1 p ν i ∇ h i ( x ) = 0 \nabla f_{0}(x)+\sum_{i=1}^{m} \lambda_{i} \nabla f_{i}(x)+\sum_{i=1}^{p} \nu_{i} \nabla h_{i}(x)=0 ∇f0(x)+i=1∑mλi∇fi(x)+i=1∑pνi∇hi(x)=0
Remarks(重要结论)
- 前面推导没有任何凸函数的假设,因此不论是否为凸问题,如果满足强对偶性,那么最优解一定满足 KKT 条件。
- 但是反过来不一定成立,也即 KKT 条件的解不一定是最优解,因为如果 L ( x , λ ⋆ , ν ⋆ ) L(x,\lambda^\star,\nu^\star) L(x,λ⋆,ν⋆) 不是凸的,那么 ∇ x L = 0 \nabla_x L=0 ∇xL=0 并不能保证 g ( λ ⋆ , ν ⋆ ) = inf x L ( x , λ ⋆ , ν ⋆ ) ≠ L ( x ⋆ , λ ⋆ , ν ⋆ ) g(\lambda^\star,\nu^\star)=\inf_x L(x,\lambda^\star,\nu^\star)\ne L(x^\star,\lambda^\star,\nu^\star) g(λ⋆,ν⋆)=infxL(x,λ⋆,ν⋆)=L(x⋆,λ⋆,ν⋆),也即不能保证 x ⋆ , λ ⋆ , ν ⋆ {x}^\star,{\lambda}^\star,{\nu}^\star x⋆,λ⋆,ν⋆ 就是鞍点。
但是如果我们假设原问题为凸问题的话,那么 L ( x , λ ⋆ , ν ⋆ ) L(x,\lambda^\star,\nu^\star) L(x,λ⋆,ν⋆) 就是一个凸函数,由梯度条件 ∇ x L = 0 \nabla_x L=0 ∇xL=0 我们就能得到 g ( λ ⋆ , ν ⋆ ) = L ( x ⋆ , λ ⋆ , ν ⋆ ) = inf x L ( x , λ ⋆ , ν ⋆ ) g(\lambda^\star,\nu^\star)=L(x^\star,\lambda^\star,\nu^\star)=\inf_x L(x,\lambda^\star,\nu^\star) g(λ⋆,ν⋆)=L(x⋆,λ⋆,ν⋆)=infxL(x,λ⋆,ν⋆),另一方面根据互补性条件我们有此时 f 0 ( x ⋆ ) = L ( x ⋆ , λ ⋆ , ν ⋆ ) f_0(x^\star)=L(x^\star,\lambda^\star,\nu^\star) f0(x⋆)=L(x⋆,λ⋆,ν⋆),因此我们可以得到一个结论
Remarks(重要结论):
- 考虑原问题为凸的,那么若 KKT 条件有解 x ~ , λ ~ , ν ~ \tilde{x},\tilde{\lambda},\tilde{\nu} x~,λ~,ν~,则原问题一定满足强对偶性,且他们就对应原问题和对偶问题的最优解。
- 但是需要注意的是,KKT 条件可能无解!此时就意味着原问题不满足强对偶性!
假如我们考虑上一节提到的 SCQ 条件,如果凸优化问题满足 SCQ 条件,则意味着强对偶性成立,则此时有结论
Remarks(重要结论):
如果 SCQ 满足,那么 x x x 为最优解当且仅当存在 λ , ν \lambda,\nu λ,ν 满足 KKT 条件!
例子 1:等式约束的二次优化问题
P
∈
S
+
n
P\in S_+^n
P∈S+n
minimize
(
1
/
2
)
x
T
P
x
+
q
T
x
+
r
subject to
A
x
=
b
那么经过简单计算就可以得到 KKT 条件为
[
P
A
T
A
0
]
[
x
⋆
ν
⋆
]
=
[
−
q
b
]
\left[
例子 2:注水问题
minimize
−
∑
i
=
1
n
log
(
α
i
+
x
i
)
subject to
x
⪰
0
,
1
T
x
=
1
根据上面的结论,
x
x
x 是最优解当且仅当
x
⪰
0
,
1
T
x
=
1
x\succeq0,\mathbf{1}^{T} x=1
x⪰0,1Tx=1,且存在
λ
,
ν
\lambda,\nu
λ,ν 满足
λ
⪰
0
,
λ
i
x
i
=
0
,
1
x
i
+
α
i
+
λ
i
=
ν
\lambda \succeq 0, \quad \lambda_{i} x_{i}=0, \quad \frac{1}{x_{i}+\alpha_{i}}+\lambda_{i}=\nu
λ⪰0,λixi=0,xi+αi1+λi=ν
根据互补性条件 λ i x i = 0 \lambda_i x_i=0 λixi=0 分情况讨论可以得到
整理就可以得到 1 T x = ∑ i max { 0 , 1 / ν − α i } \mathbf{1}^{T} x=\sum_i\max\{0,1/\nu-\alpha_i\} 1Tx=∑imax{0,1/ν−αi},这个式子怎么理解呢?就像向一个池子里注水一样
现在我们再回到原始问题
minimize
f
0
(
x
)
subject to
f
i
(
x
)
≤
0
,
i
=
1
,
…
,
m
h
i
(
x
)
=
0
,
i
=
1
,
…
,
p
我们引入了对偶函数
g
(
λ
,
ν
)
g(\lambda,\nu)
g(λ,ν),那这两个参数
λ
,
ν
\lambda,\nu
λ,ν 有什么含义吗?假如我们把原问题放松一下
minimize
f
0
(
x
)
subject to
f
i
(
x
)
≤
u
i
,
i
=
1
,
…
,
m
h
i
(
x
)
=
v
i
,
i
=
1
,
…
,
p
记最优解为
p
⋆
(
u
,
v
)
=
min
f
0
(
x
)
p^\star(u,v)=\min f_0(x)
p⋆(u,v)=minf0(x),现在对偶问题变成了
max
g
(
λ
,
ν
)
−
u
T
λ
−
v
T
ν
s.t.
λ
⪰
0
假如说原始对偶问题的最优解为
λ
⋆
,
ν
⋆
\lambda^\star,\nu^\star
λ⋆,ν⋆,松弛后的对偶问题最优解为
λ
~
,
ν
~
\tilde{\lambda},\tilde{\nu}
λ~,ν~,那么根据弱对偶性原理,有
p
⋆
(
u
,
v
)
≥
g
(
λ
~
,
ν
~
)
−
u
T
λ
~
−
v
T
ν
~
≥
g
(
λ
⋆
,
ν
⋆
)
−
u
T
λ
⋆
−
v
T
ν
⋆
=
p
⋆
(
0
,
0
)
−
u
T
λ
⋆
−
v
T
ν
⋆
这像不像关于
u
,
v
u,v
u,v 的一阶近似?太像了!实际上,我们有
λ
i
⋆
=
−
∂
p
⋆
(
0
,
0
)
∂
u
i
,
ν
i
⋆
=
−
∂
p
⋆
(
0
,
0
)
∂
v
i
\lambda_{i}^{\star}=-\frac{\partial p^{\star}(0,0)}{\partial u_{i}}, \quad \nu_{i}^{\star}=-\frac{\partial p^{\star}(0,0)}{\partial v_{i}}
λi⋆=−∂ui∂p⋆(0,0),νi⋆=−∂vi∂p⋆(0,0)
前面将凸优化问题的时候,我们提到了Reformulation的几个方法来简化原始问题(参考凸优化学习笔记 10:凸优化问题),比如消去等式约束,添加等式约束,添加松弛变量,epigraph等等。现在当我们学习了对偶问题,再来重新看一下这些方法。
例子 1:考虑无约束优化问题
min
f
(
A
x
+
b
)
\min f(Ax+b)
minf(Ax+b),他的对偶问题跟原问题是一样的。如果我们引入等式约束,原问题和对偶问题变为
minimize
f
0
(
y
)
subject to
A
x
+
b
−
y
=
0
minimize
b
T
ν
−
f
0
∗
(
ν
)
subject to
A
T
ν
=
0
例子 2:考虑无约束优化
min
∥
A
x
−
b
∥
\min \Vert Ax-b\Vert
min∥Ax−b∥,类似的引入等式约束后,对偶问题变为
minimize
b
T
ν
subject to
A
T
ν
=
0
,
∥
ν
∥
∗
≤
1
例子 3:考虑原问题如下,可以看出来对偶问题非常复杂
minimize
c
T
x
subject to
A
x
=
b
−
1
⪯
x
⪯
1
maximize
−
b
T
ν
−
1
T
λ
1
−
1
T
λ
2
subject to
c
+
A
T
ν
+
λ
1
−
λ
2
=
0
λ
1
⪰
0
,
λ
2
⪰
0
如果我们原问题的不等式约束条件转化为隐式约束,则有
minimize
f
0
(
x
)
=
{
c
T
x
∥
x
∥
∞
⪯
1
∞
otherwise
subject to
A
x
=
b
然后对偶问题就可以转化为无约束优化问题
maximize
−
b
T
ν
−
∥
A
T
ν
+
c
∥
1
\text{maximize} -b^T\nu-\Vert A^T\nu +c\Vert_1
maximize−bTν−∥ATν+c∥1
例子 4:还考虑上面提到的无约束优化问题
min
∥
A
x
−
b
∥
\min \Vert Ax-b\Vert
min∥Ax−b∥,我们可以把目标函数平方一下,得到
minimize
(
1
/
2
)
∥
y
∥
2
subject to
A
x
−
b
=
y
然后对偶问题就可以转化为
minimize
(
1
/
2
)
∥
ν
∥
∗
2
+
b
T
ν
subject to
A
T
ν
=
0
最后给我的博客打个广告,欢迎光临
https://glooow1024.github.io/
https://glooow.gitee.io/
前面的一些博客链接如下
凸优化专栏
凸优化学习笔记 1:Convex Sets
凸优化学习笔记 2:超平面分离定理
凸优化学习笔记 3:广义不等式
凸优化学习笔记 4:Convex Function
凸优化学习笔记 5:保凸变换
凸优化学习笔记 6:共轭函数
凸优化学习笔记 7:拟凸函数 Quasiconvex Function
凸优化学习笔记 8:对数凸函数
凸优化学习笔记 9:广义凸函数
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。