凸优化学习
学习笔记
一、凸优化定义
1、文字
从一个可行的解的集合中,寻找出最优的元素。
三要素
可行解集合、最优准则、寻找方法
其中可行解集一定要是凸集,最优准则一般是指目标函数尽可能小,寻找方法一般是梯度下降。
2、数学
minimize
f
0
(
x
)
f_{0}(x)
f0(x)
{
\lbrace
{ object to
f
i
(
x
)
≤
b
i
,
i
=
1
,
2
,
⋅
⋅
⋅
,
n
}
\quad\ f_i(x)\leq{b_i},\ \ i=1,2,\cdot\cdot\cdot,n\rbrace
fi(x)≤bi, i=1,2,⋅⋅⋅,n}
其中:
x
=
[
x
1
,
⋯
,
x
n
]
x=[x_1,\cdots,x_n]
x=[x1,⋯,xn]:优化变量
f
0
(
x
)
f_0(x)
f0(x):object function(目标函数),必须为凸函数。
f
i
(
x
)
f_i(x)
fi(x):inequality constraint(不等式约束),必须为凸函数,其约束的x的集合必须为凸集。
3、最优x定义
x ∗ ⟺ ∀ z , z ∈ { f i ( z ) ≤ b i , i = 1 , ⋯ , m } , f 0 ( z ) ≥ f 0 ( x ∗ ) x^*\Longleftrightarrow{\forall z,\ \ z\in{\lbrace f_i(z)\leq b_i,\ \ i=1,\cdots,m\rbrace},\ \ f_0(z)\geq f_0(x^*)} x∗⟺∀z, z∈{fi(z)≤bi, i=1,⋯,m}, f0(z)≥f0(x∗)
z z z:feasibleset,即可行解集。简单来说,就是满足约束的、函数能取到有效值的点。
4、举例简单说明
仅考虑n=1维的情况
可以看到,在目标函数为凸函数时,最优x只有一个。
此优化问题可以描述为:
min
f
0
(
x
)
f_0(x)
f0(x)
s.t.
x
≤
a
−
x
≤
a
\ x\leq a\\ \qquad \ \ -x\leq a
x≤a −x≤a
s.t.即为subject to
可以看到,在目标函数非凸时,最优x可能不止一个。
个人思考
一维的二次凸函数是最典型、最直观的凸函数,在学习的时候对什么性质不是很明了的话,用一维的二次凸函数来思考就会简单得多。如上面的例子,同样我们可以直观的看到,凸函数至少有最优值唯一、局部最优即为全局最优、梯度下降总是趋缓的优良性质。因此,对于一个问题进行数学建模,应当尽量建模成凸问题,若初始问题不能建模成凸问题,在之后也应当将其转为为等价的凸问题。
纸质笔记