Hessian矩阵与多元函数极值

http://blog.****.net/baimafujinji/article/details/51167852

Hessian矩阵与多元函数极值

海塞矩阵(Hessian Matrix),又译作海森矩阵,是一个多元函数的二阶偏导数构成的方阵。尽管它是一个具有悠久历史的数学成果,但是在机器学习和图像处理(例如SIFT和SURF特征检测)中,我们也常常遇到它。所以本文就来向读者道一道Hessian Matrix的来龙去脉。本文的主要内容包括:

  • 多元函数极值问题
  • 泰勒展开式与Hessian矩阵

多元函数极值问题

回想一下我们是如何处理一元函数求极值问题的。例如,,我们会先求一阶导数,即,根据费马定理极值点处的一阶导数一定等于 。但这仅是一个必要条件,而非充分条件。对于来说,函数的确在一阶导数为零的点取得了极值,但是对于来说,显然只检查一阶导数是不足以下定论的。

这时我们需要再求一次导,如果二阶导数 ,那么说明函数在该点取得局部极大值;如果二阶导数 ,则说明函数在该点取得局部极小值;如果 ,则结果仍然是不确定的,我们就不得不再通过其他方式来确定函数的极值性。

如果要在多元函数中求极值点,方法与此类似。作为一个示例,不妨用一个三元函数  来作为示例。首先要对函数中的每个变量分别求偏导数,这会告诉我们该函数的极值点可能出现在哪里。即 


接下来,要继续求二阶导数,此时包含混合偏导数的情况一共有  个,如果用矩阵形式来表示的话就得到 

这个矩阵就称为Hessian矩阵。当然上面所给出的仅仅是一个三阶的Hessian矩阵。稍作扩展,我们可以对一个在定义域内二阶连续可导的实值多元函数  定义其Hessian矩阵如下 

当一元函数的二阶导数等于  时,我们并不能确定函数在该点的极值性。类似地,面对Hessian矩阵,仍然存在无法断定多元函数极值性的的情况,即当Hessian矩阵的行列式为  时,我们无法确定函数是否能取得极值。甚至我们可能会得到一个鞍点,也就是一个既非极大值也非极小值的的点。 


Hessian矩阵与多元函数极值 

基于Hessian矩阵,就可以判断多元函数的极值情况了,结论如下

  • 如果是正定矩阵,则临界点处是一个局部极小值
  • 如果是负定矩阵,则临界点处是一个局部极大值
  • 如果是不定矩阵,则临界点处不是极值


如何判断一个矩阵是否是正定的,负定的,还是不定的呢?一个最常用的方法就是顺序主子式。实对称矩阵为正定矩阵的充要条件是的各顺序主子式都大于零。当然这个判定方法的计算量比较大。对于实二次型矩阵还有一个判定方法:实二次型矩阵为正定二次型的充要条件是的矩阵的特征值全大于零。为负定二次型的充要条件是的矩阵的特征值全小于零,否则是不定的。

如果你对二次型的概念仍然不很熟悉,这里也稍作补充。定义含有  
个变量  的二次齐次函数 


为二次型。取 ,则 ,于是上式可以写成 

更进一步,如果用矩阵对上式进行改写,则有 

记 

则二次型可记作 ,其中 为对称阵。 
设有二次型 ,如果对任何 ,都有 ,则称  为正定二次型,并称对称矩阵  是正定的;如果对任何 ,都有 ,则称  为负定二次型,并称对称矩阵  是负定的。 
正定矩阵一定是非奇异的。对阵矩阵  为正定的充分必要条件是:  的特征值全为正。由此还可得到下面这个推论:对阵矩阵  为正定的充分必要条件是  的各阶主子式都为正。如果将正定矩阵的条件由  弱化为 ,则称对称矩阵  是半正定的。


泰勒展开式与Hessian矩阵

主页君已经在之前的《图像处理中的数学原理详解》系列文章中介绍过泰勒展开式了。但那个时候我们给出的是一元函数的泰勒公式,不妨先来复习一下。 
设一元函数  在包含点的开区间  内具有  阶导数,则当  时,有 


其中 

并且, 在  和 之间,这被称作是拉格朗日余项。上式被称为  的  阶泰勒公式。在不需要余项的精确表达式时, 可以记作 ,这被称为是皮亚诺余项。

现在我们把上面这个结论稍微做一下推广,从而给出二元函数的泰勒公式。设二元函数  在点  的某一邻域内连续且有直到  阶的连续偏导数,则有 


其中,,记号 

表示 

记号 

表示 

一般地,记号 

表示 

当然,我们可以用一种更加简洁的形式来重写上面的和式,则有 

当余项采用上面这种形式时称为拉格朗日余项,如果采用皮亚诺余项,则二元函数的泰勒公式可以写成 

特别低,对于一个多维向量 , 以及在点  的邻域内有连续二阶偏导数的多元函数  ,可以写出该函数在点 处的(二阶)泰勒展开式 

其中, 是高阶无穷小表示的皮亚诺余项。而  显然就是一个Hessian矩阵。所以上述式子也可以写成 

我们已经知道对于  元函数 在点  处有极值,则有 


也就是说这是一个必要条件,而充分条件则由上一节中之结论给出 。