文章目录

  • 黑塞矩阵与多元函数的极值
  • 泰勒展开及海塞矩阵
  • 海塞矩阵的意义
  • 海塞矩阵在图像处理中的应用
  • 基于尺度空间的Hessian简化算法

黑塞矩阵与多元函数的极值

一元函数求极值,例如函数:

通常先求其一阶导数,根据费马定理极值点处的一阶导数一定等于0。但这仅仅是一个必要条件而非充分条件。对于f(x)=x2 来说,函数的确在一阶导数为0点取得了极值,但对于f(x)=x3 来说,显然只检查一阶导数是不能下此结论的。
这时需要再求一次导,如果二阶导数f’’ (x)<0,那么说明函数在该点取得局部极大值;如果二阶导数f’’ (x)>0,则说明函数在该点取得局部极小值;如果f’’ (x)=0,则结果仍然是不确定的,就不得不通过其它方式来确定函数的极值性。
如果要在多元函数中求极值点,方法与此类似,。以f=f(x,y,z)来作为示例。首先,对于函数中的每个变量分别求偏导数,这时可知函数的极值点可能出现在哪里,即

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

这个矩阵就称为黑塞矩阵(Hessian)。当然上面给出的仅仅是一个三阶的Hessian矩阵。其它的海塞矩阵与此类似。
当一元函数的二阶导数等于0时,并不能确定函数在该点的极值性。类似的,面对Hessian矩阵,仍然存在无法判定多元函数极值性的情况,即当Hessian矩阵的行列式为0时,无法确定函数是否能取得极值。甚至可能会得到一个鞍点,也就是一个即非极大值也非极小值的点。
基于Hessian矩阵,可以判断多元函数的极值情况,结论如下:
(1)如果是正定矩阵,则临界点处是一个局部极小值
(2)如果是负定矩阵,则临界点处是一个局部极大值
(3)如果是不定矩阵,则临界点处不是极值
如何判断一个矩阵是否是正定的,负定的,还是不定的。一个最常用的方法就是借助其顺序主子式。实对称矩阵为正定矩阵的充要条件是各顺序主子式都大于0。当然这个判定方法的计算量比较大。对于实二次型矩阵还有一个判定方法:实二次型矩阵为正定二次型的充要条件是矩阵的特征值全大于0。为负定二次型的充要条件是矩阵的特征值全小于0,否则是不定的。

泰勒展开及海塞矩阵

将一个一元函数f(x)在x0 处进行泰勒展开,可以得到:

余项为皮亚诺余项。
其中的二阶导部分映射到二维以及多维空间就是Hessain矩阵。在二维图像中,令f(x,y)表示图像像素值为关于坐标(x,y)的函数,那么把f(x+dx,y+dy)在f(x0 ,y)处展开,可得到:

将这个式子用矩阵表示,并且舍去余项,则式子会变成:

上面等式右边的第三项中的第二个矩阵就是二维空间中的海塞矩阵了,从而可以得出,海塞矩阵就是空间中一点处的二阶导数。

海塞矩阵的意义

二阶导数表示导数的变化规律,如果函数是一条曲线,且曲线存在二阶导数,那么二阶导数表示的是曲线的曲率,曲率越大,曲线越弯曲。以此类推,多维空间中的一个点的二阶导数就表示该点梯度下降的快慢。以二维图像为例,一阶导数是图像灰度的变化即灰度梯度,二阶导数就是灰度梯度变化程度,二阶导数越大灰度变化越不具有线性。(即灰度改变越大,不是线性的梯度。)
在二维图像中,海塞矩阵是二维正定矩阵,有两个特征值和对应的两个特征向量。两个特征值表示出了图像在两个特征向量所指方向上图像变化的各向异性。如果利用特征向量和特征值构成一个椭圆,这个椭圆就标注出了图像变化的各向异性。
在二维图像中,什么样的结构最具各向同性,又是什么样的结构各向异性更强的。很显然,圆具有最强的各向同性,线性结构越强的结构越具有各向异性。
且各特征值应具有以下特性:

