搜索
首页科技周边人工智能什么是Jacobian Matrix?

您是否曾经考虑过如何由Google Maps确定到达位置的最短路线?或者您如何自动移动方向盘会在旋转时会影响车辆的运动?好吧,这一切都归结为雅各布矩阵。 Jacobian矩阵是向量函数的部分衍生物的矩阵。雅各布球形坐标的转化是雅各布最常用的地方。它解决了雅各布球形坐标的思想。在本文中,我们将讨论Jacobian矩阵,其公式,决定因素以及我们如何在日常生活中使用它的数学概念。

目录

  • 什么是雅各布?
  • 什么是雅各布矩阵?
  • 雅各布矩阵的数学基础
    • 向量值函数和多变量演算
    • 符号和尺寸
    • 几何解释
    • Jacobian和Jacobian功能的可逆性
  • 雅各布的特性
  • 计算雅各布矩阵
    • 雅各布基质的分析推导
    • 雅各比矩阵的数值近似
    • 雅各布矩阵的自动差异
  • 使用Python计算Jacobian矩阵和决定因素
  • Jacobian Matrix的应用
  • 结论
  • 常见问题

什么是雅各布?

Jacobian矩阵及其决定因素是针对具有相同数量变量的有限数量的函数定义的,称为“ Jacobian”。它告诉我们一组变量的变化如何影响不同空间之间映射的函数的另一组变量。

在这种情况下,在每行中都可以找到有关变量的相同函数的第一个部分导数。矩阵可以是两种形式 - 一个平方矩阵,具有相等数量的行和列数,也可以是具有不均数的行和列的矩形矩阵。

示例:当徒步穿越一条颠倒小径的山上时,通常会有一个方向和一定程度的陡峭程度。不管您在山上的位置,雅各布人都像是让您的向导告诉您您的攀登程度有多陡峭,您的前进方式是多么陡峭。

另请阅读:机器学习背后的数学 - 您需要知道的核心概念

什么是雅各布矩阵?

现在,Jacobian矩阵是由部分衍生物组成的矩阵,该基质显示了通过函数将输入向量向量向量转换为输出向量的矩阵。它解释了每个输出相对于每个输入变量的变化。对于具有M组分总数和N变量的函数f:ℝⁿ→ℝᵐ,雅各布公式可以表示为:

