0. 参考文献
【1】convex optimization
【2】中科大凌青视频
1. 凸集
1.1 仿射集,凸集,凸锥
集 | 组合 | 包 |
---|---|---|
仿射集 | 仿射组合 | 仿射包 |
凸集 | 凸组合 | 凸包 |
凸锥 | 凸锥组合 | 凸锥包 |
1.2 常见的凸集
1.3 保持凸性的操作
求交集
仿射
透视
齐次变换
2. 凸函数
2.1 四个定义方式
(1)基本的定义
(2)切西瓜定义
(3)一阶条件定义
(4)二阶条件定义:海塞矩阵半正定
2.2 常用凸函数
仿射函数
极大值函数
极小极大函数
由极大值函数引出的——log sum up 函数
证明是凸的:柯西-舒娃子不等式
几何平均函数
行列式的对数函数
对称正定矩阵的行列式一定大于0.
一旦矩阵问题想不清楚,就考虑一下特例,就是1行1列的情况
然后在考虑一般情况:
这里求二阶导数比较困难,所以用二阶条件不合适。考虑用第二个切西瓜定义
2.3 保持函数凸性的操作
2.3.1 非负加权和
考虑m个凸函数,求他们的加权和也是凸函数
拓展: 联合凸
2.3.2 仿射映射
先仿射,再f函数:
g
(
x
)
=
f
(
A
x
+
b
)
g(x)=f(Ax+b)
g(x)=f(Ax+b)
证明:。。。
先f函数,再仿射:
g
(
x
)
=
A
T
[
f
1
(
x
)
.
.
.
f
m
(
x
)
]
+
b
g(x)=A^T[f_1(x) ...f_m(x)]+b
g(x)=AT[f1(x)...fm(x)]+b
这里可以看成一个加权和,如果权重是负则无法保证凸性
2.3.3 两个函数的极大值函数
f
(
x
)
=
m
a
x
(
f
1
(
x
)
,
f
2
(
x
)
)
f(x)=max(f_1(x),f_2(x))
f(x)=max(f1(x),f2(x))
结论:是凸的
证明:。。。
2.3.4 向量中r个最大元素的和
2.3.5 实对称阵的最大特征值
2.3.6 函数的组合
先考虑一维的情况,且定义域为实空间,且二阶可微:
f
(
x
)
=
h
(
g
(
x
)
)
f(x)=h(g(x))
f(x)=h(g(x))
直接去求二阶偏导,先看一阶偏导
f
′
(
x
)
=
h
′
(
g
(
x
)
)
g
′
(
x
)
f'(x)=h'(g(x))g'(x)
f′(x)=h′(g(x))g′(x)
再看二阶偏导:
f
′
′
(
x
)
=
h
′
′
(
g
(
x
)
)
g
′
(
x
)
2
+
h
′
(
g
(
x
)
)
g
′
′
(
x
)
f''(x)=h''(g(x))g'(x)^2+h'(g(x))g''(x)
f′′(x)=h′′(g(x))g′(x)2+h′(g(x))g′′(x)
结论一:若,h为凸,且不降,g为凸,则f为凸
结论二:若,h为凸,且不增,g为凹,则f为凸
对称的有:
结论三:若,h为凹,且不降,g为凹,则f为凹
结论四:若,h为凹,且不增,g为凸,则f为凹
考虑多维情况,定义域不是实空间,并且h和g并不是二阶可微
结论一:若,h为凸,h的扩展不降,g为凸,则f为凸
相应的也可以得到另外的三条结论。
下面证明第一条:
需要用到第一条定义,而不能用二阶条件
h的扩展,要在整个空间内具有单调性才行
2.3.7 函数的透视
g
(
x
,
t
)
=
t
f
(
x
t
)
g(x,t)=tf(\frac{x}{t})
g(x,t)=tf(tx)
结论:若f为凸,则g为凸
例:欧几里得范数的平方的透视——是凸的
例:负对数的透视——是凸的
2.3.8 函数的共轭
函数的共轭一定是个凸函数,不管原函数是不是凸的
线性函数ax+b
-logx函数
非凸函数共轭的共轭不是自身
若f为闭函数,且凸,则共轭的共轭等于自身
2.4 凸集和凸函数的关系
2.4.1 α \alpha α-sublevel set
凸函数的所有的 α \alpha α-sublevel set都是凸集
证明:利用了凸集的定义,结合了凸函数的定义
若一个函数的 α \alpha α-sublevel set都是凸集,这个函数f不一定是个凸函数
说明:可能是个凹函数
考虑变量是二维的情况,考虑一个锅的形状,看看等高线和 α \alpha α-sublevel set的关系,
2.4.2 拟凸函数
拟凸函数定义:所有的
α
\alpha
α-sublevel set都是凸集
拟凹函数定义:
拟线性函数定义:注意和单调函数的关系,只要单调就是拟线性函数
如果一个函数是凸函数,一定是个拟凸函数
但反过来不成立。
拟凸函数:也被称作单模态函数。这一类最优解可以求,但是理论分析比较困难。
拟凸函数的不等式:
m
a
x
(
f
(
x
)
,
f
(
y
)
)
>
=
f
(
θ
x
+
(
1
−
θ
)
y
)
max(f(x),f(y)) >= f(\theta x+(1-\theta)y)
max(f(x),f(y))>=f(θx+(1−θ)y)
向量的长度函数
向量中最后一个非零元素的位置
线性分数函数
线性分数函数一定是拟凸函数
向量的零范数
一个向量中非零元素个数
这个函数在大于1维的情况就不再是拟凸函数
凸松弛
将非凸问题变成凸问题或者拟凸问题,这样就比较好求解。
m
i
n
∥
x
∥
0
min \|x\|_0
min∥x∥0
要松弛它,有几种方式
第一种,直接做一个凸松弛,将0改成1:
m
i
n
∥
x
∥
1
min \|x\|_1
min∥x∥1
上面一种感觉松弛太厉害了,因此考虑一种拟凸松弛
m
i
n
l
o
g
(
a
x
2
+
1
)
min \ log(ax^2+1)
min log(ax2+1)
2.4.3 可微拟凸函数
一阶条件:
二阶条件:
2.4.4 对数凸和对数凹
介绍对数凸和凸的关系:
如果一个f是对数凸,那么一定是凸的
如果一个f是对数凹,那么f不一定是凹的
如果一个f是凹的,那么f一定是个凹的
3. 凸问题
广义凸优化问题:目标函数是凸函数,约束集合是一个凸集,这就是凸优化问题。
一般优化问题描述:
有目标函数,有不等式约束,有等式约束(为了简明起见,将约束分为不等式约束和等式约束)
一些名词 :优化目标,可行解集,最优值,最优解,最优解集, ϵ \epsilon ϵ次优解集,局部最优解
为了求解方便,我们通常把不怎么标准的问题,变换成一个标准的形式
等价问题
例一:
盒子约束问题:x的每一个维度都有一个上下界
例二:
把目标函数和约束做一下缩放,乘以一个常数,这个经常在约束量级差很多的情况。
例三:
如果目标函数单调,则可以通过一些复合函数变换进行等价
例四:
极小话一个2范数,等价于极小化2范数的平方。
例五:
通过某种方式把等式约束给消掉,通常可以这么做:
把多个等式约束看成方程组,然后解方程,然后带到目标函数里消元?
狭义凸问题:
- 目标函数是凸函数
- 约束不等式是凸函数
- 等式约束是关于x的仿射函数
松弛变量:
把变量的维数给增加了,把约束的数目也增加了
但是能把原先不是很容易的问题,变成一个容易的问题
对于凸问题,一个局部最优解=全局最优解
证明:反证法+几何角度理解
讲了互补条件(看不懂有点)——视频第24p
线性规划
目标函数和约束条件都是线性的
对线性规划问题的变形——等价交换
引入了松弛变量s
分解 x = x + − x − x = x^+ - x^- x=x+−x−,这里就是将x分成了正数部分和负数部分
食谱问题
线性分数规划
目标函数是一个线性分数函数
这个问题本身不是凸问题,但是可以写成一个等价的线性规划的形式。
说明两个问题等价:
- 若存在x在第一个问题是可行的,一定可以构造一个y,z在第二个问题里可行
然后两个函数值也都是一样的 - 若存在y,z在第二个问题是可行的,
二次规划
约束也要是线性的
如果约束也是二次的,就叫:二次约束二次规划
带噪声的测量系统
最小二乘
测量方程
b
=
A
x
+
e
b = Ax+e
b=Ax+e
最小化:
a
r
g
m
i
n
∥
b
−
A
x
∥
2
argmin \|b-Ax\|^2
argmin∥b−Ax∥2
若X稀疏(非0元素非常少)
可以引入零范数,然后用1范数去近似。——一范数规范化的最小二乘(lasso)
二范数规范化的最小二乘(也叫岭回归)——x元素的幅度都是类似的(使向量的二范数尽可能小)
投资组合问题
有b的预算,有一些投资方案,共有n种。在第一个到第n个方案里投了 x 1 . . . x n x_1...x_n x1...xn,赚钱的比例 p 1 . . . p n p_1...p_n p1...pn
半定规划问题
没看懂
多目标优化问题
多目标问题和单目标问题之间的转化
多目标优化问题:有一个帕累托最优面
单目标(包含加权项)的问题,通过调整 λ \lambda λ可以得到帕累托最优面上的点
带有约束的单目标,通过改变约束值 ϵ \epsilon ϵ可以获得帕累托最优面上的值
上面三个可以相互转化
这里是为了引出拉格朗日乘子
4. 对偶
现有一个一般化的优化问题
再从优化问题构造拉格朗日函数
拉格朗日函数:把约束和目标写在了一起,做了个线性的加权。
拉格朗日对偶函数:从拉格朗日函数出发构造一个对偶函数。对偶函数,是及消化的过程,最后是v和 λ \lambda λ的函数
v , λ v,\lambda v,λ:拉格朗日乘子
对偶函数:
- 一定是个凹函数,不管原先问题的类型。。
- 对于所有的
λ
,
v
\lambda,v
λ,v,
g
(
λ
,
v
)
g(\lambda,v)
g(λ,v)是原问题最优值的下界
证明:牛逼
根据上面两个性质可知:如果我们求max的 g ( λ , v ) g(\lambda,v) g(λ,v),就能得到一个最优的最优值下界。而由于对偶函数是凹的,求凹函数的最大值是一个凸问题。所以,牛逼
举一些对偶函数的例子
函数共轭和对偶之间的关系
对偶问题和原问题
对偶问题的最优值一定小于等于原问题的最优值。
最优拉格朗日乘子。
从原问题,到拉格朗日函数,到对偶函数,再到对偶问题
对偶问题的对偶问题,就是原始问题本身?不一定,如果原问题是凸问题,那么久成立,如果原问题不是凸问题,就不等价。
对偶问题是凸优化问题!
寻找什么时候
d
∗
=
p
∗
d^*=p^*
d∗=p∗?
弱对偶:满足不等式
强对偶:正好相等
对偶间隙: p ∗ − d ∗ p^*-d^* p∗−d∗
D集合的相对内部(relative interior)——把原来集合的边缘去掉就行,也就是说要是一个开集就行。
slater 条件(讲什么时候
d
∗
=
p
∗
d^*=p^*
d∗=p∗),这只是一个充分条件:
也就是满足这个条件,一定有:
d
∗
=
p
∗
d^*=p^*
d∗=p∗。但是如果不满足这个条件,也可能有
d
∗
=
p
∗
d^*=p^*
d∗=p∗。
对于一个凸问题,绝大部分情况下都能满足。
更弱一点的slater条件:若不等式约束是仿射约束,只要可行域非空,就有 d ∗ = p ∗ d^*=p^* d∗=p∗。——线性规划问题——一定有 d ∗ = p ∗ d^*=p^* d∗=p∗
几何解释:
鞍点解释:
多目标优化解释:
经济学的解释
KKT条件
五条:
两个原问题约束
一个
λ
\lambda
λ>=0
一个互补松弛
一个稳定性条件(导数等于0)
摄动和敏感性分析
性质:如果原问题为图,则 p ∗ ( u , w ) p^*(u,w) p∗(u,w)为 ( u , w ) (u,w) (u,w)的凸函数
给出在什么情况下,尽量不要改动约束