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) 来作为示例。首先要对函数中的每个变量分别求偏导数,这会告诉我们该函数的极值点可能出现在哪里。即

∂f∂x=0∂f∂y=0∂f∂x=0

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

H=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f∂x∂x∂2f∂y∂x∂2f∂z∂x∂2f∂x∂y∂2f∂y∂y∂2f∂z∂y∂2f∂x∂z∂2f∂y∂z∂2f∂z∂z⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥

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

H=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂2f∂x21∂2f∂x2∂x1⋮∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x22⋮∂2f∂xn∂x2⋯⋯⋱⋯∂2f∂x1∂xn∂2f∂x2∂xn⋮∂2f∂x2n⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

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

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

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

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

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

f(x1,x2,⋯,xn)=a11x21+a22x22+⋯+annx2n+2a12x1x2+2a13x1x3+⋯+2an−1,nxn−1xn

为二次型。取  aij=aji ,则  2aijxixj+ajixjxi ,于是上式可以写成

f==a11x21+a12x1x2+⋯+a1nx1xn+a21x2x1+a22x22+⋯+a2nx2xn+⋯+an1xnx1+an2xnx2+⋯+annx2n∑i,j=1naijxixj

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

f===x1(a11x1+a12x2+⋯+a1nxn)+x2(a21x1+a22x2+⋯+a2nxn)+⋯+xn(an1x1+an2x2+⋯+annxn)(x1,x2,⋯,xn)⎡⎣⎢⎢⎢⎢a11x1+a12x2+⋯+a1nxna21x1+a22x2+⋯+a2nxn⋮an1x1+an2x2+⋯+annxn⎤⎦⎥⎥⎥⎥(x1,x2,⋯,xn)⎡⎣⎢⎢⎢⎢⎢a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥

A=⎡⎣⎢⎢⎢⎢⎢a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎤⎦⎥⎥⎥⎥⎥,x=⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥

则二次型可记作  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) 时,有

f(x)=f(x0)+f′(x0)(x−x0)+f′′(x0)2!(x−x0)2+⋯+f(n)(x0)n!(x−x0)n+Rn(x)

其中

Rn(x)=f(n+1)(ξ)(n+1)!(x−x0)n+1

并且, ξ  在  x  和  x0 之间,这被称作是拉格朗日余项。上式被称为  f(x)  的  n  阶泰勒公式。在不需要余项的精确表达式时, Rn(x)  可以记作  o[(x−x0)n] ,这被称为是皮亚诺余项。

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

f(x,y)=f(x0,y0)+[(x−x0)∂∂x+(y−y0)∂∂y]f(x0,y0)+12![(x−x0)∂∂x+(y−y0)∂∂y]2f(x0,y0)+⋯++1n![(x−x0)∂∂x+(y−y0)∂∂y]nf(x0,y0)+1(n+1)![(x−x0)∂∂x+(y−y0)∂∂y](n+1)f[x0+θ(x−x0),y0+θ(y−y0)]

其中, 0<θ<1 ,记号

[(x−x0)∂∂x+(y−y0)∂∂y]f(x0,y0)

表示

(x−x0)fx(x0,y0)+(y−y0)fy(x0,y0)

记号

[(x−x0)∂∂x+(y−y0)∂∂y]2f(x0,y0)

表示

(x−x0)2fxx(x0,y0)+2(x−x0)(y−y0)fxy(x0,y0)+(y−y0)2fyy(x0,y0)

一般地,记号

[(x−x0)∂∂x+(y−y0)∂∂y]mf(x0,y0)

表示

∑p=0mCpm(x−x0)p(y−y0)(m−p)∂mf∂xp∂y(m−p)∣∣∣(x0,y0)

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

f(x,y)=∑k=0n1k![(x−x0)∂∂x+(y−y0)∂∂y]kf(x0,y0)+1(n+1)![(x−x0)∂∂x+(y−y0)∂∂y](n+1)f[x0+θ(x−x0),y0+θ(y−y0)],(0<θ<1)

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

f(x,y)=∑k=0n1k![(x−x0)∂∂x+(y−y0)∂∂y]kf(x0,y0)+o(ρn)

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

f(X)=f(X0)+(X−X0)T∇f(X0)+12!(X−X0)T∇2f(X0)(X−X0)+o(∥X−X0∥2)

其中, o(∥X−X0∥2)  是高阶无穷小表示的皮亚诺余项。而  ∇2f(X0)  显然就是一个Hessian矩阵。所以上述式子也可以写成

f(X)=f(X0)+(X−X0)T∇f(X0)+12(X−X0)TH(X0)(X−X0)+o(∥X−X0∥2)

我们已经知道对于 n 元函数 u=f(x1,x2,⋯,xn)在点 M 处有极值,则有

∇f(M)={∂f∂x1,∂f∂x2,⋯,∂f∂xn}M=0

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

