理解Jacobian矩阵与行列式
来源:知乎—gwave
地址:https://zhuanlan.zhihu.com/p/352438848
在数学、物理和工程领域,将问题通过坐标变换到一个更容易表达、分解和计算的坐标系统是个非常核心方法:SVD、谱分解、傅立叶变换和拉格朗日力学皆是如此,其重要程度远超一般的认知。深度学习这么火的重要原因也是通过表示学习把高维数据映射到了适当的低维特征空间中。
反向传播中,神经元的输出相对与输入的局部敏感度即偏导数
来源:https://cedar.buffalo.edu/~srihari/CSE574/Chap5/Chap5.3-BackProp.pdf
在映射过程中,描述不同函数变量间变化速度的导数非常重要,Jacobian矩阵提供了一种表达局部输出对于输入的敏感度的方法。神经网络BP反向传播依赖误差与权重的偏导数关系来训练权重的,神经网络的权重千千万,cost function对哪些权重的变化敏感,无疑那些权重是更重要的,Jacobian矩阵就提供了一个分析神经网络输入-输出行为的数学框架。当然,Jocobian的应用是极其广泛的,机器学习只不过是冰山一角。
目录
坐标变换
1D 变量替换
Jacobian矩阵
Jacobian行列式
神经网络BP误差反向传播
Jacobian regularization
Carl Jacob Jacobi简介
01
坐标变换
坐标变换的原因之一是为了方便积分,当被积区域比较复杂时,变量替换往往能简化问题,如对圆形区域积分时,极坐标比笛卡尔坐标方便;有时被积对象较复杂,变量替换能降低复杂度。坐标变换的思想可以被进一步推广到任意自定义的变量替换的坐标系统中:
比如,对下面由四条直线围成的平行四边形区域进行积分,四条直线方程分别为: 。
引入新的变量: ,两条斜线分别变为了 ,两条水平线变为 。显然,在矩形区域上积分比平行四边形上积分要方便。
02
1D 变量替换
先以一个trivial的1D U-Substitution toy case为例,温习下变量替换的过程。
推导:
令: ,则 ,
然后,扩展到以 替代 的更一般情况:对于 , 表示当对 进行了一个很小的扰动 后, 的对应变化 与 之间的线性关系。同时,定积分上下限也要进行相应调整: ,此处出现了一个比例因子 ,即导数,这就是单变量下的Jacobian,可理解为 。
注意:这里 与我们经常看到的 的方向相反,是为了保持与多变量下形式的一致性,如上例中的 和 。
03
Jacobian矩阵
Jacobian矩阵可被视为是一种组织梯度向量的方法。
梯度向量可以被视为是一种组织偏导数的方法。
故,Jacobian矩阵可以被视为一个组织偏导数的矩阵。
多变量的情况下,坐标变换描述的是从 到 连续的1对1变换,注意此处 是自变量,与上面的 为自变量的函数互为反函数,可见Jacobian可以是双向的, 一般从积分难度较大指向积分较容易的方向。
以矩阵形式来表示:
,其中 即为Jacobian矩阵。
假设在 映射中,输入为 ,输出 。Jacobian矩阵告诉我们:如果 是一个位移向量,那么 则是其在对应的坐标变换后的空间中的位移向量 的最佳一阶近似,这是一阶泰勒公式近似的思想在坐标变换中的体现。
下面从 方向来看:
从UV平面到XY平面的坐标变换
假设我们对 坐标下位于 的点进行扰动,分别增加 ,得到一个小区域 ,现在考察在 坐标系统下,微扰对应的变化量分别是: , 。
在 坐标下,平行四边形 的面积为两个边向量的叉积的模长:
04
Jacobian行列式
当 时,Jacobine矩阵为方阵,对应的Jacobian行列式计算给定矩阵线性变换的比例因子,告诉我们变换是空间放大还是缩小,而且,对空间的任何区域,该因子都保持不变(行列式)。
行列式等于向量所围成的面积或体积
即雅可比行列式,简称"the Jacobian"。
上面平行四边形变矩形的例子中: ,即
这意味这在平行四边形和矩形上积分的比例缩放因子为1。
05
神经网络BP误差反向传播
在神经网络反向传播误差信号时,使用Jacobian矩阵 来源:PRML
BP反向传播是最经典的神经网络权重训练方法,今天仍是最重要的方法。BP算法有个别名———“永远求偏导”,在将误差信号 一直向前传导直至输入层的过程中,对权重 进行调整/学习。上图中,红色模块对应要计算的Jacobian矩阵和下面公式中的 :
,其中 , 为估计值。
前面我们提到行列式的值告诉我们空间是膨胀还是收缩,如果在输入空间的某个输入点,输出空间膨胀的很厉害,说明神经网络在该区域可能有些不稳定,任何输入的扰动,可能导致输出的巨大波动;相反,如何行列式比较小,则输入的变化对输出影响不大。
神经网络Jacobian矩阵的计算流程:将输入向量通过前向传递(Forward Propagate)在神经网络正向传播,获得所有输出层和隐藏层的激活值 (Activation),对第 个输出单元进行反向传播,对应Jacobian 矩阵中的第 行,反向传播直至输入层。计算结果可通过数值方法进行验证: 。
06
Jacobian Regularization
参考文献:Robust Learning with Jacobian Regularization
https://arxiv.org/pdf/1908.02729.pdf
近年来,Jacobian被应用与正则化(Regularization),不同于 正则,Jacobian Regularization的重点是神经网络对输入波动的鲁棒性。大家对对抗样本(adversarial examples)可能并不陌生,对熊猫的图片(左)中混入极少量的长臂猿的梯度(中),导致分类算法以99.3%的置信度将将图片错误的识别为长臂猿(右)。
Jacobian Regularization的想法很简单,Jacobian矩阵中的值越小,输入空间中小波动对输出空间的影响越小。具体来说就是取Jacobian矩阵的Frobenius norm, ,即矩阵所有元素的平方和开根号。
07
Carl Jacob Jacobi简介
Carl Gustav Jacob Jacobi(1804 – 1851)
Jacobian矩阵与行列式由德国数学家Carl Gustav Jacob Jacobi(1804 – 1851)提出,他在椭圆函数、动力学、微分方程、行列式和数论等方面做出了重要贡献。他推动了偏微分符号 的广泛使用,只要看一眼Jacobian公式就知道原因了。不要和学术豪门的雅各布·伯努利(Jacob Bernoulli,1654-1705)搞混了。
以Jacob命名的月球环形山
猜您喜欢:戳我,查看GAN的系列专辑~!
一顿午饭外卖,成为CV视觉前沿弄潮儿!CVPR 2022 | 25+方向、最新50篇GAN论文ICCV 2021 | 35个主题GAN论文汇总超110篇!CVPR 2021最全GAN论文梳理超100篇!CVPR 2020最全GAN论文梳理拆解组新的GAN:解耦表征MixNMatchStarGAN第2版:多域多样性图像生成
附下载 | 《可解释的机器学习》中文版附下载 |《TensorFlow 2.0 深度学习算法实战》附下载 |《计算机视觉中的数学方法》分享《基于深度学习的表面缺陷检测方法综述》《零样本图像分类综述: 十年进展》《基于深度神经网络的少样本学习综述》
理解Jacobian矩阵与行列式相关推荐
- 理解Jacobian矩阵与分布变换
理解Jacobian矩阵 本文主要是以下教程的一个整理: Khan-academy: The Jacobian matrix 可能有错,欢迎指正. Locally Linear 我们考虑一下简单的函数 ...
- Jacobian矩阵和Hessian矩阵的理解
深度学习中梯度向量的计算,Jacobian矩阵和Hessian矩阵是基础的知识点. 求微分其实就是线性化,导数其实就是线性空间之间的线性变换,Jaocibian矩阵本质上就是导数. 比如,映射在处的导 ...
- 【数学】对向量的求导和Jacobian矩阵的几何意义与Hessian矩阵
算是上一篇[数学]均匀分布生成其他分布的方法的一个数学基础补遗吧. 函数对向量求导 Jacobian矩阵相当于通用型的函数的一阶导数,Hessian矩阵是一个Rn→RR^n \to R的函数的二阶导数 ...
- jacobian 矩阵意义_对雅可比矩阵的理解
众所周知,二维平面直角坐标系中的面积微元转换为平面极坐标系有 为什么? 尝试下证明 : 先列出x,y与r, 之间的关系 , 微分一下 , 得到了 什么?你说你不知道第三行怎么来的?我也不知道... 于 ...
- 矩阵与行列式的区别 行列式简单理解(二三阶)
目录 矩阵与行列式的区别 行列式简单理解(二三阶) 矩阵与行列式的区别 如下: 1. 矩阵是一个表格,行数和列数可以不一样:而行列式是一个数,且行数必须等于列数.只有方阵才可以定义它的行列式,而对于长 ...
- Jacobian矩阵的理解
Jacobian矩阵的理解 前言 学习RNN时看到Jacobian矩阵时我的内心是崩溃的,啥是Jacobian矩阵,怎么活生生就蹦出来一个Jacobian矩阵,说好的bp算法只用求导呢,然后就开始扒J ...
- 三维重建4:Jacobian矩阵和Hessian矩阵
在使用BA平差之前,对每一个观测方程,得到一个代价函数.对多个路标,会产生一个多个代价函数的和的形式,对这个和进行最小二乘法进行求解,使用优化方法.相当于同时对相机位姿和路标进行调整,这就是所谓的BA ...
- 牛顿法, Jacobian矩阵 和 Hessian矩阵
牛顿法 主要有两方面的应用: 求方程的根: 求解最优化方法: 为什么要用牛顿法求方程的根? 问题很多,牛顿法 是什么?目前还没有讲清楚,没关系,先直观理解为 牛顿法是一种迭代求解方法(Newton童鞋 ...
- [work] Jacobian矩阵和Hessian矩阵
1. Jacobian 在向量分析中, 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵, 其行列式称为雅可比行列式. 还有, 在代数几何中, 代数曲线的雅可比量表示雅可比簇:伴随该曲线的一个代数群, 曲 ...
最新文章
- python数据结构与算法:单向链表
- Oracle-表分析和索引分析解读
- python 3.9特性,Python 3.9 正式版要来了,会有哪些新特性?
- Vue + Element UI——对话框式登录框DEMO
- boost::mp11::mp_map_update相关用法的测试程序
- boost::noinit_adaptor用法实例
- .NET Framework总结二
- POJ 1228	 Grandpa's Estate --深入理解凸包
- loadrunner 参数化数据更新方式
- Android中文API(136) —— Bitmap
- linux文件管理 - 系统目录结构
- 《HTML5移动应用开发入门经典》—— 1.6 编写移动网站
- 2021年 CentOS 快速安装 最新版Nginx
- 计算机中汉字用什么表示什么,在计算机中汉字是用几个字节表示
- python面试技巧_经典7大Python面试题!看完考官竟然给了我30k的薪资
- Beginning WF 4.0翻译——第四章(传递参数)
- C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem
- centos7 端口相关操作
- sim800L调试问题
- MAVEN setting.xml配置文件详解