【矩阵学习】Jacobian矩阵和Hessian矩阵

【矩阵学习】Jacobian矩阵和Hessian矩阵矩阵学习 Jacobian 矩阵和 Hessian 矩阵 Jacobian 矩阵 Jacobian 行列式功能快捷键合理的创建标题 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右 SmartyPants 创建一个自定义列表如何创建一个注脚注释也是必不可少的 KaTeX 数学公式新的甘特图功能 丰富你的文章 UML 图表 FLowchar

Jacobian 矩阵

在向量分析中, 雅可比矩阵是一阶(first-order)偏导数(partial derivatives)以一定方式排列成的矩阵, 其行列式称为雅可比行列式。

如果 p p p R n R^{n} Rn 中的一点, f \bm{f} f p p p 点可微,那么这一点的导数可由 J f ( p ) \bm{J}_\bm{f}(p) Jf(p) 给出。在这种情况下, J f ( p ) \bm{J}_\bm{f}(p) Jf(p) f f f 在接近点 p p p 处的最优线性近似(其中, x x x 逼近 p p p ∣ ∣ x − p ∣ ∣ ||x-p|| xp x x x p p p 之间的距离。):

deviateJ

对比标量函数的一阶泰勒展开公式,可见梯度和 Jacobian 都是一阶导数,梯度是(多变量的)标量函数的一阶导数,而 Jacobian 是(多变量的)矢量函数的一阶导数。标量函数的一阶泰勒展开式如下:

deviate

Inverse 反向
根据反函数定理,一个可逆函数的 Jacobian 矩阵的逆矩阵就是该函数的逆函数的 Jacobian 矩阵。也就是说,假设 f : R n → R m \bm{f}:R^{n} \rightarrow R^{m} f:RnRm 的 Jacobian 连续并且在点 p p p 是非奇异的,那么 f f f p p p 点邻域可逆,可表示为:
J

critical points 驻点 / 临界点
f : R n → R m \bm{f}:R^{n} \rightarrow R^{m} f:RnRm 可微,使得 Jacobian 矩阵的秩非最大值的点称为 f f f 的驻点或临界点。也就是说,假设 k k k 是 Jacobian 矩阵秩的最大值,若某点处所有的 k k k 阶余子式都为零,则该点为驻点或临界点。








Jacobian 行列式

当 Jacobian 矩阵 m = n m=n m=n 时,那么它的行列式则称为 Jacobian 行列式。

在某个给定点 p p p 的 Jacobian 行列式提供了在 p p p 点邻域,函数 f f f 的相关重要信息。例如:

  1. 反函数定理。如果连续可微函数 f f f 在点 p p p 的 Jacobian 行列式非零,那么它在该点附近具有反函数。
  2. 如果点 p p p 的 Jacobian 行列式是正数, 则函数 f f f 在点 p p p 的取向不变;如果是负数,则的取向相反。从 Jacobian 行列式的绝对值,就可以知道函数 f f f 在点 p p p 的缩放因子。(这也是 Jacobian 行列式运用到换元积分法中的原因)

Hessian 矩阵

在数学中, 海森矩阵( Hessian matrix 或 Hessian )是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵。海森矩阵被应用于牛顿法解决的大规模优化问题。

Hessian

也就是, H i j = ∂ 2 f ∂ x i ∂ x j \bm{H}_{ij}= \frac{\partial^{2} f}{\partial \bm{x}_{i}\partial \bm{x}_{j}} Hij=xixj2f,亦可表示为 H ( f ( x ) ) = J ( ∇ f ( x ) ) T \bm{H}(f(\bm{x}))=\bm{J}(\nabla f(\bm{x}))^{T} H(f(x))=J(f(x))T

  1. Hessian 矩阵是正定矩阵时(特征值全为正数),则 f f f 在点 x x x 处取到极小值;
  2. Hessian 矩阵是负定矩阵时(特征值全为负数),则 f f f 在点 x x x 处取到极大值;
  3. Hessian 矩阵是不定矩阵时(特征值有正有负),则 x x x f f f 的鞍点;
  4. 否则,无法确定,需要利用其他方法判断。

Hessian 在牛顿法中的应用

一般来说,主要有两个方面:1. 求解方程的根;2. 最优化

求解方程的根
Hessian 矩阵是泰勒展开的二次项系数:

在这里插入图片描述
上式中,当且仅当 Δ x \Delta x Δx 无限趋近于0时, f ( x + Δ x ) = f ( x ) f(x+\Delta x) = f(x) f(x+Δx)=f(x),约去这两项,并对余项式 ∇ f ( x ) T Δ x + 1 2 Δ x T H ( x ) Δ x = 0 \nabla f(x)^{T}\Delta x +\frac{1}{2}\Delta x^{T}H(x)\Delta x = 0 f(x)TΔx+21ΔxTH(x)Δx=0,对 Δ x \Delta x Δx 求导,则有:
∇ f ( x ) + H ( x ) Δ x = 0 \nabla f(x)+H(x)\Delta x = 0 f(x)+H(x)Δx=0
求解:
Δ x = − [ H ( x ) ] − 1 ∇ f ( x ) \Delta x = -[H(x)]^{-1}\nabla f(x) Δx=[H(x)]1f(x)
得到迭代公式:
x n + 1 = x n − [ H ( x n ) ] − 1 ∇ f ( x n ) x_{n+1} = x_{n}-[H(x_{n})]^{-1}\nabla f(x_{n}) xn+1=xn[H(xn)]1f(xn)
以上,为高维情况下的牛顿迭代公式推导。二维的情况也可同理推导,将上述过程中 “ ∇ f \nabla f f” 替换为 “ f ′ f’ f ”,“ H H H” 替换为 “ f ′ ′ f” f ” 即可。