特征值1 特征值2 图像特征
-High -High 斑点结构(前景为亮)
+High +High 斑点结构(前景为暗)
Low -High 线性结构(前景为亮)
Low +High 线性结构(前景为暗)

海塞矩阵在图像处理中的应用

上文提到的矩阵的特征值与特征向量所构成的椭圆表现出了图像的各向异性,这种各向异性可以在图像处理中进行应用。在二维图像中,图像中的点性结构具有各向同性,而线性结构具有各相异性。因此可以利用Hessian矩阵对图像中的线性结构进行增强,滤去点状结构和噪声点。同样也可用于找出图像中点状信息,滤除其它信息。
在使用Hessian矩阵时,不需要将图像进行泰勒展开,只需直接求矩阵中的元素即可。一般对二维图像求二阶导方法如下:

但是这种方法鲁棒性很差,容易受到图像中局部信号的干扰,甚至可以说,这种求导方式是存在争议的。因为这一点的二阶导数也可以采用如下方法表示:

除以上两种表示方法外,二阶导数也可以用其它方式表示,而且往往不同的方法求得的值不同,因为这种方法只把包含自身在内的三个点的信息囊括了进去,信息量不足。因此,根据线性尺度空间理论(LOG),对一个函数求导,等于函数与高斯函数导数的卷积。如下所示:

由于高斯模板可以将周围一距形范围内的所有点的信息都包含进来,这样就不会有误差。所以利用图像求Hessian矩阵中的元素时,将图像与高斯函数的二阶导数做卷积即可。即:

在编写程序时,只需事先将图像分别与三个模板进行卷积,生成三种偏导数的图,然后根据需要索引对应位置的偏导数即可。
对图像进行处理后,图像中大部分的线性结构都会被增强,但是一些细微结构并未被增强太多,而且一些粗的结构中也出现了空洞,这与求导窗口的大小有关,求导窗口太小,很多粗的结构中会出现中空的现象,因为中心区域被认为是点结构了。求导窗口太大,就容易出现细微结构丢失现象。此外高斯模板的方差选取也影响了偏导数的大小。其实这种方式是使用一个方差为s的高斯核的二阶导数生成一个探测核,用于测量导数方向范围内(-s,s)内外区域之间的对比度。

但是同一幅图像中,线性结构的粗细肯定是不同的,同样窗口的大小是无法全部适用的,针对这个问题,可以使用多模板的方法。即对一个点用多种尺度的高斯模板及逆行卷积,然后选择各向异性最强的结果作为该点的输出。
根据海塞矩阵,还可以确定一张图像中的角点部分,即前面表格中提到的两个特征值的绝对值都较大的情况。这就是Harris角点检测的思想。

基于尺度空间的Hessian简化算法

对于二维图像I的Hessian矩阵描述每个像素在主方向上的二维导数为:

根据尺度空间理论,二阶导数可以通过图像与高斯函数的卷积获得,例如在点(x,y)处有:

根据定义求二阶矩阵的特征值,Hessian矩阵的特征值的解,令

并且根据图像的特性可以得到:

代入以上方程得到Hessian的特征值解:

