雅可比矩阵和雅可比坐标

news/2025/3/29 6:02:55/
雅可比行列式的简要介绍

一、说明

在本教程中,您将回顾一下雅可比行列式的简单介绍。完成本教程后,您将了解:

  • 雅可比矩阵收集了可用于反向传播的多元函数的所有一阶偏导数。
  • 雅可比行列式在变量之间变化时非常有用,它充当一个坐标空间与另一个坐标空间之间的缩放因子。 

教程概述

本教程分为三个部分;他们是:

  • 机器学习中的偏导数
  • 雅可比矩阵
  • 雅可比矩阵的其他用途

 二、机器学习中的偏导数

        到目前为止,我们已经提到梯度和偏导数对于优化算法来说非常重要,例如更新神经网络的模型权重以达到最佳权重集。通过依次计算误差曲线相对于每个权重的梯度,偏导数的使用允许每个权重独立于其他权重进行更新。

        我们在机器学习中通常使用的许多函数都是多元向量值函数,这意味着它们将多个实际输入 n 映射到多个  实际输出m

        例如,考虑一个将灰度图像分为几个类别的神经网络。这种分类器实现的功能会将每个单通道输入图像的n 个像素值映射到属于每个不同类别的m 个输出概率。 

        在训练神经网络时,反向传播算法负责在构成神经网络不同隐藏层的神经元之间共享输出层计算的误差,直到到达输入。 

反向传播算法调整网络权重的基本原理是,网络中的每个权重都应根据网络整体误差对该权重变化的敏感度按比例进行更新。 

– 第 222 页,深度学习,2019 年。

        网络总体误差对任何一个特定权重变化的敏感性是根据变化率来测量的,而变化率又是通过对同一权重求误差的偏导数来计算的。 

        为简单起见,假设某个特定网络的隐藏层之一仅由单个神经元k组成。我们可以用一个简单的计算图来表示:

 

具有单输入和单输出的神经元

 

        再次,为了简单起见,我们假设根据该神经元实现的函数(包括非线性)将权重k应用于该神经元的输入以产生输出k 。然后,该神经元的权重可以连接到网络输出处的误差,如下所示(以下公式正式称为微积分的链式法则,稍后将在单独的教程中详细介绍):

        这里,导数dz k / dw k首先将权重k连接到输出k,而导数d error / dz k随后将输出k连接到网络误差。 

        更常见的情况是,我们的网络中有许多连接的神经元,每个神经元都有不同的权重。由于我们对这种情况更感兴趣,因此我们可以推广到标量情况之外,以考虑多个输入和多个输出:

        该项之和可以更紧凑地表示如下:

        或者,等效地,在向量表示法中,使用 del 运算符 ∇ 来表示相对于权重k或输出k的误差梯度:

反向传播算法包括对图中的每个操作执行雅可比梯度积。

– 第 207 页,深度学习,2017 年。

        这意味着反向传播算法可以通过乘以雅可比矩阵(∂ k / ∂ k ) T将网络误差的敏感性与权重的变化联系起来。

那么,这个雅可比矩阵包含什么?

三、雅可比矩阵

        雅可比矩阵收集多元函数的所有一阶偏导数。具体来说,首先考虑一个将真实输入映射单个真实输出的函数:

然后,对于长度为u的输入向量x ,大小为 1 × u 的雅可比向量可以定义如下:

现在,考虑另一个将u真实输入映射到v真实输出的函数:

然后,对于长度为u 的相同输入向量x,雅可比行列式现在是v × u矩阵,J ∈ ℝ v× u,定义如下:

将雅可比矩阵重构为前面考虑的机器学习问题,同时保留相同数量的u实数输入和v实数输出,我们发现该矩阵将包含以下偏导数:


 

 

        在这篇文章中,我将逐步推导雅可比坐标中的雅各比坐标。我将使用的球面坐标是物理学家经常使用的坐标(而不是数学家经常使用的坐标),如下所示:

球面坐标   

        在下面显示的上一篇文章中,我推导出了一般的雅可比方程(2D),并通过插入极坐标方程来举例,所以如果你不太熟悉雅可比方程,我会先看一下这篇文章。

雅可比行列式:它究竟是如何工作的

