凸优化学习
本节探究p∗=d∗p^*=d^*p∗=d∗时的不同角度理解。
学习笔记
一、几何理解
对于一个普通优化问题:
minf0(x)s.t.f1(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={(f1(x),f0(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是强对偶的情况。
这个几何解释的思路有些绕,但是很巧妙,我会尽量用简单的语句解释。
首先,我们定义一个坐标轴,它的横轴是uuu,也就是f1(x)f_1(x)f1(x),纵轴是ttt也就是f0(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\rbracep∗=inf{t∣(u,t)∈G,u≤0}就很好理解了,即在f1(x)≤0f_1(x)\le0f1(x)≤0的情况下求f0(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\rbraceg(λ)=inf{λ⋅u+t∣(u,t)∈G}的定义也很好理解。
在这个t−ut-ut−u坐标轴中,我们考虑g(λ)g(\lambda)g(λ)要求下确界的这么一条直线l:λu+t=bl:\lambda u+t=bl:λu+t=b,其中很显然,−λ-\lambda−λ是lll的斜率,bbb是截距。我们首先要最小化这个截距,但是lll是只能在GGG里面动的,所以bbb的下降,最终一定是切在GGG上的(图1中由不可行到可行,讲课的时候老师绕了一下,本质上是一样的)。求出g(λ)g(\lambda)g(λ)后,我们就可以求d∗d^*d∗了,那么此时maxg(λ)\max g(\lambda)maxg(λ)是一个改变斜率的过程,改成同时切GGG的两个点,得到的bbb就是d∗d^*d∗。
由图1可以看到,p∗≥d∗p^*\ge d^*p∗≥d∗。
二、鞍点理解
若存在先从xxx方向求极小再向yyy方向求极大得到的点与先从yyy方向求极大再向xxx方向求极小得到的点是同一个点,则称其为鞍点。
对于一个优化问题,通常有:
d∗=supλ≥0infx∈Dl(x,λ)p∗=infx∈Dsupλ≥0l(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∗=infx∈Dsupλ≥0l(x,λ)=infx∈Dsupλ≥0f0(x)+∑i=1nλifi(x)=infx∈D{f0(x)∀i fi(x)≤0+∞∃i fi(x)>0=infx∈Df0(x)∀i fi(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λ≥0infx∈Dl(x,λ)≤infx∈Dsupλ≥0l(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∗
但,若对于lll,其是个有鞍点的函数,那么此时p∗=d∗p^*=d^*p∗=d∗。
此时拉格朗日函数可能会长成这样:
那么,我们称(x∗,λ∗)(x^*,\lambda^*)(x∗,λ∗)为鞍点。
三、多目标优化角度理解
多目标优化:
min{f0(x),⋯fm(x)}
\begin{aligned}
\min&&\lbrace f_{0}(x),\cdots f_m(x)\rbrace&\\
\end{aligned}\\
min{f0(x),⋯fm(x)}
单目标优化:
minf0(x)s.t.fi(x)≤0i=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=0mλifi(x)
\begin{aligned}
\min&&\sum_{i=0}^m\lambda_if_{i}(x)&\\
\end{aligned}\\
mini=0∑mλifi(x)
我们取一个特殊的权:
minf0(x)+∑i=1mλifi(x)
\begin{aligned}
\min&&f_0(x)+\sum_{i=1}^m\lambda_if_{i}(x)&
\end{aligned}\\
minf0(x)+i=1∑mλifi(x)
这不就是单目标优化中的ggg吗?即多目标优化等价于求单目标优化的ggg。
当这个单目标优化问题是由多目标优化问题转化而来,记单目标优化问题为1,多目标优化问题为2,有:
p2∗=g1(λ)
\begin{aligned}
p_2^*&=g_1(\lambda)\\
\end{aligned}
p2∗=g1(λ)
当单目标优化中d∗=p∗d^*=p^*d∗=p∗时,可以认为单目标优化的最优解等价于多目标优化的一个最优解,因为单目标优化还要求一个max\maxmax,而多目标优化只求到min\minmin。
四、经济学角度理解
设有一工厂,xxx为生产商品的数量,f0(x)f_0(x)f0(x)为工厂的损失,fi(x)f_i(x)fi(x)为原材料的约束,有就为负。当原材料不可交易时:
minf0(x)(P)s.t.fi(x)≤0i=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为交易价格:
maxg(λ)(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∗:表示原材料刚好用完或原材料价格为零。
个人思考
鞍点的角度给了我一个新的思考方式,在以后判断是否为强对偶时,我们可以通过分析拉格朗日函数是否为有鞍点的函数来达到这个目的。
纸质笔记