Hessian矩阵(黑塞矩阵)相关推荐

  1. 【机器学习中的矩阵求导】(六)Jacobian矩阵和Hessian矩阵

    学习总结 (0)回顾矩阵向量化,和 克罗内克积的主要运算法则. (1)梯度向量是雅克比矩阵的特例. (2)Hessian矩阵是梯度向量g(x)对自变量x的Jacobian矩阵,描述了函数的局部曲率. ...

  2. Hessian矩阵正定与函数凹凸性的关系

    1. 从矩阵变换的角度 首先半正定矩阵定义为:  其中X 是向量,M 是变换矩阵 我们换一个思路看这个问题,矩阵变换中,代表对向量 X进行变换,我们假设变换后的向量为Y,记做.于是半正定矩阵可以写成: ...

  3. 特征提取(二)Hessian矩阵

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

  4. Hessian矩阵在XGBoost算法的应用小结

    来源:机器学习算法那些事本文约1100字,建议阅读5分钟 本文深入浅出的总结了Hessian矩阵在XGboost算法中的两种应用,即权重分位点算法和样本权重和算法 . 前言 Hessian矩阵最常见的 ...

  5. 神经网络---Hessian矩阵

    2019独角兽企业重金招聘Python工程师标准>>> 对角近似 外积近似 Hessian矩阵的逆矩阵 有限差 Hessian矩阵的精确计算 Hessian矩阵的快速乘法 转载于:h ...

  6. Jacobian矩阵和Hessian矩阵的理解

    深度学习中梯度向量的计算,Jacobian矩阵和Hessian矩阵是基础的知识点. 求微分其实就是线性化,导数其实就是线性空间之间的线性变换,Jaocibian矩阵本质上就是导数. 比如,映射在处的导 ...

  7. 如何理解神经网络优化中Momentem能够缓解hessian矩阵病态的问题

    如何理解神经网络优化中Momentem能够缓解hessian矩阵病态的问题? 1.首先介绍一下,矩阵的病态问题 矩阵病态主要是因为矩阵向量之间相关性太大,在二维上说就是矩阵向量之间的夹角太小,导致这两 ...

  8. 三维重建4:Jacobian矩阵和Hessian矩阵

    在使用BA平差之前,对每一个观测方程,得到一个代价函数.对多个路标,会产生一个多个代价函数的和的形式,对这个和进行最小二乘法进行求解,使用优化方法.相当于同时对相机位姿和路标进行调整,这就是所谓的BA ...

  9. 牛顿法中为何出现hessian矩阵

    牛顿法包含两种用途: 1.函数为0时的解 2.函数极值时的解 对于1有: f′(x0)=f(x0)−0x−x0f'(x_0)=\frac{f(x_0)-0}{x-x_0}f′(x0​)=x−x0​f( ...

  10. 如何计算一个神经网络在使用momentum时的hessian矩阵(论文调研)

    根据[4]中的说法,"Though results on the Hessian of individual layers were not included in this study&q ...

最新文章

  1. .net网格怎么把值插入指定列表_Python列表有什么内置函数可以使用,怎么使用这些函数...
  2. Proteus仿真STM32F103R6微控制器的EXTI
  3. java switch 值_Java switch多值匹配操作详解
  4. PAT (Advanced Level) 1017. Queueing at Bank (25)
  5. rem自适应布局-移动端自适应必备:flexible.js
  6. 云栖独栋别墅_云栖没有玫瑰
  7. [转]使用T4模板批量生成代码
  8. Mybatis-Spring扫描路径有重叠导致Invalid bound statement(not found)问题
  9. jmeter正则表达式提取器使用
  10. Golang 大杀器之性能剖析 PProf
  11. 【LA 2572】Viva Confetti(圆与圆弧覆盖+精度问题)
  12. 基于java网上购物系统论文,基于Java的网上购物系统的设计与实现_毕业设计(论文).doc...
  13. 佳能Canon imageCLASS MF742Cdw 一体机驱动
  14. 电子电路学习笔记(15)——晶振
  15. 合肥有哪些不错的 IT 公司?
  16. Qt---随机数生成器
  17. 清华大学计算机吴教授,清华大学计算机系教授吴文虎到我校讲学
  18. Sequence (矩阵快速幂+快速幂+费马小定理)
  19. 洛谷 P4147 玉蟾宫
  20. 组件‘mscomctl.ocx‘或它的一个依赖项没有正确注册:一个文件丢失或无效

热门文章

  1. 三茗硬盘保护系统安装Linux,重装windows系统而不影响linux引导的方法
  2. S40后台运行权限破解详尽图文
  3. 花式沉默Defender
  4. 计算机硬件参数及性能判断,小菜硬件杂谈 如何从显卡型号判断性能
  5. Win7连接蓝牙耳机(千月蓝牙激活码分享)无需破解软件
  6. 让调查问卷数据告诉您更多意义的EnableQ在线问卷调查引擎V5.0发布
  7. winform给textBox控件设置默认值
  8. 卸载重装Netmeeting
  9. linux windows 区别
  10. Douphp cms通杀漏洞(小宇特详解)