Jacobian相当于一阶导数,Hessian相当于二阶导数。 一维函数的导数的motivation是很明显的。二阶导数的零点就是一阶导数的极值点。 对于很多应用,我们不仅关心一阶导数的零点(也就是函数的极值点),也关心一阶导数的极值点,比如信号处理中,信号的一阶导数的极值点反映信号变化的最剧烈程度。极值点寻求在编程时不方便,不如找二阶导数的零点。  Jacobian对于标量函数f: Rn-> R1,实际是个向量,这个向量实际上就是函数的梯度gradient。gradient根据Cauchy-Swartz公式,指向的是在某处方向导数取极大值的方向。在二维图像处理中,可用gradient来检测灰度值的边缘。

 在Hessian 矩阵的n 个特征值中, 幅值最大的特征值对应的特征向量代表着P 点曲率最大的方向, 同样, 幅值最小的特征值对应的特征向量代表着P 点曲率最小的方向.H es s i a n 矩阵的这一几何意义有着广泛的用途, 如提取指纹图像中的脊线、二维医学图像的分割等.

理解Hessian矩阵

最近用到结构光条中心的精确提取,用Opencv写了一下Steger的算法,效果不错,没来得及体会算法,今天想了一下。核心思想是“线条中心是灰度一阶导数为0,二阶导数很大的点”。这样,二维的话,需要一些参数知道。包括线条的法线方向和二阶导数值。可以利用Hessian矩阵。Hessian矩阵是二阶矩阵,元素是二阶导数。这是一个二阶导数空间,把此矩阵映射到特征空间,最大特征值自然就是二阶导数极大值,(????????hessian矩阵的证明)对应的特征向量是此极大值的方向,等同于线条的法线方向。Steger法的聪明之处在于想到了用二阶导数极大值的方向作为线条的法线方向。

Hessian矩阵很好的解决了图像中如何求取二阶导数的最大值和方向 。图像中可以得到横纵方向的任意组合的二阶导数。可以证明,按照Hessian矩阵的方法排列的矩阵得到的特征值和方向就是所求。一个空间的特征空间就是最大的方向,很好的性质,而且Hessian矩阵貌似很有规律,证明应当不难。

角点探测

1,K—R法利用灰度梯度方向的变化率在边缘走向方向的投影,其值反映了角点的尖锐程度。

2,Harris法其实就是Steger提取光条中心的升级版,提取了点的中心。关键是把角点转化为亮点。用自相关模版对图像卷积,结果的变化率体现了本身灰度的变化率,于是角点转化为亮点。对结果矩阵,用Hessian矩阵,在两个正交方向上都有较大值的点就是亮点,即角点。

Hessian矩阵很好的解决了图像中如何求取二阶导数的最大值和方向 。图像中可以得到横纵方向的任意组合的二阶导数。可以证明,按照Hessian矩阵的方法排列的矩阵得到的特征值和方向就是所求。一个空间的特征空间就是最大的方向,很好的性质,而且Hessian矩阵貌似很有规律,证明应当不难。

事实上,不管是什么空间,都必须容纳和支持在其中发生的符合规则的运动(变换)。你会发现,在某种空间中往往会存在一种相对应的变换,比如拓扑空间中有拓扑变换,线性空间中有线性变换,仿射空间中有仿射变换,其实这些变换都只不过是对应空间中允许的运动形式而已。因此只要知道,“空间”是容纳运动的一个对象集合,而变换则规定了对应空间的运动。线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。简而言之,在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。是的,矩阵的本质是运动的描述。如果以后有人问你矩阵是什么,那么你就可以响亮地告诉他,矩阵的本质是运动的描述。

“矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。”理解这句话的关键,在于把“线性变换”与“线性变换的一个描述”区别开。一个是那个对象,一个是对那个对象的表述。同样的,对于一个线性变换,只要你选定一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。若矩阵A与B是同一个线性变换的两个不同的描述(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系),则一定能找到一个非奇异矩阵P,使得A、B之间满足这样的关系:A = P-1BP线性代数稍微熟一点的读者一下就看出来,这就是相似矩阵的定义。没错,所谓相似矩阵,就是同一个线性变换的不同的描述矩阵。而在上面式子里那个矩阵P,其实就是A矩阵所基于的基与B矩阵所基于的基这两组基之间的一个变换关系。看到这里,想记下一点东西,1,学数学要注意面对公理化的体系时的学习方法。2,用运动形象的理解矩阵。3,相似矩阵是一族对同一变换的基于不同基底的描述,也就是描述的运动是相同的,只是基于不同角度罢了(想想基底不就是“维”吗,可以理解成某个角度吧)。

