Hessian矩阵与多元函数极值
海塞矩阵(Hessian Matrix),又译作海森矩阵,是一个多元函数的二阶偏导数构成的方阵。虽然它是一个具有悠久历史的数学成果。可是在机器学习和图像处理(比如SIFT和SURF特征检測)中,我们也经常遇到它。所以本文就来向读者道一道Hessian Matrix的来龙去脉。本文的主要内容包括:
- 多元函数极值问题
- 泰勒展开式与Hessian矩阵
多元函数极值问题
回忆一下我们是怎样处理一元函数求极值问题的。
比如。f(x)=x2,我们会先求一阶导数,即f′(x)=2x,依据费马定理极值点处的一阶导数一定等于 0。但这仅是一个必要条件。而非充分条件。对于f(x)=x2来说,函数的确在一阶导数为零的点取得了极值,可是对于f(x)=x3来说,显然只检查一阶导数是不足以下定论的。
这时我们须要再求一次导,假设二阶导数 f″<0,那么说明函数在该点取得局部极大值;假设二阶导数 f″>0,则说明函数在该点取得局部极小值;假设 f″=0。则结果仍然是不确定的,我们就不得不再通过其它方式来确定函数的极值性。
假设要在多元函数中求极值点,方法与此相似。
作为一个演示样例。最好还是用一个三元函数 f=f(x,y,z) 来作为演示样例。首先要对函数中的每一个变量分别求偏导数,这会告诉我们该函数的极值点可能出如今哪里。即
接下来。要继续求二阶导数,此时包括混合偏导数的情况一共同拥有 9 个。假设用矩阵形式来表示的话就得到
这个矩阵就称为Hessian矩阵。当然上面所给出的不过一个三阶的Hessian矩阵。
稍作扩展。我们能够对一个在定义域内二阶连续可导的实值多元函数 f(x1,x2,⋯,xn) 定义其Hessian矩阵H例如以下
当一元函数的二阶导数等于 0 时,我们并不能确定函数在该点的极值性。相似地,面对Hessian矩阵,仍然存在无法断定多元函数极值性的的情况。即当Hessian矩阵的行列式为 0 时。我们无法确定函数能否取得极值。甚至我们可能会得到一个鞍点,也就是一个既非极大值也非极小值的的点。
基于Hessian矩阵,就能够推断多元函数的极值情况了。结论例如以下
- 假设是正定矩阵,则临界点处是一个局部极小值
- 假设是负定矩阵,则临界点处是一个局部极大值
- 假设是不定矩阵,则临界点处不是极值
怎样推断一个矩阵是否是正定的,负定的,还是不定的呢?一个最经常使用的方法就是顺序主子式。实对称矩阵为正定矩阵的充要条件是的各顺序主子式都大于零。当然这个判定方法的计算量比較大。
对于实二次型矩阵另一个判定方法:实二次型矩阵为正定二次型的充要条件是的矩阵的特征值全大于零。为负定二次型的充要条件是的矩阵的特征值全小于零,否则是不定的。
假设你对二次型的概念仍然不非常熟悉,这里也稍作补充。定义含有 n
个变量 x1,x2,⋯,xn 的二次齐次函数
为二次型。取 aij=aji,则 2aijxixj+ajixjxi,于是上式能够写成
更进一步,假设用矩阵对上式进行改写,则有
记
则二次型可记作 f=xTAx,当中 A为对称阵。
设有二次型 f=xTAx,假设对不论什么 x≠0,都有 f>0,则称 f 为正定二次型。并称对称矩阵 A 是正定的。假设对不论什么 x≠0,都有 f<0,则称 f 为负定二次型,并称对称矩阵 A 是负定的。
正定矩阵一定是非神秘的。对阵矩阵 A 为正定的充分必要条件是: A 的特征值全为正。由此还可得到以下这个推论:对阵矩阵 A 为正定的充分必要条件是 A 的各阶主子式都为正。
假设将正定矩阵的条件由 xTAx>0 弱化为 xTAx≥0。则称对称矩阵 A 是半正定的。
泰勒展开式与Hessian矩阵
主页君已经在之前的《图像处理中的数学原理具体解释》系列文章中介绍过泰勒展开式了。
但那个时候我们给出的是一元函数的泰勒公式,最好还是先来复习一下。
设一元函数 f(x) 在包括点x0的开区间 (a,b) 内具有 n+1 阶导数。则当 x∈(a,b) 时。有
当中
而且。ξ 在 x 和 x0之间,这被称作是拉格朗日余项。上式被称为 f(x) 的 n 阶泰勒公式。在不须要余项的精确表达式时。Rn(x) 能够记作 o[(x−x0)n],这被称为是皮亚诺余项。
如今我们把上面这个结论略微做一下推广,从而给出二元函数的泰勒公式。设二元函数 z=f(x,y) 在点 (x0,y0) 的某一邻域内连续且有直到 n+1 阶的连续偏导数,则有
当中,0<θ<1,记号
表示
记号
表示
一般地,记号
表示
当然。我们能够用一种更加简洁的形式来重写上面的和式,则有
当余项Rn(x,y)採用上面这样的形式时称为拉格朗日余项,假设採用皮亚诺余项,则二元函数的泰勒公式能够写成
特别低。对于一个多维向量 X, 以及在点 X0 的邻域内有连续二阶偏导数的多元函数 f(X) ,能够写出该函数在点 X0 处的(二阶)泰勒展开式
当中,o(∥X−X0∥2) 是高阶无穷小表示的皮亚诺余项。而 ∇2f(X0) 显然就是一个Hessian矩阵。所以上述式子也能够写成
我们已经知道对于 n 元函数 u=f(x1,x2,⋯,xn)在点 M 处有极值,则有
也就是说这是一个必要条件,而充分条件则由上一节中之结论给出 。