版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Flying_sfeng/article/details/81196582
一 Hessian矩阵:
实值函数f(x)相对于
n×1
实向量x的二阶偏导是一个由
m2
个二阶偏导组成的矩阵(称为Hessian矩阵),定义为:
∂2f(x)∂x∂xT=∂∂xT[∂f(x)∂x]
或者简写为梯度的梯度:
∇2xf(x)=∇x(∇xf(x))
根据定义,Hessian矩阵的第i行第j列是梯度
∂f(x)∂xi=∇xif(x)
第j个分量的梯度,即:
[∂2f(x)∂x∂xT]i,j=∂2f(x)∂xi∂xj
,
或者写做:
∂2f(x)∂x∂xT=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f(x)∂x1∂x1∂2f(x)∂x2∂x1⋮∂2f(x)∂xn∂x1∂2f(x)∂x1∂x2∂2f(x)∂x2∂x2⋮∂2f(x)∂xn∂x2⋯⋯⋱⋯∂2f(x)∂x1∂xn∂2f(x)∂x2∂xn⋮∂2f(x)∂xn∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
因此,Hessian矩阵可以用两步法求出来:
(1)求实值函数f(x)关于向量变元x的偏导数,得到实值函数的梯度
∂f(x)∂x;
(2)再求梯度
∂f(x)∂x
相对于
1×n
行向量
xT
的偏导数,得到梯度的梯度即Hessian矩阵。
二 局部极小点的条件
根据定义确定某个点
x∗
是否为目标函数的局部极小点,需要将目标函数在该点的取值与函数在该点领域里所有点的取值进行比较。这显然是不实际的做法。然而,如果f(x)是二次连续可微分的话,直接通过检验梯度
∇xf(x∗)
和Hessian矩阵
∇2xf(x∗)
, 即可判断点
x∗
是否为局部极小点(甚至是严格局部极小点)。
若
(Δx)TΔx
很小, 即函数f(x)的二阶Taylor级数展开为:
f(x+Δx)=f(x)+(Δx)T∇xf(x)+12(Δx)T∇2xf(x)Δx
关于判断一个局部极小点的一阶必要条件和一阶充分条件,请参考《矩阵分析与应用》270页(张贤达著),下面主要讲解其二阶充分条件:
定理:假设
∇2xf(x)
在
x∗
的开邻域内连续,并且
∇xf(x∗)=0, ∇2xf(x∗)>0
则
x∗
是函数f(x)的严格局部极小点。式中
∇2xf(x∗)>0
表示Hessian矩阵
∇2xf(x∗)
正定。(具体即
(Δx)T∇2xf(x)Δx>0
)
证明:由函数f(x)的二阶Taylor级数展开
f(x∗+Δx)=f(x∗)+(Δx)T∇xf(x∗)+12(Δx)T∇2xf(x∗)Δx
,且
∇xf(x∗)=0, (Δx)T∇2xf(x∗)Δx>0
可得:
f(x∗+Δx)>f(x∗)
,所以
x∗
是函数f(x)的严格局部极小点。
应当注意的是,该二阶充分条件并不是必要条件:有的点
x∗
可能是函数f(x)的严格局部极小点,但是在该点的Hessian矩阵却不是正定的。例如,观察知,点
x=0
是函数
f(x)=(xTx)2
的严格局部极小点,但是Hessian矩阵
∂2f(x)∂x∂xT=∂2∂x∂xT(xTx)2=12xTx
在严格局部极小点
x=0
处为零矩阵,不是正定矩阵。
定理:凸函数f(x)的任何局部极小点
x∗
都是该函数的一个全局极小点。
证明:假设
x∗
是局部极小点,但不是一个全局极小点。于是,可以求出一点
z∈R
满足
f(z)<f(x∗)
.考虑从
x∗
到
z
的线段上的点
x
,则
x=λz+(1−λ)x∗, λ∈(0,1]
根据凸函数的性质,有
f(x)≤λf(z)+(1−λ)f(x∗)<f(x∗)
.
则当
x
趋近于
x∗
时,有
f(x)<f(x∗)
,所以
x∗
不是局部极小点,与假设矛盾。因此,局部极小点
x∗
必定时一个全局极小点。
参考:《矩阵分析与应用》(张贤达著)