凸优化学习
本节探究 p ∗ = d ∗ p^*=d^* p∗=d∗时的不同角度理解。
学习笔记
一、几何理解
对于一个普通优化问题:
min
f
0
(
x
)
s.t.
f
1
(
x
)
≤
0
\begin{aligned} \min&& f_0(x)&\\ \qquad\text{s.t.}&&f_1(x)&\le0\\ \end{aligned}\\
mins.t.f0(x)f1(x)≤0
做如下定义:
G
=
{
(
f
1
(
x
)
,
f
0
(
x
)
∣
x
∈
D
}
G=\lbrace(f_1(x),f_0(x)\mid x\in D\rbrace
G={(f1(x),f0(x)∣x∈D}
可以推出:
p
∗
=
inf
{
t
∣
(
u
,
t
)
∈
G
,
u
≤
0
}
g
(
λ
)
=
inf
{
λ
⋅
u
+
t
∣
(
u
,
t
)
∈
G
}
p^*=\inf\lbrace t\mid(u,t)\in G,u\le0\rbrace\\ g(\lambda)=\inf\lbrace\lambda\cdot u+t\mid(u,t)\in G\rbrace\ \
p∗=inf{t∣(u,t)∈G,u≤0}g(λ)=inf{λ⋅u+t∣(u,t)∈G}
先上结论:
图1是弱对偶的情况。
图2和图3是强对偶的情况。
这个几何解释的思路有些绕,但是很巧妙,我会尽量用简单的语句解释。
首先,我们定义一个坐标轴,它的横轴是
u
u
u,也就是
f
1
(
x
)
f_1(x)
f1(x),纵轴是
t
t
t也就是
f
0
(
x
)
f_0(x)
f0(x)。那么
p
∗
=
inf
{
t
∣
(
u
,
t
)
∈
G
,
u
≤
0
}
p^*=\inf\lbrace t\mid(u,t)\in G,u\le0\rbrace
p∗=inf{t∣(u,t)∈G,u≤0}就很好理解了,即在
f
1
(
x
)
≤
0
f_1(x)\le0
f1(x)≤0的情况下求
f
0
(
x
)
f_0(x)
f0(x)的最小值,显然和原问题等价。同理,
g
(
λ
)
=
inf
{
λ
⋅
u
+
t
∣
(
u
,
t
)
∈
G
}
g(\lambda)=\inf\lbrace\lambda\cdot u+t\mid(u,t)\in G\rbrace
g(λ)=inf{λ⋅u+t∣(u,t)∈G}的定义也很好理解。
在这个
t
−
u
t-u
t−u坐标轴中,我们考虑
g
(
λ
)
g(\lambda)
g(λ)要求下确界的这么一条直线
l
:
λ
u
+
t
=
b
l:\lambda u+t=b
l:λu+t=b,其中很显然,
−
λ
-\lambda
−λ是
l
l
l的斜率,
b
b
b是截距。我们首先要最小化这个截距,但是
l
l
l是只能在
G
G
G里面动的,所以
b
b
b的下降,最终一定是切在
G
G
G上的(图1中由不可行到可行,讲课的时候老师绕了一下,本质上是一样的)。求出
g
(
λ
)
g(\lambda)
g(λ)后,我们就可以求
d
∗
d^*
d∗了,那么此时
max
g
(
λ
)
\max g(\lambda)
maxg(λ)是一个改变斜率的过程,改成同时切
G
G
G的两个点,得到的
b
b
b就是
d
∗
d^*
d∗。
由图1可以看到,
p
∗
≥
d
∗
p^*\ge d^*
p∗≥d∗。
二、鞍点理解
若存在先从
x
x
x方向求极小再向
y
y
y方向求极大得到的点与先从
y
y
y方向求极大再向
x
x
x方向求极小得到的点是同一个点,则称其为鞍点。
对于一个优化问题,通常有:
d
∗
=
sup
λ
≥
0
inf
x
∈
D
l
(
x
,
λ
)
p
∗
=
inf
x
∈
D
sup
λ
≥
0
l
(
x
,
λ
)
d^*=\sup_{\lambda\ge0}\inf_{x\in D}l(x,\lambda)\\ p^*=\inf_{x\in D}\sup_{\lambda\ge0}l(x,\lambda)
d∗=λ≥0supx∈Dinfl(x,λ)p∗=x∈Dinfλ≥0supl(x,λ)
d
∗
d^*
d∗很好理解,它的定义就是这样的,我们来看看
p
∗
p^*
p∗:
p
∗
=
inf
x
∈
D
sup
λ
≥
0
l
(
x
,
λ
)
=
inf
x
∈
D
sup
λ
≥
0
f
0
(
x
)
+
∑
i
=
1
n
λ
i
f
i
(
x
)
=
inf
x
∈
D
{
f
0
(
x
)
∀
i
f
i
(
x
)
≤
0
+
∞
∃
i
f
i
(
x
)
>
0
=
inf
x
∈
D
f
0
(
x
)
∀
i
f
i
(
x
)
≤
0
\begin{aligned} p^*&=\inf_{x\in D}\sup_{\lambda\ge0}l(x,\lambda)\\ &=\inf_{x\in D}\sup_{\lambda\ge0}f_0(x)+\sum_{i=1}^n\lambda_i f_i(x)\\ &=\inf_{x\in D}\begin{cases} f_0(x)&\forall i\ \ f_i(x)\le0\\ +\infty&\exist i\ \ f_i(x)>0 \end{cases}\\ &=\inf_{x\in D}f_0(x)\qquad\forall i\ \ f_i(x)\le0\\ \end{aligned}
p∗=x∈Dinfλ≥0supl(x,λ)=x∈Dinfλ≥0supf0(x)+i=1∑nλifi(x)=x∈Dinf{f0(x)+∞∀i fi(x)≤0∃i fi(x)>0=x∈Dinff0(x)∀i fi(x)≤0
显然和原问题等价。
我们来分析
p
∗
p^*
p∗和
d
∗
d^*
d∗。一般情况下,我们都有:
sup
λ
≥
0
inf
x
∈
D
l
(
x
,
λ
)
≤
inf
x
∈
D
sup
λ
≥
0
l
(
x
,
λ
)
\sup_{\lambda\ge0}\inf_{x\in D}l(x,\lambda)\le\inf_{x\in D}\sup_{\lambda\ge0}l(x,\lambda)
λ≥0supx∈Dinfl(x,λ)≤x∈Dinfλ≥0supl(x,λ)
这是一个鸡头和凤尾的比较,很好理解,故,在没有鞍点的情况下:
d
∗
≤
p
∗
d^*\le p^*
d∗≤p∗
但,若对于
l
l
l,其是个有鞍点的函数,那么此时
p
∗
=
d
∗
p^*=d^*
p∗=d∗。
此时拉格朗日函数可能会长成这样:
那么,我们称
(
x
∗
,
λ
∗
)
(x^*,\lambda^*)
(x∗,λ∗)为鞍点。
三、多目标优化角度理解
多目标优化:
min
{
f
0
(
x
)
,
⋯
f
m
(
x
)
}
\begin{aligned} \min&&\lbrace f_{0}(x),\cdots f_m(x)\rbrace&\\ \end{aligned}\\
min{f0(x),⋯fm(x)}
单目标优化:
min
f
0
(
x
)
s.t.
f
i
(
x
)
≤
0
i
=
1
,
⋯
,
m
\begin{aligned} \min&&f_{0}(x)\\ \text{s.t.}&& f_i(x)&\le0\qquad i=1,\cdots,m\\ \end{aligned}\\
mins.t.f0(x)fi(x)≤0i=1,⋯,m
在之前的学习中,我们学到多目标优化可以转换为:
min
∑
i
=
0
m
λ
i
f
i
(
x
)
\begin{aligned} \min&&\sum_{i=0}^m\lambda_if_{i}(x)&\\ \end{aligned}\\
mini=0∑mλifi(x)
我们取一个特殊的权:
min
f
0
(
x
)
+
∑
i
=
1
m
λ
i
f
i
(
x
)
\begin{aligned} \min&&f_0(x)+\sum_{i=1}^m\lambda_if_{i}(x)& \end{aligned}\\
minf0(x)+i=1∑mλifi(x)
这不就是单目标优化中的
g
g
g吗?即多目标优化等价于求单目标优化的
g
g
g。
当这个单目标优化问题是由多目标优化问题转化而来,记单目标优化问题为1,多目标优化问题为2,有:
p
2
∗
=
g
1
(
λ
)
\begin{aligned} p_2^*&=g_1(\lambda)\\ \end{aligned}
p2∗=g1(λ)
当单目标优化中
d
∗
=
p
∗
d^*=p^*
d∗=p∗时,可以认为单目标优化的最优解等价于多目标优化的一个最优解,因为单目标优化还要求一个
max
\max
max,而多目标优化只求到
min
\min
min。
四、经济学角度理解
设有一工厂,
x
x
x为生产商品的数量,
f
0
(
x
)
f_0(x)
f0(x)为工厂的损失,
f
i
(
x
)
f_i(x)
fi(x)为原材料的约束,有就为负。当原材料不可交易时:
min
f
0
(
x
)
(
P
)
s.t.
f
i
(
x
)
≤
0
i
=
1
⋯
m
\begin{aligned} \min&& f_0(x)&\\ (\text P)\qquad\text{s.t.}&&f_i(x)&\le0\qquad i=1\cdots m\\ \end{aligned}\\
min(P)s.t.f0(x)fi(x)≤0i=1⋯m
当原材料可交易时,
λ
i
≥
0
\lambda_i\ge0
λi≥0为交易价格:
max
g
(
λ
)
(
D
)
s.t.
λ
≥
0
\begin{aligned} \max&& g(\lambda)&\\ (\text D)\qquad\text{s.t.}&&\lambda\ \ge0&\\ \end{aligned}\\
max(D)s.t.g(λ)λ ≥0
一个是计划经济,一个是市场经济,从常识角度考虑,一般都有:
d
∗
≤
p
∗
d^*\le p^*
d∗≤p∗:表示当原材料可交易时,你的最大损失小于等于原材料不可交易时的最小损失。
d
∗
=
p
∗
d^*= p^*
d∗=p∗:表示原材料刚好用完或原材料价格为零。
个人思考
鞍点的角度给了我一个新的思考方式,在以后判断是否为强对偶时,我们可以通过分析拉格朗日函数是否为有鞍点的函数来达到这个目的。
纸质笔记