【最优化方法】凸二次优化

文章目录

  • 凸函数的判别
  • 凸二次优化
  • 海森矩阵(Hessian matrix)
  • 判断函数凹凸性示例

凸函数的判别

S ⊂ R n S \subset R^n SRn 是非空开凸集, f : S → R f:S \rightarrow R f:SR 可微,则

(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(x2x1),   x1,x2S

(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(x2x1),   x1,x2S,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)=(x1f(x1),,xnf(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,x2Rn,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λ)(x1x2)TG(x1x2)>0

因为 x 1 ≠ x 2 x_1 \neq x_2 x1=x2,故令 y = x 1 − x 2 y = x_1 - x_2 y=x1x2,则 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=1nGi,jxiyj+i,jnbixi+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)= x122f(xk)x2x12f(xk)xnx12f(xk)x1x22f(xk)x222f(xk)xnx22f(xk)x1xn2f(xk)x2xn2f(xk)xn22f(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)=2x133x126x1x2 的凹凸性。

一阶偏导数:
∂ 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 x1f=6x126x16x2,   x2f=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 x122f=12x16,   x1x22f=6,   x222f=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)=[12x16660]
设实对称矩阵 A = ∇ 2 f ( x ) A = \nabla^2 f(x) A=2f(x) 那么,

一阶顺序主子式:
A 1 = 12 x 1 − 6 A_1 = 12x_1 - 6 A1=12x16
二阶顺序主子式:
A 2 = [ 12 x 1 − 6 − 6 − 6 0 ] A_2 = \begin{bmatrix} 12x_1 - 6 & -6 \\ -6 & 0 \end{bmatrix} A2=[12x16660]
因为 ∣ A 2 ∣ = − 36 < 0 |A_2| = -36 < 0 A2=36<0,偶数阶小于零,故矩阵为不定矩阵

所以,在全体定义域中,这个函数既不是凸也不是凹

你可能感兴趣的:(最优化方法,线性代数,最优化方法,凸二次优化,海森矩阵,Hessian)