我觉得研究生期间有两门数学课是必须要学的(必修的数值分析和概率论与数理统计之外):一门是泛函分析,另外一门是矩阵论。 
矩阵论的重要性工作时间长了就能慢慢体会到,但是大家一般对泛函分析不太了解,所以也就很难认识到其重要性了。事实上,泛函分析虽然很抽象,很难直接应用到工作当中去,但是可以帮助我们对很多问题有一个更本质的认识。举两个例子:说到采样,大家的第一反应肯定是一个词“2倍”(采样定理)。学得比较扎实的,可能还会把为什么是2倍解释清楚。但我对采样的理解是:采样实际上是在进行正交分解,采样值不过是在一组正交基下分解的系数。如果原信号属于该组正交基所张成的线性子空间,那么该信号就能无失真的恢复(满足采样定理)。学过信号处理的朋友,你知道这组正交基是什么吗?:)第二个例子是关于为什么傅里叶变换在线性系统理论中如此重要?答案可能五花八门,但我认为我的理解是比较深入的:原因是傅里叶基是所有线性时不变算子的特征向量(和本文联系起来了)。这句话解释起来比较费工夫,但是傅里叶变换能和特征向量联系起来,大家一定感觉很有趣吧。”

本人初学,许多东西都是学习借鉴的他人的博文

矩阵 Hessian相关推荐

  1. Maltab计算hessian矩阵 hessian function简单例子

    Hessian矩阵其实就是一个多元函数的所有二次偏导数构成的雅克比矩阵,matlab中求解的方法是对雅克比矩阵再求雅克比矩阵. 例如 syms x y z f=x^2+y^2+z^2+x*y*z; J ...

  2. 局部最优、梯度消失、鞍点、海森矩阵(Hessian Matric)、批梯度下降算法(btach批梯度下降法BGD、小批量梯度下降法Mini-Batch GD、随机梯度下降法SGD)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) BATCH_SIZE大小设置对训练耗时的影响:1.如果当设置B ...

  3. 最优化方法——梯度 Jacobian矩阵 Hessian矩阵

    一维f(x): 多维f(x):

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

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

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

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

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

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

  7. 牛顿法, Jacobian矩阵 和 Hessian矩阵

    牛顿法 主要有两方面的应用: 求方程的根: 求解最优化方法: 为什么要用牛顿法求方程的根? 问题很多,牛顿法 是什么?目前还没有讲清楚,没关系,先直观理解为 牛顿法是一种迭代求解方法(Newton童鞋 ...

  8. Jacobian 和Hessian矩阵

    雅克比(Jacobian matrix)矩阵:目标函数f为一个函数向量,f=(f1(x),f2(x),-fm(x))T,自变量x=(x1,x2,-,xn)T:函数向量f对x求梯度,结果为一个矩阵:行数 ...

  9. 从 Jacobian 矩阵、Hessian 矩阵到 Theano 实现

    T.grad(cost, wrt),一般接收两个参数,第一个参数表示需要求导的函数,放在深度学习的背景下就是代价函数,wrt(with respect to)表示代价函数所关于的参数(通俗地讲,就叫自 ...

最新文章

  1. 输入过欠压保护电路原理图
  2. linux添加vfat分区,浅析mkfs.vfat如何在arm开发板上创建fat32独立分区
  3. 【机器学习-数据科学】第二节:ipython开发环境搭建以及pandas快速入门
  4. 统计学(可汗学院视频62-81集笔记)
  5. 用js来实现那些数据结构01(数组篇01-数组的增删)
  6. 服务器维修测试工具,goss 简单快捷的服务器测试检验工具
  7. 几张图来好好理解Spring的循环依赖
  8. 沙迪克UTY编程基础操作流程
  9. 网站后台密码在服务器里怎么找,通过虚拟主机如何查看后台密码
  10. 唱歌腹式呼吸法的运用技巧
  11. 《人人都在说谎:赤裸裸的数据真相》读书笔记1
  12. [ACMMM2018]BeautyGAN: Instance-level Facial Makeup Transfer with DeepGenerative Adversarial Network
  13. 虚拟化介绍及Docker与传统虚拟化有什么区别
  14. 修改.srt格式字幕文件
  15. 又一神作。Alibaba“M8级”架构师总结微服务与事件驱动架构启蒙手册
  16. 大佬们当年是怎样熬过资本寒冬的?
  17. Android修改默认屏幕亮度
  18. 视频教程-项目2——在线无忧库存预警系统-Java
  19. myeclipse10.0用什么字体好看?
  20. 趁着周日我卷了 uni-app《uview 狠 优秀的UI框架》

热门文章

  1. Java--敲重点!JDK1.8 HashMap特性及底层数组+单链表+红黑树知识(建议收藏)
  2. sql外键需要输入吗_关于sql:为什么在没有连接的情况下可以联接,为什么需要主-外键关系?...
  3. opencv 直方图比较
  4. 从原先部分得到新字符串
  5. python import seaborn as sns 显示中文问题
  6. 利用OPC技术实现双网冗余系统的通讯驱动
  7. Mysql 计算两个时间差函数
  8. 【效率翻倍】vscode使用指南
  9. Aforge做图像处理
  10. java获取指定日期的所在周的第一天(周一)