符号雅各布矩阵:
矩阵([[[2*x,-1],[2*y,2*x]])

Jacobian点(2,3):
矩阵([[[4,-1],[6,4]])

雅各布(符号)的决定因素:
4*x ** 2 2*y

点(2,3)的决定因素:
22

点(2,3)的数字雅各布:

 <code>[[ 4.000001 -1. ] [ 6. 4. ]]</code>

在这里,Jacobian公式将在一个点附近的函数中给出局部线性近似,并解释函数如何伸展,旋转和转换空间。

雅各布矩阵的数学基础

为了完全了解雅各布矩阵,我们将讨论数学的不同基础:

1。矢量值函数和多变量演算

它基本上是指映射从一个空间指向另一个空间的函数。这些功能具有与多个输入相对应的多个输出。这样的功能赋予了现实生活系统(如流体动力学)的基础结构。

Jacobian结合了线性代数和多变量的演算。标量导数告诉我们单变量函数的变化率。它还解释了功能的变化速率,具有以矩阵格式显示的多个输入和输出。

另请阅读:在开始深度学习旅程时应该知道的12个矩阵操作

2。符号和尺寸

雅各布矩阵的结构和格式解释了有关转换表示的重要信息。对于函数f:ℝⁿ到ℝᵐ,其中'n'代表输入和“ m”输出,jacobian是'm'by'n'矩阵。 Jacobian矩阵的条目表示jᵢⱼ=∂fᵢ/∂xⱼ,I'th输出函数的表示相对于j'th输入变量发生了变化。

因此,矩阵的尺寸会影响转换。从3D空间到2D空间,Jacobian的行将等于输出等于输入,这导致2*3矩阵。

3。几何解释

雅各布的功能行为还用代数定义解释了视觉见解。以下解释有助于我们确定雅各布矩阵如何用几何术语描述函数的局部行为。

什么是Jacobian Matrix?

  • 局部线性变换:雅各比式在点附近赋予该函数最线性近似。它解释了一个无限小的输入点映射到输出映射的区域。
  • 切线近似: Jacobian将切线向量从输入空间转换为输出空间,相反。当被认为是表面时,它会在局部描述这些表面如何相互转动。

4。雅各布功能的可逆性

雅各布语与可逆性之间的关系证明了必要的信息。它在特定点提供了对功能的局部行为的见解。

什么是Jacobian Matrix?

  • | J | > 0:局部方向由函数保留。
  • | J |
  • | J | = 0:特定关键点的可逆性丢失了

据说,每当雅各布是非单一的,其决定因素不等于零,据说在邻里的函数是可逆的。然后,与此点一致,我们将具有我们的逆函数定理。但是,每当雅各布决定因素变为零时,输出域就会发生折叠,压实或定位。

另请阅读:数据科学家的综合初学者指南

雅各布的特性

现在,让我们了解雅各布的属性。

  1. 链条规则:对于复合函数,可以将雅各布人乘以获得组成的雅各布。
  2. 方向衍生物:雅各布式可用于计算沿任何方向的定向衍生物。
  3. 线性近似:函数接近任何点的近似值由F(xΔX)≈f(x)j(x)·Δx给出。

计算雅各布矩阵

现在,我们将看到三种计算Jacobian矩阵的方法和Jacobian球形坐标的转换 - 分析推导,数值近似和自动分化。

雅各布基质的分析推导

这是依赖于部分衍生物的直接计算来产生雅各布矩阵的经典方式,从而提供了对转换结构的见解。它是通过系统区分每个组件功能相对于每个输入变量来实现的。

让我们考虑一个示例,其中vector函数f:ℝⁿ→ℝᵐ具有组件f₁,f₂,…,fₘ和变量x₁,x₂,…,xₙ使用每个j = 1,2的部分导数∂fi/∂xj计算。

 j(x)= [<br> ∂f₁/∂x₁∂f₁/∂x₂...∂f₁/∂xₙ<br> ∂f₂/∂x₁∂f₂/∂x₂...∂f₂/∂xₙ<br> ... ... ... ... ...<br> ∂fₘ/∂x₁∂fₘ/∂x₂...∂fₘ/∂xₙ<br>这是给出的<br><br>示例:f(x,y)=(x²-y,2xy),评估的部分衍生物为:<br><br> ∂f₁/∂x= 2x<br> ∂f₁/∂y= -1<br> ∂f₂/∂x= 2y<br> ∂f₂/∂y= 2x<br><br>因此,我们可以说雅各布矩阵观察到:<br><br> j(x,y)= [2x -1<br> 2y 2x]

通过这种方法,我们可以看到确切的结果。但是,在一次处理多个变量的同时,情况可能会变得复杂,或者在无法进行计算的情况下进行复杂的功能。

雅各比矩阵的数值近似

每当分析推导要么太笨重而无法执行,或者当功能缺乏形式表达式时,数值方法就会提供实用的替代解决方案,这些解决方案使用有限的差异来计算部分衍生物。两种主要有限差异方法是:

  1. 向前差:
 ∂fi/∂xⱼ≈[f(x₁,...,xⱼh,...,xₙ)
  1. 较高准确性的中心差异
∂fi/∂xⱼ≈[f(x₁,...,xⱼh,...,xₙ)

在这里,h =小步骤,通常为10次,以达到双精度。

这就是选择正确的步骤大小。太大带​​来了近似错误,而小引起的数值不稳定,由于浮点限制。使用自适应步骤尺寸或理查森外推的高级技术可以进一步提高准确性。

雅各布矩阵的自动差异

将分析精度与计算自动化结合的自动差异化在列表中非常高。它与数值方法不同,即AD计算精确的导数而不是近似它们,从而避免了离散化错误。自动分化的基础原则是:

  1. 链条规则的应用:它系统地将链条规则应用于构成功能的基本操作。
  2. 计算图的表示:该函数被分解为具有已知衍生物的原始操作中的指向图。
  3. 向前和反向节点:正向模式从输入到输出传播衍生物,而反向模式将导数从输出传播到输入。

什么是Jacobian Matrix?

这使得自动差异化非常容易且有效地用于现代软件框架,例如Tensorflow,Pytorch,Jax。他们更喜欢在机器学习中计算雅各布人,以及科学研究的优化问题。

使用Python计算Jacobian矩阵和决定因素

让我们看看如何使用Python实现Jacobian矩阵和Jacobian球形坐标。我们将分别与Synpy和Numpy一起使用符号计算和数值近似。

步骤1:设置环境

导入运行该功能所需的必要路径。

导入numpy作为NP
导入Sympy作为SP
导入matplotlib.pyplot作为PLT
从matplotlib.patches导入椭圆

步骤2:执行符号计算

用Sympy编写符号计算的函数。

 def smybolic_jacobian():
   x,y = sp.symbols('x y')
   f1 = x ** 2- y
   f2 = 2*x*y
  
   #定义功能向量
   f = sp.matrix([F1,F2])
   x = sp.matrix([x,y])
  
   #计算雅各布矩阵
   j = f.jacobian(x)
  
   打印(“符号雅各布矩阵:”)
   打印(J)
  
   #在点(2,3)计算雅各布
   j_at_point = j.subs([(x,2),(y,3)])
   打印(“ \ njacobian点(2,3):”)
   打印(j_at_point)
  
   #计算决定因素
   det_j = j.det()
   print(“ \ jacobian(符号):”)
   打印(det_j)
   打印(“ \ ndeterminant在点(2,3):”)
   打印(det_j.subs([((x,2),(y,3)])))))
  
   返回J,det_j

步骤3:添加数值近似

用numpy编写用于数值近似值的函数。

 def numerical_jacobian(func,x,epsilon = 1e-6):
   n = len(x)#输入变量的数量
   m = len(func(x))#输出变量的数量
  
   jacobian = np.zeros((M,n))
  
   对于(n)范围内的我:
       x_plus = x.copy()
       x_plus [i] = epsilon
      
       jacobian [:,i] =(func(x_plus) -  func(x)) / epsilon
      
   返回雅各布

步骤4:编写执行功能

编写执行上述功能和转换可视化的主要功能。

 def f(x):
   返回np.Array([x [0] ** 2 -x [1],2*x [0]*x [1]))


#可视化转换
Def Visualize_transFormation():
   #创建点网格
   x = np.linspace(-3,3,20)
   y = np.linspace(-3,3,20)
   x,y = np.meshgrid(x,y)
  
   #计算转换点
   u = x ** 2- y
   v = 2*x*y
  
   #绘图原创和转换的网格
   图,(AX1,AX2)= plt.subplot(1,2,无花果=(12,6))
  
   #原始网格
   ax1.set_title('原始空间')
   ax1.set_xlabel('x')
   ax1.set_ylabel('y')
   ax1.grid(true)
   ax1.plot(x,y,'k。',markersize = 2)
  
   #添加一个单元圆
   circle = plt.circle(((0,0),1,填充= false = false,color ='red',lineWidth = 2)
   AX1.ADD_ARTIST(圈)
   ax1.set_xlim(-3,3)
   ax1.set_ylim(-3,3)
   ax1.set_aspect('quare')
  
   #转换网格
   ax22.set_title('转换空间')
   ax22.set_xlabel('u')
   ax2.set_ylabel('v')
   ax2.Grid(true)
   ax2.plot(u,v,'k。',markersize = 2)
  
   #计算单位圆的转换
   theta = np.linspace(0,2*np.pi,100)
   x_circle = np.cos(theta)
   y_circle = np.sin(theta)
   u_circle = x_circle ** 2 -y_circle
   v_circle = 2*x_circle*y_circle
   ax2.plot(u_circle,v_circle,'r-',lineWidth = 2)
  
   #在点(1,0)处显示本地线性近似
   point = np.array([[1,0])
   j = numerical_jacobian(f,point)
  
   #计算雅各布在我们的位置如何改变一个小圆圈
   比例= 0.5
   transformed_points = []
   对于theta的t:
       delta =比例 * np.Array([NP.COS(T),NP.SIN(T)])
       transformed_delta = j @ delta
       transformed_points.append(transped_delta)
  
   transformed_points = np.array(变换_points)
  
   #绘制近似值
   base_point_transformed = f(点)
   ax2.plot(base_point_transformed [0]转换_points [:,0],
            base_point_transformed [1]转换_points [:,1],
            'g-',线宽= 2,label ='线性近似')
  
   ax2.legend()
   plt.tight_layout()
   plt.show()


#执行功能
symbolic_result = smybolic_jacobian()
point = np.array([[2.0,3.0])
Numerical_Result = numerical_jacobian(f,point)


打印(“ \ numerical jacobian在点(2,3):”)
打印(数字_RESULT)


#可视化转换
可视化_transformation()

输出:

什么是Jacobian Matrix?

什么是Jacobian Matrix?

输出评论:

提出了非线性映射f(x,y)=(x²-y,2xy),并突出显示了雅各布属性。原始空间在左侧显示为均匀的网格和一个单位圆,而右图显示了转换后的空间,该空间已变形为八人物。

同时按象征性计算Jacobian矩阵([[[2X,-1],[2y,2*x]]))和在数值点(2,3)。它显示出等于22的决定因素。这表示本地的大量面积。因此,该分析提供了一种数学观点,说明转换如何扭曲了该区域。线性化(绿色曲线)表示此非线性映射的局部结构。

Jacobian Matrix的应用

最新的ML框架包括为我们计算Jacobian Matrix的自动分化工具。这是用于复杂应用程序的游戏规则改变者,例如:

  1. 机器人手臂控制速度
  2. 动态系统的稳定性分析:
  3. 蛇机器人障碍导航:
  4. 操纵器的运动计划:
  5. 机器人技术中的力量转换:

结论

微积分,差异几何形状和线性代数都是雅各布矩阵绑定在一起并应用于现实世界应用的数学学科。从先进的手术机器人到GPS的位置,雅各布在使技术更快和先天性方面发挥了重要作用。这是数学如何描述我们的宇宙并帮助我们更有效,有效地与之互动的一个例子。

常见问题

Q1。我什么时候使用Jacobian决定因素与完整的Jacobian Matrix?

答:决定因素为您提供有关音量变化和可逆性的信息,而完整矩阵提供了方向信息。当您关心缩放因素和可逆性时,请使用决定因素,以及需要知道方向如何转换时的完整矩阵。

Q2。雅各布与梯度有何关系?

答:梯度实际上是雅各布的特殊情况!当您的函数仅输出一个值(标量字段)时,Jacobian是一行,这正是该函数的梯度。

Q3。有没有计算雅各布的情况?

答:是的!如果您的功能在某个时刻无法区分,则在那里未定义Jacobian。这发生在您的功能中的角落,尖或不连续性。

Q4。如何在坐标转换中使用的雅各布?

答:当更改坐标系统(例如从笛卡尔到极地)时,雅各布式确定区域或体积如何在系统之间变化。这对于正确计算不同坐标系统中的积分的多变量计算至关重要。

Q5。在实践中,数值错误如何影响雅各布计算?

A.雅各布的数值近似可能会遭受圆形错误和截断错误。在机器人技术或财务建模等关键应用中,经过复杂的技术(例如自动差异化)通常用于最大程度地减少这些错误。

以上是什么是Jacobian Matrix?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
脱衣服免费色情AI工具网站脱衣服免费色情AI工具网站May 13, 2025 am 11:26 AM

https://undressaitool.ai/是功能强大的移动应用程序,具有成人内容的高级AI功能。立即创建AI生成的色情图像或视频!

如何使用Undressai创建色情图像/视频如何使用Undressai创建色情图像/视频May 13, 2025 am 11:26 AM

有关使用distressai创建色情图片/视频的教程:1。打开相应的工具Web链接; 2。单击工具按钮; 3。根据页面提示上传所需的生产内容; 4。保存并享受结果。

Undress AI官方网站入口网站地址Undress AI官方网站入口网站地址May 13, 2025 am 11:26 AM

脱衣服AI的官方地址是:https://undressaitool.ai/; undressai是功能强大的移动应用程序,具有成人内容的高级AI功能。立即创建AI生成的色情图像或视频!

垂undressai如何产生色情图像/视频?垂undressai如何产生色情图像/视频?May 13, 2025 am 11:26 AM

有关使用distressai创建色情图片/视频的教程:1。打开相应的工具Web链接; 2。单击工具按钮; 3。根据页面提示上传所需的生产内容; 4。保存并享受结果。

垂ipersai色情AI官方网站地址垂ipersai色情AI官方网站地址May 13, 2025 am 11:26 AM

脱衣服AI的官方地址是:https://undressaitool.ai/; undressai是功能强大的移动应用程序,具有成人内容的高级AI功能。立即创建AI生成的色情图像或视频!

脱衣舞用法教程指南文章脱衣舞用法教程指南文章May 13, 2025 am 10:43 AM

有关使用distressai创建色情图片/视频的教程:1。打开相应的工具Web链接; 2。单击工具按钮; 3。根据页面提示上传所需的生产内容; 4。保存并享受结果。

[带AI的吉卜力风格图像]介绍如何使用Chatgpt和版权创建免费图像[带AI的吉卜力风格图像]介绍如何使用Chatgpt和版权创建免费图像May 13, 2025 am 01:57 AM

OpenAI发布的最新模型GPT-4o,不仅能生成文本,还具备图像生成功能,引发广泛关注。其中最受瞩目的功能便是“吉卜力风格插画”的生成。只需将照片上传至ChatGPT,并给出简单的指令,即可生成宛如吉卜力工作室作品般梦幻的图像。本文将详细解读实际操作流程、效果感受,以及需要注意的错误和版权问题。 OpenAI发布的最新模型“o3”详情请点击此处⬇️ OpenAI o3(ChatGPT o3)详解:特性、定价体系及o4-mini介绍 吉卜力风格文章的英文版请点击此处⬇️ 利用ChatGPT创作吉

解释在地方政府中使用和实施CANTGPT的示例!还介绍了禁止的地方政府解释在地方政府中使用和实施CANTGPT的示例!还介绍了禁止的地方政府May 13, 2025 am 01:53 AM

作为一种新的交流方法,在地方政府中使用和引入Chatgpt引起了人们的关注。尽管这种趋势在广泛的领域正在发展,但一些地方政府拒绝使用Chatgpt。 在本文中,我们将介绍地方政府中ChatGPT实施的示例。我们将通过各种改革实例,包括支持文件创建和与公民对话,从而探索如何通过各种改革实例来实现地方政府服务的质量和效率提高。 不仅旨在减少员工工作量并改善公民的便利性的地方政府官员,而且都对高级用例感兴趣。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器