这篇博客源于在看论文时遇到了一个误差向量欧氏距离的求导,如下:

在看了一堆资料后得出以下结论:

这个结论是怎么来的呢?这就涉及标量/向量/矩阵的求导了。由于标量、向量都可以看做特殊的矩阵,因此就统称为矩阵求导啦。

目录

1、矩阵如何求导

2、矩阵求导的分母布局

3、分母布局求导常用公式

4、分子布局

5、雅可比矩阵 及 雅可比行列式


1、矩阵如何求导

对于一般常见的标量函数 f(x) 对标量 x 的求导为:

矩阵A对矩阵B的求导 dA/dB 本质上就是矩阵A中的每一个元素分别对矩阵B中的每一个元素的求导。根据这个本质可以得出以下几种情况中的导数的数量。

1、当A与B都是1×1的矩阵时,此时A对B求导就是标量函数对标量的求导,结果为1个导数;

2、当A为m×1的向量,B为1×1的标量时,此时A对B求导就是向量函数对标量的求导,结果有m个导数;

3、当A为m×1的向量,B为p×1的向量时,如:

结果有m×p个导数;

4、当A为m×n的向量,B为p×q的向量时,结果有m×n×p×q个导数

以上四种情况中,除了第一种结果是一个标量外,其他的三种的导数都有多个。在实际的应用中,我们经常会期望矩阵对矩阵求导的结果也是一个矩阵的形式以便参与后续的运算。以第4种情况为例,最终的m×n×p×q个导数要怎样排列成矩阵形式呢?是排列成m×n行p×q列还是m行n×p×q列还是其他形式呢?这就要引出矩阵(向量)求导的分子布局分母布局了。

分子布局分母布局本质上是两种人为规定的两种求导结果的布局方式,并没有好坏之分,具体使用那种布局可根据运算习惯选择。对于导数 dA/dB分子布局就是求导结果以分子位置上的矩阵A的形式为准(求导结果的第一维与分子位置保持一致),分母布局就是求导结果以分母位置上的矩阵B的形式为准。下面以分母布局为例展开讲解。

2、矩阵求导的分母布局

对于导数 df/dx 来说,f 在分子位置,x 在分母位置,可以分为以下情况讨论:

(一般用字母表示的向量都默认为列向量,除非加了转置符号)

1为标量函数,为列向量:

此时,由于分母部分是一个p×1的列向量形式,因此最后的结果也是p×1的列向量。

2为标量函数,为行向量:

此时,由于分母部分是一个1×p的行向量形式,因此最后的结果也是1×p的行向量。

3为列向量,为标量:

此时得出的结果是1×p的行向量形式,这个结果等价于​​​​​​​

4为列向量,为列向量:

此时可以分两步推导出最终的结果的形式。

首先第一步将 f 看作一个整体,按照分母位置的 x 的布局展开

此时可以将​​​​​​​按照情况3中的形式进行展开如下:

对于分母布局来说就是最终结果与分母的形式保持一致,有一种简单形象的说法叫做XY拉伸术,结果的形式可以通过以下两个准则来判断:

  • 标量不变,向量拉伸
  • X 纵向拉伸,Y 横向拉伸

针对上式的拉伸解释如下图所示:

以上即为矩阵求导分母布局的几种情况,其他复杂些的组合情况都可以由上面的规则推导出来。分母布局只是对矩阵求导结果的一种人为的布局规定,求导结果就那么几个确定的值,在具体应用中我们对这些值布局成一维向量、二维矩阵还是更高维的形式都是根据自己的需要进行设置的,只是分母/分子布局的形式在一般应用中更为常用一点而已。

3、分母布局求导常用公式

(1)求其中

这个问题可以先看一下 f(x) 的展开式,注意其结果是个标量

按照分母布局的规则,此时的求导结果应该是一个 p×1 的列向量,此时

(2)其中:

可以推出此时:​​​​​​​

(3)这个也是文章开头提到的那个计算(可通过先展开再各项求导的方法推导出)

(4)

(5)

(6)对自身求导

4、分子布局

对于分子布局来说就是最终结果与分子的形式保持一致,类似分母布局的XY拉伸术,分子布局也有一种简单易记的方法即YX拉伸术,结果的形式可以通过以下准则来判断:

  • 标量不变,向量拉伸
  • Y纵向拉伸,X横向拉伸(注意分母布局中是X纵向拉伸,Y横向拉伸)

通常来说分子布局与分母布局的结果互为转置关系。这两种布局没有优劣之分,找一种自己习惯的使用就行。

5、雅可比矩阵 及 雅可比行列式

矩阵按分子布局求导的结果就构成了雅可比矩阵(分母布局的结果是雅可比行列式的转置)。当雅可比矩阵是一个方阵时,该方阵的行列式则可称为雅可比行列式。在矩阵论中,线性变换矩阵的行列式代表变换前后空间面积的变化倍数,但是对于非线性变换矩阵来说,其雅可比行列式的建立就是为了解决局部空间的伸缩问题,用微元法(微元变换实际上可以看做是线性的)代表某点附近的空间伸缩的倍数。

===================================================================

有关 矩阵线性变换的几何原理 以及 雅可比行列式的几何原理 可以参考如下视频:

