优化问题基础
前言
本文主要研究的优化问题的基础,提出各类常见的优化问题
一、优化问题的概念
- 稀疏结构:某个问题中每个约束函数仅取决于为数不多的几个变量,称问题是一个稀疏问题
- 光滑的目标函数/约束式:多项式
- R n R^n Rn是n维向量空间,每个元素都能表示成 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn)的形式并且一定是一个列向量的形式,也叫n元向量
二、最小二乘问题
1.概述
是一类没有约束条件(m=0),目标函数是若干项的平方和,每一项的形式都是
a
i
T
x
−
b
i
a_i^Tx-b_i
aiTx−bi,具体形式:
m
i
n
i
m
i
z
e
f
0
(
x
)
=
∣
∣
A
x
−
b
∣
∣
2
2
=
∑
i
=
1
k
(
a
i
T
x
−
b
i
)
2
minimize\quad f_0(x)=||Ax-b||^2_2=\sum_{i=1}^k(a_i^Tx-b_i)^2
minimizef0(x)=∣∣Ax−b∣∣22=i=1∑k(aiTx−bi)2
其中
A
∈
R
k
∗
n
(
k
≥
n
)
A\in R^{k*n}(k\geq n)
A∈Rk∗n(k≥n),
a
i
T
a_i^T
aiT是矩阵A的行向量,向量
x
∈
R
n
x\in R^n
x∈Rn是优化变量
令原式等于0,即
A
x
=
b
Ax=b
Ax=b,左边同时左乘一个A的转置即
A
T
A
x
=
A
T
b
A^TAx=A^Tb
ATAx=ATb,得到解析解:
x
∗
=
(
A
T
A
)
−
1
A
T
b
x^*=(A^TA)^{-1}A^Tb
x∗=(ATA)−1ATb,求解时间与
n
2
k
n^2k
n2k成正比,如果矩阵是稀疏的,即矩阵的元素远远小于
n
∗
k
n*k
n∗k,则可以加速收敛
2.使用场景
只需要判断目标函数是否是一个二次函数,接下来检验这个二次函数是否为半正定
3.正则化
通过在成本函数中增加一些多余的项来实现,比如增加一项和变量平方成正比的项
∑
i
=
1
k
(
a
i
T
x
−
b
i
)
2
+
ρ
∑
i
=
1
n
x
i
2
\sum_{i=1}^k(a_i^Tx-b_i)^2+\rho\sum_{i=1}^nx_i^2
i=1∑k(aiTx−bi)2+ρi=1∑nxi2
当x的值比较大的时候,增加的项对其施加一个惩罚,得到的解比仅优化第一项时更加合理
三、线性规划
1.定义式
m
i
n
i
m
i
z
e
c
T
x
s
u
b
j
e
c
t
t
o
a
i
T
x
≤
b
i
minimize \ c^Tx\\ subject \ to \ a_i^Tx \leq b_i
minimize cTxsubject to aiTx≤bi
其中
c
,
a
1
,
.
.
.
,
a
m
∈
R
n
c,a_1,...,a_m\in R^n
c,a1,...,am∈Rn,
b
1
,
.
.
.
,
b
m
∈
R
b_1,...,b_m\in R
b1,...,bm∈R
2.使用场景
在很多实际问题中,原始的优化问题并不是线性规划的标准形式,需要用一些技巧转化为一个等价的线性规划问题,然后进行求解,比如切比雪夫逼近问题:
min
max
i
=
1
,
.
.
,
k
∣
a
i
T
x
−
b
i
∣
\min \max_{i=1,..,k}|a_i^Tx-b_i|
mini=1,..,kmax∣aiTx−bi∣
这个式子与最小二乘法中十分相似,只是这个式子的目标函数是
a
i
T
x
−
b
i
a_i^Tx-b_i
aiTx−bi最大一项,而最小二乘问题则是平方和,并且切比雪夫逼近场景中的这个目标函数是不可微的,故我们可以将问题转化为:
min
t
s
u
b
j
e
c
t
t
o
a
i
T
x
−
t
≤
b
i
−
a
i
T
x
−
t
≤
−
b
i
\min t\\ subject \ to \ \ \ a_i^Tx-t\leq b_i \\ \quad \quad \quad \quad \quad -a_i^Tx-t \leq -b_i
mintsubject to aiTx−t≤bi−aiTx−t≤−bi
四、凸优化
1.定义式
m
i
n
i
m
i
z
e
f
0
(
x
)
s
u
b
j
e
c
t
t
o
f
i
(
x
)
≤
b
i
minimize \ f_0(x)\\ subject \ to \ f_i(x) \leq b_i
minimize f0(x)subject to fi(x)≤bi
其中函数
f
0
,
f
1
,
.
.
.
,
f
m
f_0,f_1,...,f_m
f0,f1,...,fm为凸函数,并对于任意
x
,
y
∈
R
n
,
α
,
β
∈
R
,
α
+
β
=
1
,
α
,
β
≥
0
x,y\in R^n,\alpha,\beta \in R,\alpha+\beta=1,\alpha,\beta \geq 0
x,y∈Rn,α,β∈R,α+β=1,α,β≥0,满足
f
i
(
α
x
+
β
y
)
≤
α
f
i
(
x
)
+
β
f
i
(
y
)
f_i(\alpha x+\beta y)\leq \alpha f_i(x)+\beta f_i(y)
fi(αx+βy)≤αfi(x)+βfi(y)
很明显最小二乘和线性规划都是凸优化的特殊形式
五、非线性优化
1.定义
目标函数或者约束函数都是非线性函数,且不一定为凸函数,求解这类问题十分困难,需要通过放宽某些指标条件下,用不同的途径进行求解
2.局部优化
- 放宽对最优性的要求,不搜寻使目标函数值最小的最优可行解,而是寻找在邻域内的所有可行解里使目标函数最小的那个解,但不保证优于不在此邻域内的其他可行解。唯一的要求:目标函数与约束函数可微
- 在局部优化中,如何确定初始解十分的重要,对最后得到的局部最优解有很大的影响,并且一般对选取的参数值也很敏感,需要通过具体问题进行调整。
- 局部优化与凸优化不同,局部优化中的技巧体现在如何求解问题中(寻找一个局部最优点的意义上),而凸优化则是技巧和难点都体现在描述问题的环节,也就是数学建模的过程,如果一旦建模完成,凸优化的求解将会十分简单
3.全局优化
- 求解时间很长,复杂度很高,但是结果是最优解
- 对于变量个数较少的小规模问题,可以采用全局最优,比如最坏情况分析,不确定的参数是问题的变量,但是参数的取值的先验知识作为了约束条件
4.非凸问题中的凸优化的应用
- 局部优化中利用凸优化进行初始解的选取:凸优化在非凸问题中的一个重要应用就是将凸优化和局部优化结合起来,对于一个非凸问题,首先需要将其近似表示为凸优化的问题,这是因为凸优化的问题不需要初始解,求解简单,一般是采用凸优化的精确解作为非凸问题的初始值,求解原非凸问题。
2.非凸优化的凸启发式算法:非凸问题中的启发性算法很多是基于凸优化,比如搜寻一定约束条件的稀疏向量,随机算法产生服从某些概率分布的一些候选解,从这些候选解中选择最优的一个解作为非凸问题的近似解,产生概率的函数可以采用方差和均值表征,概率分布找期望方差是一个凸问题 - 全局优化的界限:对于非凸问题的全局优化,需要给出最优解的下界,求解下界的两个算法:松弛算法:每个非凸约束都用一个松弛的凸约束代替。Lagrange松弛:求解对偶问题。