凸函数的判别
设 S ⊂ R n S \subset R^n S⊂Rn 是非空开凸集, f : S → R f:S \rightarrow R f:S→R 可微,则
(1)
f
f
f 是
S
S
S 上的凸函数,当且仅当
f
(
x
2
)
⩾
f
(
x
1
)
+
∇
f
(
x
1
)
T
(
x
2
−
x
1
)
,
∀
x
1
,
x
2
∈
S
f(x_2) \geqslant f(x_1) + \nabla f(x_1)^T(x_2-x_1), ~~~ \forall x_1,x_2 \in S
f(x2)⩾f(x1)+∇f(x1)T(x2−x1), ∀x1,x2∈S
(2)
f
f
f 是
S
S
S 上的严格凸函数,当且仅当
f
(
x
2
)
>
f
(
x
1
)
+
∇
f
(
x
1
)
T
(
x
2
−
x
1
)
,
∀
x
1
,
x
2
∈
S
,
x
1
≠
x
2
f(x_2) > f(x_1) + \nabla f(x_1)^T(x_2-x_1), ~~~ \forall x_1,x_2 \in S, x_1 \neq x_2
f(x2)>f(x1)+∇f(x1)T(x2−x1), ∀x1,x2∈S,x1=x2
其中
∇
f
(
x
1
)
=
(
∂
f
(
x
1
)
∂
x
1
,
⋯
,
∂
f
(
x
1
)
∂
x
n
)
T
\nabla f(x_1) = (\frac{\partial f(x_1)}{\partial x_1},\cdots,\frac{\partial f(x_1)}{\partial x_n})^T
∇f(x1)=(∂x1∂f(x1),⋯,∂xn∂f(x1))T
是函数 f f f 在点 x 1 x_1 x1 处的一阶导数(即,梯度)。
凸二次优化
给定二次函数 f ( x ) = 1 2 x T G x + b T x f(x) = \frac{1}{2}x^TGx + b^Tx f(x)=21xTGx+bTx 是 R n R^n Rn 上的严格凸函数当且仅当 G G G 是正定矩阵。
证明: 设
f
(
x
)
=
1
2
x
T
G
x
+
b
T
x
f(x) = \frac{1}{2}x^TGx + b^Tx
f(x)=21xTGx+bTx 是严格凸的,由定义有
f
(
λ
x
1
+
(
1
−
λ
)
x
2
)
<
λ
f
(
x
1
)
+
(
1
−
λ
)
f
(
x
2
)
,
f(\lambda x_1 + (1 - \lambda)x_2) < \lambda f(x_1) + (1 - \lambda)f(x_2),
f(λx1+(1−λ)x2)<λf(x1)+(1−λ)f(x2),
对任何
x
1
,
x
2
∈
R
n
,
x
1
≠
x
2
,
0
<
λ
<
1
x_1, x_2 \in R^n, x_1 \neq x_2, 0 < \lambda < 1
x1,x2∈Rn,x1=x2,0<λ<1 成立,即
λ
(
1
2
x
1
T
G
x
1
+
b
T
x
1
)
+
(
1
−
λ
)
(
1
2
x
2
T
G
x
2
+
b
T
x
2
)
−
1
2
(
λ
x
1
+
(
1
−
λ
)
x
2
)
T
G
(
λ
x
1
+
(
1
−
λ
)
x
2
)
−
b
T
(
λ
x
1
+
(
1
−
λ
)
x
2
)
>
0
\lambda(\frac{1}{2}x_1^TGx_1+b^Tx_1)+(1-\lambda)(\frac{1}{2}x_2^TGx_2+b^Tx_2) \\ -\frac{1}{2}(\lambda x_1+(1-\lambda)x_2)^TG(\lambda x_1 + (1 - \lambda)x_2) - b^T(\lambda x_1 + (1 - \lambda)x_2)>0
λ(21x1TGx1+bTx1)+(1−λ)(21x2TGx2+bTx2)−21(λx1+(1−λ)x2)TG(λx1+(1−λ)x2)−bT(λx1+(1−λ)x2)>0
化简得到
λ
(
1
−
λ
)
(
x
1
−
x
2
)
T
G
(
x
1
−
x
2
)
>
0
\lambda(1-\lambda)(x_1-x_2)^TG(x_1-x_2)>0
λ(1−λ)(x1−x2)TG(x1−x2)>0
因为
x
1
≠
x
2
x_1 \neq x_2
x1=x2,故令
y
=
x
1
−
x
2
y = x_1 - x_2
y=x1−x2,则
y
≠
0
y \neq 0
y=0 ,又
λ
(
1
−
λ
)
>
0
\lambda(1-\lambda)>0
λ(1−λ)>0,故得到
y
T
G
y
>
0
y^TGy>0
yTGy>0
因为 x 1 ≠ x 2 x_1 \neq x_2 x1=x2 是任意的,故 y ≠ 0 y \neq 0 y=0 是任意的,从而 G G G 是正定的。
上述各步均可逆,从而得出。
一般地,对于二次函数
f
(
x
)
=
1
2
x
T
G
x
+
b
T
x
=
1
2
∑
i
,
j
=
1
n
G
i
,
j
x
i
y
j
+
∑
i
,
j
n
b
i
x
i
+
c
i
\begin{aligned} f(x) & = \frac{1}{2}x^TGx + b^Tx \\ & = \frac{1}{2}\sum ^n _{i,j=1}G_{i,j}x_iy_j + \sum ^n _{i,j}b_ix_i +c_i \end{aligned}
f(x)=21xTGx+bTx=21i,j=1∑nGi,jxiyj+i,j∑nbixi+ci
其实
G
G
G 是对称矩阵,同时也是海森矩阵(Hessian matrix
):
-
当 G G G 是正半定时,二次函数 f ( x ) f(x) f(x) 是凸函数;
-
当 G G G 是正定时,二次函数 f ( x ) f(x) f(x) 是严格凸函数;
-
当 G G G 是负正半定时,二次函数 f ( x ) f(x) f(x) 是凹函数;
-
当 G G G 是负定时,二次函数 f ( x ) f(x) f(x) 是严格凹函数;
-
当 G G G 是不定时,二次函数 f ( x ) f(x) f(x) 既不是凸函数,也不是凹函数。
海森矩阵(Hessian matrix)
H ( x k ) = [ ∂ 2 f ( x k ) ∂ x 1 2 ∂ 2 f ( x k ) ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ( x k ) ∂ x 1 ∂ x n ∂ 2 f ( x k ) ∂ x 2 ∂ x 1 ∂ 2 f ( x k ) ∂ x 2 2 ⋯ ∂ 2 f ( x k ) ∂ x 2 ∂ x n ⋯ ⋯ ⋱ ⋯ ∂ 2 f ( x k ) ∂ x n ∂ x 1 ∂ 2 f ( x k ) ∂ x n ∂ x 2 ⋯ ∂ 2 f ( x k ) ∂ x n 2 ] H(x_k) = \begin{bmatrix} \large \frac{\partial^2 f(x_k)}{\partial x_1^2} & \large \frac{\partial^2 f(x_k)}{\partial x_1 \partial x_2} & \cdots & \large \frac{\partial^2 f(x_k)}{\partial x_1 \partial x_n} \\\\ \large \frac{\partial^2 f(x_k)}{\partial x_2 \partial x_1} & \large \frac{\partial^2 f(x_k)}{\partial x_2^2} & \cdots & \large \frac{\partial^2 f(x_k)}{\partial x_2 \partial x_n} \\\\ \cdots & \cdots & \ddots & \cdots \\\\ \large \frac{\partial^2 f(x_k)}{\partial x_n \partial x_1} & \large \frac{\partial^2 f(x_k)}{\partial x_n \partial x_2} & \cdots & \large \frac{\partial^2 f(x_k)}{\partial x_n^2} \\ \end{bmatrix} H(xk)= ∂x12∂2f(xk)∂x2∂x1∂2f(xk)⋯∂xn∂x1∂2f(xk)∂x1∂x2∂2f(xk)∂x22∂2f(xk)⋯∂xn∂x2∂2f(xk)⋯⋯⋱⋯∂x1∂xn∂2f(xk)∂x2∂xn∂2f(xk)⋯∂xn2∂2f(xk)
判断函数凹凸性示例
判断函数 f ( x ) = 2 x 1 3 − 3 x 1 2 − 6 x 1 x 2 f(x) = 2x_1^3 - 3x_1^2-6x_1x_2 f(x)=2x13−3x12−6x1x2 的凹凸性。
一阶偏导数:
∂
f
∂
x
1
=
6
x
1
2
−
6
x
1
−
6
x
2
,
∂
f
∂
x
2
=
−
6
x
1
\frac{\partial f}{\partial x_1} = 6x_1^2 - 6x_1 - 6x_2, ~~~ \frac{\partial f}{\partial x_2} = -6x_1
∂x1∂f=6x12−6x1−6x2, ∂x2∂f=−6x1
二阶偏导数:
∂
2
f
∂
x
1
2
=
12
x
1
−
6
,
∂
2
f
∂
x
1
∂
x
2
=
−
6
,
∂
2
f
∂
x
2
2
=
0
\frac{\partial^2 f}{\partial x_1^2} = 12x_1 - 6, ~~~ \frac{\partial^2 f}{\partial x_1 \partial x_2} = -6, ~~~ \frac{\partial^2 f}{\partial x_2^2} = 0
∂x12∂2f=12x1−6, ∂x1∂x2∂2f=−6, ∂x22∂2f=0
用这些偏导数来构造 Hessian
矩阵
∇
2
f
(
x
)
=
[
12
x
1
−
6
−
6
−
6
0
]
\nabla^2 f(x) = \begin{bmatrix} 12x_1 - 6 & -6 \\ -6 & 0 \end{bmatrix}
∇2f(x)=[12x1−6−6−60]
设实对称矩阵
A
=
∇
2
f
(
x
)
A = \nabla^2 f(x)
A=∇2f(x) 那么,
一阶顺序主子式:
A
1
=
12
x
1
−
6
A_1 = 12x_1 - 6
A1=12x1−6
二阶顺序主子式:
A
2
=
[
12
x
1
−
6
−
6
−
6
0
]
A_2 = \begin{bmatrix} 12x_1 - 6 & -6 \\ -6 & 0 \end{bmatrix}
A2=[12x1−6−6−60]
因为
∣
A
2
∣
=
−
36
<
0
|A_2| = -36 < 0
∣A2∣=−36<0,偶数阶小于零,故矩阵为不定矩阵,
所以,在全体定义域中,这个函数既不是凸也不是凹。