【俗说矩阵】行列式的本质意义居然是这样的!数学老师绝不会告诉你!_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Hb4y1q7Sp?from=search&seid=9625805080710138609&spm_id_from=333.337.0.0《雅可比矩阵下:所谓的雅可比行列式》3Blue1Brown Grant Sanderson,搬自可汗学院。 【自制中文字幕】_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18J41157X8/?spm_id_from=333.788.recommend_more_video.12

矩阵求导参考视频:

计量经济学入门专题2——矩阵求导(分母布局)【上】_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1fK411W7oh/?spm_id_from=333.788.recommend_more_video.0

标量/向量/矩阵求导方法相关推荐

  1. 复数 标量/向量/矩阵 求导

    Wirtinger derivative: 对复标量求导 Wirtinger derivative: 令 z=x+jyz=x+jyz=x+jy,则 f(z)f(z)f(z) 对 zzz 和 zzz 的 ...

  2. 【必读】3分钟带你了解标量对矩阵求导方法

    这是个人学习笔记,不是原创.来源请查看 "参考文档" 文章目录 标量对矩阵的求导 基础推导 复合函数 例题 参考文档 标量对矩阵的求导 基础推导 定义 标量f对矩阵X的导数,定义为 ...

  3. 矩阵对矩阵求导,标量对矩阵求导,链式法则

    Z∈R,Ym∗n,Xa∗bZ \in R,Y_{m*n},X_{a*b} Z∈R,Ym∗n​,Xa∗b​dZdX=dZdY∗dYdX\frac{dZ}{dX}=\frac{dZ}{dY}*\frac{ ...

  4. 矩阵/向量/标量间相互求导

    矩阵.向量都可以表示成张量的形式,向量是矩阵的特殊形式,按实际应用可分为标量对向量求导,标量对矩阵求导.向量对向量求导.矩阵对标量求导.矩阵对向量求导.矩阵对矩阵求导等,在深度学习的反向传播(BP)中 ...

  5. 线性代数之 矩阵求导(2)标量函数求导基本法则与公式

    线性代数之 矩阵求导(2)基本法则与公式 前言 基本约定 标量对向量求导 基本法则 公式 标量对矩阵求导 基本法则 公式 后记 前言 上篇矩阵求导(1)解决了求导时的布局问题,也是矩阵求导最基础的求导 ...

  6. 向量转置的怎么求导_机器学习中的向量求导和矩阵求导

    在机器学习的各种关于向量或者矩阵的求导中,经常会出现各种需要转置或者不需要转置的地方,经常会看得人晕头转向.今天我对机器学习中关于这部分的常识性处理方法进行整理并记录下来方便大家参考. 一些约定 首先 ...

  7. 二阶矩阵转置怎么求_矩阵求导术(下)

    本文承接上篇 https://zhuanlan.zhihu.com/p/24709748,来讲矩阵对矩阵的求导术.使用小写字母x表示标量,粗体小写字母 表示列向量,大写字母X表示矩阵.矩阵对矩阵的求导 ...

  8. 矩阵求导术(上、下)

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 矩阵求导的技术,在统计学.控制论.机器学习等领域有广泛的应用.鉴于我看过的一些资料或言 ...

  9. 矩阵求导公式,及MathJax公式编辑

    最近学到线性回归中要用到向量,矩阵求导,所以就搜集了下资料,总结如下: 矩阵求导有两种布局: 分子布局(numerator layout) 分母布局(denominator layout) 下面用向量 ...

最新文章

  1. windows mobile设置插移动卡没反应_ipad pro外接移动硬盘ipados
  2. 098 Validate Binary Search Tree 验证二叉搜索树
  3. pythondockerapi_docker-py 用Python调用Docker接口的方法
  4. 设计行业的新宠——云渲染
  5. Flutter 雷达扫描效果、Flutter旋转扫描
  6. linux下的C语言开发(gdb调试)
  7. 百度地图订单分布php,php与百度地图API实现注册用户分布图
  8. RS232通讯数据解析C#
  9. Ubuntu source insight3稳定性
  10. 4.微服务:从设计到部署 --- 服务发现
  11. javaScript五种继承方式
  12. HBase 数据库介绍
  13. 利用实体类接收中国电信物联网平台推送的数据
  14. 如何领购和作废电子发票流程
  15. 数学速算法_孩子数学计算老出错?复习阶段,家长赶紧和孩子一起找准原因!...
  16. codeforces 831A Unimodal Array
  17. js是什么、html、css
  18. 使用jenkins流水线完成自动部署服务到K8s
  19. 如何建立起一套有效的APP监控体系
  20. 中文文本分析, Text-Analysis

热门文章

  1. C++解决报错常量中有换行符
  2. 黑群晖使用pc端 Drive
  3. Windows 任务计划程序
  4. Java 一元、二元运算符、三目条件运算符(三元运算符)
  5. 柏林水厂资产管理RFID跟踪管理系统应用
  6. vue项目接入e2e自动化测试
  7. 使用Git将代码上传到Gitee仓库
  8. 基于C++的带权无向图的实现 (三)- Prim最小生成树算法
  9. matlab bsxfun memory,matlab之bsxfun函数
  10. java 常用类 - 大数据运算