定义
凸优化问题OPT,convex optimization problem
,指定义在凸集中的凸函数最优化的问题。尽管凸优化的条件比较苛刻,但仍然在机器学习领域有十分广泛的应用。
凸优化问题的优势
- 凸优化问题的局部最优解就是全局最优解
- 很多非凸问题都可以被等价转化为凸优化问题或者被近似为凸优化问题(例如拉格朗日对偶问题)
- 凸优化问题的研究较为成熟,当一个具体被归为一个凸优化问题,基本可以确定该问题是可被求解的
相关数学概念
1. 凸集
1.1 定义:
C C C是凸集,如果对于任意的 x , y ∈ C x,y\in C x,y∈C和任意的 θ ∈ R \theta \in \mathbb{R} θ∈R满足 0 ≤ θ ≤ 1 0\leq \theta \leq 1 0≤θ≤1时, θ x + ( 1 − θ ) y ∈ C \theta x + (1-\theta)y \in C θx+(1−θ)y∈C 恒成立
1.2 几何意义
直观来说,任取一个集合中的两点练成一条线段,如果这条线段完全落在该集合中,那么这个集合就是凸集。
2. 凸函数
2.1定义:
定义在 R n → R \mathbb{R}^n \rightarrow \mathbb{R} Rn→R上的函数 f f f是凸函数,如果它的定义域 D ( f ) \mathbb{D}(f) D(f)是一个凸集且对任意的 x , y ∈ D x,y\in \mathbb{D} x,y∈D和 0 ≤ θ ≤ 1 0\leq \theta \leq 1 0≤θ≤1, f ( θ x + ( 1 − θ y ) ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x +(1-\theta y)) \leq \theta f(x) + (1-\theta)f(y) f(θx+(1−θy))≤θf(x)+(1−θ)f(y)恒成立
2.2几何意义:
2.3凸函数的一阶充要条件:
假设定义在
R
n
→
R
\mathbb{R}^n \rightarrow \mathbb{R}
Rn→R上的函数
f
f
f可微(即对于所有
x
∈
D
(
f
)
x\in \mathbb{D}(f)
x∈D(f),梯度
▽
f
(
x
)
\triangledown f(x)
▽f(x)均存在)。则函数
f
f
f是凸函数当且仅当函数定义域
D
(
f
)
\mathbb{D}(f)
D(f)是一个凸集,且对于所有
x
,
y
∈
D
(
f
)
x,y\in \mathbb{D}(f)
x,y∈D(f)均满足:
f
(
y
)
≥
f
(
x
)
+
▽
f
(
x
)
T
(
y
−
x
)
f(y) \geq f(x)+\triangledown f(x)^T(y-x)
f(y)≥f(x)+▽f(x)T(y−x)
一阶充要条件从几何意义上讲,即定义域内所有函数值都大于等于该点的一阶近似。
2.4 凸函数的二阶充要条件:
记函数的一阶导数和二阶导数分别为
g
g
g和
H
H
H:
g
=
▽
f
=
[
∂
f
∂
x
1
∂
f
∂
x
2
⋮
∂
f
∂
x
n
]
H
=
▽
2
f
=
[
∂
2
f
∂
x
1
2
∂
2
f
∂
x
1
∂
x
2
⋯
∂
2
f
∂
x
1
∂
x
n
∂
2
f
∂
x
2
∂
x
1
∂
2
f
∂
x
2
2
⋯
∂
2
f
∂
x
2
∂
x
n
⋮
⋮
⋱
⋮
∂
2
f
∂
x
n
∂
x
1
∂
2
f
∂
x
n
∂
x
2
⋯
∂
2
f
∂
x
n
2
]
g=\triangledown f=\begin{bmatrix} \frac{\partial f}{\partial x_1}\\ \frac{\partial f}{\partial x_2}\\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix} \quad H=\triangledown^2f= \begin{bmatrix} \frac{\partial^2f}{\partial x_1^2} & \frac{\partial^2f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2f}{\partial x_1 \partial x_n}\\ \frac{\partial^2f}{\partial x_2 \partial x_1} & \frac{\partial^2f}{\partial x_2^2} & \cdots & \frac{\partial^2f}{\partial x_2 \partial x_n}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial^2f}{\partial x_n \partial x_1} & \frac{\partial^2f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2f}{\partial x_n^2} \end{bmatrix}
g=▽f=⎣⎢⎢⎢⎢⎡∂x1∂f∂x2∂f⋮∂xn∂f⎦⎥⎥⎥⎥⎤H=▽2f=⎣⎢⎢⎢⎢⎢⎡∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f⎦⎥⎥⎥⎥⎥⎤
假设定义在
R
n
→
R
\mathbb{R}^n \rightarrow \mathbb{R}
Rn→R上的函数
f
f
f二阶可微(即对于所有
x
∈
D
(
f
)
x\in \mathbb{D}(f)
x∈D(f),海森矩阵
▽
2
f
(
x
)
\triangledown^2 f(x)
▽2f(x)均存在)。则函数
f
f
f是凸函数当且仅当函数定义域
D
(
f
)
\mathbb{D}(f)
D(f)是一个凸集,且对于所有
x
∈
D
(
f
)
x\in \mathbb{D}(f)
x∈D(f)均满足:
▽
2
f
(
x
)
⪰
0
\triangledown^2f(x) \succeq 0
▽2f(x)⪰0
注意:这里的 ⪰ \succeq ⪰表示的是半正定。
3. 正定矩阵
3.1 从二次型出发理解正定矩阵
正定矩阵的概念是从正定二次型引入的,对称矩阵 A A A为正定的充要条件即该矩阵的特征值全为正数。
为方便理解正定/半正定矩阵,我们引入二次型
f
(
x
)
=
x
T
A
x
f(x)=x^TAx
f(x)=xTAx,对于含有
n
n
n个变量的二次齐次函数,我们可以一般化地写为:
f
(
x
1
,
x
2
,
.
.
.
,
x
n
)
=
a
11
x
1
2
+
a
22
x
2
2
+
.
.
.
+
a
n
n
x
n
2
+
2
a
12
x
1
x
2
+
.
.
.
+
2
a
n
−
1
,
n
x
n
−
1
x
n
f(x_1,x_2,...,x_n)=a_{11}x_1^2 + a_{22}x_2^2+...+a_{nn}x_n^2+2a_{12}x_1x_2+...+2a_{n-1,n}x_{n-1}x_{n}
f(x1,x2,...,xn)=a11x12+a22x22+...+annxn2+2a12x1x2+...+2an−1,nxn−1xn
f
(
x
1
,
x
2
,
.
.
.
,
x
n
)
=
∑
i
=
1
n
a
i
i
x
i
2
+
2
∑
i
=
1
n
∑
j
=
1
n
a
i
j
x
i
x
j
f(x_1,x_2,...,x_n)=\sum_{i=1}^{n}a_{ii}x_i^2 + 2\sum_{i=1}^{n}\sum_{j=1}^{n} a_{ij}x_ix_j
f(x1,x2,...,xn)=i=1∑naiixi2+2i=1∑nj=1∑naijxixj
同时,对于所有的二次齐次式我们都可以写成矩阵形式:
f
(
x
1
,
x
2
,
.
.
.
,
x
n
)
=
x
T
A
x
f(x_1,x_2,...,x_n) = x^TAx
f(x1,x2,...,xn)=xTAx
如果对任意的
x
≠
0
x\neq 0
x=0均有
f
(
x
)
>
0
f(x) > 0
f(x)>0,则称
f
(
x
)
f(x)
f(x)为正定二次型,同时称
A
A
A为正定矩阵。
因为对于任意的二次型,我们都能将其写为矩阵形式,且矩阵 A A A的形式为:
[ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix} ⎣⎢⎢⎢⎡a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎦⎥⎥⎥⎤
因此二次型矩阵和对称矩阵是一一对应的关系。
3.2 从几何意义理解正定二次型
对于最简单的一元二次函数
f
(
x
)
=
x
2
f(x)=x^2
f(x)=x2,当
x
≠
0
x\neq 0
x=0时
f
(
x
)
>
0
f(x) > 0
f(x)>0恒成立。即一元正定二次型对应的图像是开口向上,顶点在原点的抛物线,同理二元正定二次型
f
(
x
,
y
)
=
x
2
+
y
2
f(x,y) = x^2 + y^2
f(x,y)=x2+y2对应的图像是开口向上,顶点在原点的抛物面。
扩展到
n
n
n元正定二次型的图像也对应着一个抛物线,保证当自变量取值非零向量时,对应的函数值大于0恒成立。
3.3 半正定矩阵的图像
同样我们可以给出二元半正定二次型的图像,即某个自变量的特征值为
0
0
0从而保证当自变量取值为非零向量时,对应的函数值大于等于
0
0
0恒成立。
凸优化问题
1. 定义:
min
f
(
x
)
s
.
t
.
g
i
(
x
)
≤
0
,
i
=
1
,
2
,
.
.
.
,
m
h
j
(
x
)
=
0
,
j
=
1
,
2
,
.
.
.
,
n
\begin{aligned} \min &\quad f(x) \\ s.t. &\quad g_i(x) \leq 0, i=1,2,...,m \\ &\quad h_j(x) = 0, j = 1,2,...,n \end{aligned}
mins.t.f(x)gi(x)≤0,i=1,2,...,mhj(x)=0,j=1,2,...,n
当
f
(
x
)
f(x)
f(x)和
g
i
(
x
)
g_i(x)
gi(x)均为凸函数,而
h
j
(
x
)
h_j(x)
hj(x)均为仿射函数时, 上述的优化问题即凸优化问题。
2. 常见的凸优化问题
2.1 线性规划(LP, Linear Program)
min
c
T
x
+
d
s
.
t
.
G
(
x
)
⪯
h
A
(
x
)
=
b
\begin{aligned} \min &\quad c^Tx+d \\ s.t. &\quad G(x) \preceq h \\ &\quad A(x) = b \end{aligned}
mins.t.cTx+dG(x)⪯hA(x)=b
其中目标函数和不等式约束都是仿射函数,且
⪯
\preceq
⪯表示按元素小于等于。
2.2 二次规划(QP, Quadratic Program)
min
1
2
x
T
P
x
+
c
T
x
+
d
s
.
t
.
G
(
x
)
⪯
h
A
(
x
)
=
b
\begin{aligned} \min &\quad \frac{1}{2}x^TPx+c^Tx+d \\ s.t. &\quad G(x) \preceq h \\ &\quad A(x) = b \end{aligned}
mins.t.21xTPx+cTx+dG(x)⪯hA(x)=b
其中目标函数为凸二次型,不等式约束为仿射函数。
2.3 二次约束的二次规划(QCCP, Quadratically Contrained Quaratic Program)
min
1
2
x
T
P
x
+
c
T
x
+
d
s
.
t
.
1
2
x
T
Q
i
x
+
r
i
x
+
s
i
≤
0
,
i
=
1
,
2
,
.
.
.
.
m
A
(
x
)
=
b
\begin{aligned} \min &\quad \frac{1}{2}x^TPx+c^Tx+d \\ s.t. &\quad \frac{1}{2}x^TQ_ix + r_ix + s_i \leq 0, i=1,2,....m \\ &\quad A(x) = b \end{aligned}
mins.t.21xTPx+cTx+d21xTQix+rix+si≤0,i=1,2,....mA(x)=b
其中目标函数和不等式约束都是凸二次型。
2.4 半正定规划(SDP, Semidefinite Program)
min
t
r
(
C
X
)
s
.
t
.
t
r
(
A
i
X
)
=
b
i
,
i
=
1
,
2
,
.
.
.
.
p
X
⪰
0
\begin{aligned} \min &\quad tr(CX) \\ s.t. &\quad tr(A_iX)=b_i, i=1,2,....p \\ &\quad X \succeq 0 \end{aligned}
mins.t.tr(CX)tr(AiX)=bi,i=1,2,....pX⪰0
其中需要最优化的变量
X
X
X是一个对称的半正定矩阵,且
C
,
A
1
,
.
.
.
,
A
p
C, A_1,...,A_p
C,A1,...,Ap为对阵矩阵。
3. 凸优化问题的一般求解过程
由于凸优化问题具有局部最优解即全局最优解的优良特性,因此求解过程可以简化为:找到一个点列使得目标函数值持续减少,直到触发停止条件或达到一个最小值。
设
x
k
x_k
xk为第
k
k
k次迭代的值,
d
k
d_k
dk为第
k
k
k次搜索方向,
α
k
\alpha_k
αk为第
k
k
k次迭代的步长,则第
k
k
k次迭代公式为:
x
k
+
1
=
x
k
+
α
k
d
k
x_{k+1}=x_k+\alpha_k d_k
xk+1=xk+αkdk
其中第
k
k
k次的搜索方向满足:
▽
f
(
x
k
)
T
d
k
<
0
\triangledown f(x_k)^Td_k < 0
▽f(xk)Tdk<0
f
(
x
k
+
1
)
=
f
(
x
k
+
α
k
d
k
)
<
f
(
x
k
)
f(x_{k+1}) = f(x_k+\alpha_k d_k) <f(x_k)
f(xk+1)=f(xk+αkdk)<f(xk)
Reference
[1] https://www.jiqizhixin.com/articles/2019-03-05-8
[2] https://www.zhihu.com/question/38902714/answer/195435181
[3] https://www.jianshu.com/p/62539b0316e2
[4] plot: matplotlib.pyplot
[5] http://cs229.stanford.edu/section/cs229-cvxopt.pdf