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