牛顿法可应用于未知求根公式或求根公式很复杂的方程通过迭代求解。例如,求解方程 f ( x ) = 0 f(x) = 0 f(x)=0,通过泰勒公式展开,可知方程近似于 f ( x 0 ) + ( x − x 0 ) f ′ ( x 0 ) = 0 f(x_{0})+(x-x_{0})f'(x_{0}) = 0 f(x0)+(xx0)f(x0)=0,进而可推出迭代公式 x n + 1 = x n − f ( x n ) f ′ ( x n ) x_{n+1} = x_{n}-\frac{f(x_{n})}{f'(x_{n})} xn+1=xnf(xn)f(xn),这个子式必然在 f ( x ∗ ) = 0 f(x^{*}) = 0 f(x)=0 处收敛。这个过程可参考下图:
在这里插入图片描述

最优化



线性最优化可以使用单纯形法(或称不动点算法)求解, 而对于非线性优化问题, 牛顿法提供了一种求解的办法。

在最优化问题中,牛顿法梯度下降法求解需要的迭代次数更少

如下图,红色的是牛顿法的迭代路径,绿色的是梯度下降法的迭代路径。从几何的角度上说,牛顿法就是用一个二次曲面去拟合当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面。通常情况下,前者拟合效果更好,因此迭代次数也更少。简单来说,牛顿法在选择方向时,不仅仅考虑了下降坡度,还考虑了下一步的下降坡度;比梯度下降法,多考虑了一步。

Newton&Gradient
但是,牛顿法也有着它的缺点:

  1. 对目标函数有严格的要求,必须有连续的一阶、二阶偏导数,Hessian 矩阵必须是正定的。
  2. 计算量大,除计算梯度外,还需要计算二阶偏导数及其逆矩阵。

因此,衍生了许多算法,如拟牛顿法(用一个正定矩阵代替 Hessian 矩阵的逆矩阵)、DFP算法(对迭代过程中的 Hessian 矩阵作近似)和BFGS算法等,基本介绍可参考5.


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218235.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:44
下一篇 2026年3月18日 上午7:45


相关推荐

  • SSM 整合详细步骤

    SSM 整合详细步骤SSM整合第一章环境准备1、创建数据库和表结构createdatabasessm;createtableaccount(idintprimarykeyauto_increment,namevarchar(100),moneydouble(7,2),);2、创建Maven工程创建ssm_parent父工程(打包方式选择pom,必须的)创建ssm_web子模块(打包方式是war包)创建ssm_service子模块(打包方式是jar包)创建ssm_dao子模

    2022年5月13日
    36
  • vue获取上传文件路径_vue中文件上传及接收「建议收藏」

    vue获取上传文件路径_vue中文件上传及接收「建议收藏」准备:前端:vue环境+axios+elemen-ui后端:node.jsmulter前端代码://引入axiosimportaxiosfrom’axios’;//获取用户信息getUserInfo(){//发送请求获取用户信息getInfo().then(res=>{//接收数据let{data}=res;this.userInfo=data[0…

    2022年8月15日
    6
  • TextField的高宽autosize[通俗易懂]

    TextField的高宽autosize[通俗易懂]vart_name:TextField=newTextField;trace(t_name.height);trace(t_name.width);这样打印出来的高度都是100PX,是系统默认的。如果不设置可能会让父容器宽高变大,遮挡住别的窗口的鼠标事件。可以简单地使用tf.autoSize=TextFieldAutoSize.LEFT;来解决这样宽高就会根据文本内容大小来…

    2022年5月15日
    42
  • java关于日期的运算等处理方法

    java关于日期的运算等处理方法

    2021年4月30日
    153
  • [Android 源码] Android源码下载「建议收藏」

    [Android 源码] Android源码下载「建议收藏」Android源码下载为了能够顺利的下载Android的源码,同时也为了避免在网络上再次搜寻如何下载源码的麻烦,我把下载过程记录在这篇文档中。官网中也有详细的介绍:http://source.andr

    2022年8月5日
    6
  • 推荐几个SQL在线学习网站

    推荐几个SQL在线学习网站适合的群体:SQL初学者,想要复习一下SQL基础知识的朋友,能无障碍阅读基础英文的朋友。SQL算是声明式的数据操纵语言,基本上感觉是对着数据库管理系统在喊:给我什么样的数据!似乎大部分人都不认为SQL十分困难。的确,入门十分简单。这里整理推荐几个我自己学习时用过的在线学习网站,可以帮助初学者快速入门SQL,在交互式的环境里学习,不用自己劳神搭建一个数据库,也不用担心损坏别人的数据库,就可…

    2022年8月20日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号