Hessian矩阵与多元函数极值相关推荐

  1. matlab 海塞矩阵 多元函数求极值,基于Hessian矩阵的多元函数极值问题.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp电子工程/通信技术&nbsp>&nbsp无线电电子学/电信技术 基于Hessian矩阵的多元 ...

  2. 极限和连续+偏导+方向导数+可微+梯度+链式法则+hessian矩阵

    文章目录 前言 一.极限和连续 二.偏导数 三.方向导数 四.可微 五.梯度 六.链式法则 七.Hessian矩阵 前言 多元函数 y对某一个变量的导数是偏导数: 偏导数的结果可以推广到任意方向,也就 ...

  3. 多元函数极值、Hessian矩阵、正定矩阵

    这篇笔记,来自我对支持向量机(SVM)算法原理的学习.支持向量机算法最终归结为二次规划问题,研究二次规划问题,必须先从一般的最优化问题开始分析.如无特别声明,本文最优化问题特指寻求目标函数最小值. 一 ...

  4. python sympy求多元函数的梯度、Hessian矩阵

    1 求梯度 sympy实际上提供了求梯度的方法,但个人认为不是很直观,求出的是∂f∂xi⃗+∂f∂yj⃗+∂f∂zk⃗\frac{\partial f}{\partial x} \vec {i}+\f ...

  5. 矩阵求多元函数的通解_Hessian矩阵

    黑塞矩阵(Hessian Matrix),是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率.黑塞矩阵常用于牛顿法解决优化问题,利用黑塞矩阵可判定多元函数的极值问题.在工程实际问题的优化设计中 ...

  6. Steger算法(Line_Gauss)-光条中心线提取(基于Hessian矩阵)

    Steger算法(Line_Gauss)-光条中心线提取(基于Hessian矩阵) 算法背景介绍 Hessian 矩阵与泰勒多项式 关于求t 导数与中心点.亚像素点 高斯函数作用 文献 算法背景介绍 ...

  7. hessian矩阵特征值

    研究hessian矩阵去噪的过程中想了解下hessian矩阵特征值的意义及用法 Hessian矩阵的特征值:就是形容其在该点附近特征向量方向的凹凸性,特征值越大,凸性越强. 对于二维图像的某点的hes ...

  8. 矩阵的二次型,矩阵的迹、正定矩阵、Hessian矩阵、实对称

    一.二次型: 1.1 定义 含有nnn个变量x1,x2,-,xnx_1,x_2,\dots,x_nx1​,x2​,-,xn​的二次齐次函数(如果变量乘以一个系数,则新函数会是原函数再乘上系数的某次方倍 ...

  9. 多维梯度法(Multidimensional Gradient Methods)求多元函数极值或局部最大值

    多维梯度法 利用优化函数的导数信息来指导搜索 与直接搜索方法相比,更快地找到解决方案 需要对解决方案进行良好的初步估计 目标函数需要是可微的 梯度法 首先介绍一下梯度法. 梯度是一个向量算子,用▽表示 ...

最新文章

  1. 对话功率谱与自相关函数
  2. 【云计算】使用nsenter进入Docker容器进行调试
  3. docker查询占用端口号服务命令
  4. 神策数据:围绕跨境电商“人货场”,数据如何助力品牌乘风出海?
  5. 计算机安全知识课堂导入设计,“计算机安全与防护教学设计”教学设计.doc
  6. java解析时已到达文件结尾_IO流读取到文件末尾继续读取
  7. html5游戏制作入门系列教程(三)
  8. Delphi版 ArcEngine Mapcontrol与PageControl同步
  9. Java 浅析内部类
  10. HDU 1422 重温世界杯
  11. 2020年中国旅游行业网络关注度分析报告
  12. Ext4文件系统架构分析
  13. 台式计算机输入设备,简述常用的输入设备和输出设备有哪些 – 手机爱问
  14. 刚申请的博客,就发一个老师让做的“一分钟打动面试官”作业做为纪念吧!!!...
  15. 专访深度学习之父Geoffrey Hinton:人工智能的向量之舞
  16. 智慧水务大数据平台-智慧水务建设方案
  17. 学生管理系统--【Java+MySQL】--数据库系统概论综合性实验
  18. 百度之星资格赛1003 度度熊与邪恶大魔王
  19. shell 编程arry数组
  20. 响应式设计:理解设备像素,CSS像素和屏幕分辨率

热门文章

  1. 单点登录 cas 设置回调地址_cas客户端流程详解(源码解析)单点登录
  2. Javascript模块化编程(二):AMD规范
  3. 读书笔记3 5G与商业
  4. java毕业设计成品源码网站基于JSP的网上订餐管理系统|餐饮就餐订餐餐厅
  5. C++后续:QT学习(Qt概述,创建QT项目)
  6. 网络安全自学篇之Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
  7. windows11 家庭版找不到gpedit.msc解决办法
  8. html5w3cschool帮助文档,W3C school HTML教程 CHM帮助
  9. 微机原理与接口技术基本概念
  10. 论媒体融合之内容融合