四、推导雅可比派

        首先,虽然我不会再次进行推导,因为它非常相似,但三维雅可比矩阵与二维版本相同,只是我们有一个 3 x 3 行列式而不是 2 x 2 行列式。现在,我们需要做的就是确定将变量更改为球面坐标所需的方程并替换它们。

        看看我在文章开头的图表,我们可以采取的第一步是将长度 r 拆分为它在 z 方向和 xy 平面上的分量。这可以通过相对简单的三角函数来完成,如下所示:

        因此,我们已经找到了点的 z 分量,只需要将 xy 分量拆分为单独的 x 和 y 分量。这也可以使用三角函数来完成,但这次使用角度φ

        因此,我们已经成功地根据球面坐标编写了点的 xy 和 z 分量。这可以使用以下一组方程进行组织:

        现在,我们可以将这些方程代入雅可比方程,如下所示:

        如果我们在最后一行中使用辅因子,右边的行列式将最容易解决,因为这将允许我们只需要计算两个辅因子,因为其中一个为 0。使用这种方法,行列式可以这样计算:

        最后几步需要多次使用毕达哥拉斯恒等式。现在,由于雅可比量是它的绝对值,我们可以得出结论,球面坐标中的雅可比量是r²sinθ。因此,当执行变量从笛卡尔坐标到球面坐标的更改时,我们需要进行以下更改:

        感谢您的阅读。

参考资料:

A Gentle Introduction to the Jacobian - MachineLearningMastery.com


http://www.ppmy.cn/news/1171858.html

相关文章

Visa股票仍然值得投资

来源:猛兽财经 作者:猛兽财经 总结: (1)尽管Visa(V)的估值高于市场平均水平,但仍值得买入。 (2)Visa拥有强劲的基本面,销售额和每股收益一直在稳定增长,股息…

Unity3D 基础——鼠标悬停更改物体颜色,移走恢复

方法介绍 【unity学习笔记】OnMouseEnter、OnMouseOver、OnMouseExit_unity onmouseover_一白梦人的博客-CSDN博客https://blog.csdn.net/a1208498468/article/details/117856445 GetComponent()详解_getcomponet<> 动态名称-CSDN博客https://blog.csdn.net/kaixindrag…

Jprofiler V14中文使用文档

JProfiler介绍 什么是JProfiler? JProfiler是一个用于分析运行JVM内部情况的专业工具。 在开发中你可以使用它,用于质量保证,也可以解决你的生产系统遇到的问题。 JProfiler处理四个主要问题: 方法调用 这通常被称为"CPU分析"。方法调用可以通过不同的方式进行测…

爬虫进阶-反爬破解7(逆向破解被加密数据:全方位了解字体渲染的全过程+字体文件的检查和数据查看+字体文件转换并实现网页内容还原+完美还原上百页的数据内容)

目录 一、全方位了解字体渲染的全过程 1.加载顺序 2.实践操作&#xff1a;浏览器中调试字体渲染 3.总结&#xff1a; 二、字体文件的检查和数据查看 1.字体文件的操作软件 2.映射关系的建立 3.实践操作&#xff1a;翻找样式和真实内容 4.总结&#xff1a; 三、字体文…

深度学习_4_实战_直线最优解

梯度 实战 代码&#xff1a; # %matplotlib inline import random import torch import matplotlib.pyplot as plt # from d21 import torch as d21def synthetic_data(w, b, num_examples):"""生成 Y XW b 噪声。"""X torch.normal(0,…

C++ 火车调度

火车调度 #include<stdio.h> #define MAX 100 typedef struct Q {int data[MAX];int len;int last; }Q_t;Q_t a[MAX]; //MAX个队列 void Init(Q_t* a) {a->len 0; }void En(Q_t* a, int num) {a->last num; //最后进入的值a->data[a->len] num; }void…

中文编程开发语言工具编程实际案例:台球棋牌混合计时计费软件使用的编程构件说明

中文编程开发语言工具编程实际案例&#xff1a;台球棋牌混合计时计费软件使用的编程构件说明 上图说明&#xff1a;该软件可以用于桌球和棋牌同时计时计费&#xff0c;在没有开台的时候&#xff0c;图片是处于等待状态&#xff0c;这使用编程工具中的固定图像构件&#xff0c;在…

【Ubuntu18.04】Livox Tele-15使用教程

Livox Tele-15使用教程 引言1 下载并安装Livox Viewer1.1 打开Livox Viewer程序1.2 设备ip链接 2 览沃Livox SDK二次开发并封装ROS2.1 览沃Livox SDK安装2.2 览沃驱动 livox_ros_driver 安装2.3 Launch 配置文件描述 3 保存lvx格式的数据文件3.1 使用览沃Viewer保存lvx文件3.2 …