〇. 前言

在一个多月前,针对有同学关于矩阵求导中分子布局、分母布局两者的区别的疑问,我写了如下的这篇答案。

矩阵求导中布局约定,两者布局的意义是什么?​www.zhihu.com

虽然这篇答案给出了几个结论,但是写的没有很严谨,并没有说明矩阵求导本质分子布局分母布局本质

所以,在接下来这篇文章中,我将更严谨地说明矩阵求导的本质与分子布局分母布局本质。希望对初学的同学、想理解本质的同学提供一些帮助。

注1:看懂本文只需了解本科阶段高等数学的偏导如何求、本科阶段线性代数的矩阵的定义,无需任何其他知识。

注2:本文若无特殊说明,则约定向量均为列向量,

注3:本文仅考虑实数,不考虑复数。

一. 函数与标量、向量、矩阵[1]

考虑一个函数

针对

的类型、
的类型,我们可以将这个函数
分为不同的种类。

1、

是一个

标量

我们称

是一个

实值标量函数。用细体小写字母

表示。

1.1

是一个

标量

我们称

变元标量。用细体小写字母

表示。

例1:

1.2

是一个

向量

我们称

变元向量。粗体小写字母

表示。

例2:

1.3

是一个

矩阵

我们称

变元矩阵。粗体大写字母

表示。

例3:

2、

是一个

向量

我们称

是一个

实向量函数 。用粗体小写字母

表示。

含义

是由若干个
组成的一个

向量

同样地,变元分三种:标量、向量、矩阵。这里的符号仍与上面相同。

2.1 标量变元

例4:

2.2 向量变元

例5:

2.3 矩阵变元

例6:

3、

是一个

矩阵

我们称

是一个

实矩阵函数 。用粗体大写字母

表示。

含义

是由若干个
组成的一个

矩阵

同样地,变元分三种:标量、向量、矩阵。这里的符号仍与上面相同。

3.1 标量变元

例7:

3.2 向量变元

例8:

3.3 矩阵变元

例9:

4、总结

函数与标量、向量、矩阵

二. 矩阵求导的本质

我们在高等数学[2]中学过,对于一个多元函数

例10:

我们可以将

偏导分别求出来,即:

矩阵求导也是一样的,本质就是

中的

每个

分别对变元中的每个元素逐个求偏导,只不过写成了向量、矩阵形式而已。

对于

,我们把得出的3个结果写成

列向量形式:

一个矩阵求导以列向量形式展开的雏形就出现了。

当然我们也可以以行向量形式展开:

所以,如果

中有
,变元中有
个元素,那么,每个
对变元中的每个元素逐个求偏导后,我们就会产生
个结果。

这就是矩阵求导的本质。

至于这

个结果的布局,是写成行向量,还是写成列向量,还是写成矩阵,就是我们接下来要讨论的事情。

三. 矩阵求导结果的布局

不严谨地说,从直观上看:

分子布局,就是分子是列向量形式,分母是行向量形式,如

式。如果这里的

实向量函数

的话,结果就是
的矩阵了:

分母布局,就是分母是列向量形式,分子是行向量形式,如

式。如果这里的

实向量函数

的话,结果就是
的矩阵了:

直观上理解了之后,我们针对不同类型的

,不同类型的

变元,给出严谨的布局说明。(这里不讨论标量变元的实值标量函数

,因为结果就是一个元素嘛~)

1、向量变元的实值标量函数

,

1.1 行向量偏导形式(又称行偏导向量形式)[3]

1.2 梯度向量形式(又称列向量偏导形式、列偏导向量形式)[4]

这两种形式互为转置

2、矩阵变元的实值标量函数

,

先介绍一个符号

,作用是将矩阵

按列堆栈来向量化。

解释一下,

就是把矩阵
的第
列,第
列,直到第
列取出来,然后按顺序组成一个

列向量,即:

2.1 行向量偏导形式(又称行偏导向量形式)[3]

即先把矩阵变元

向量化,转换成向量变元,再对该向量变元使用

式:

2.2

矩阵形式[3]

即先把矩阵变元

进行

转置,再对转置后每个位置的元素逐个求偏导,结果布局和转置布局一样

2.3 梯度向量形式(又称列向量偏导形式、列偏导向量形式)[4]

即先把矩阵变元

向量化,转换成向量变元,再对该变元使用

式:

2.4 梯度矩阵形式[4]

直接对原矩阵变元

每个位置的元素逐个求偏导,结果布局和原矩阵布局一样

2.5 一些发现

2.5.1 转置

式与

互为转置

式与

互为转置

2.5.2 相等

矩阵变元

本身就是一个

列向量

时,
式、
式、

相等;

式、
式、

相等;当然,前三个式子与后三个式子互为转置

这一发现说明,对于向量变元的实值标量函数

,
,结果布局本质上有两种形式,一种是
矩阵(

已经成行向量了)形式,一种是梯度矩阵(已经成列向量了)形式。两种形式互为转置

3、矩阵变元的实矩阵函数

,

3.1

矩阵形式[5]

即先把矩阵变元

向量化,转换成向量变元:

再把实矩阵函数

向量化,转换成实向量函数:

这样,我们就把一个矩阵变元的实矩阵函数

,转换成了

向量变元的实向量函数

。接着,对照
式写出结果布局为
的矩阵:

3.2 梯度矩阵形式[6]

即先把矩阵变元

向量化,转换成向量变元:

再把实矩阵函数

向量化,转换成实向量函数:

这样,我们就把一个矩阵变元的实矩阵函数

,转换成了

向量变元的实向量函数

。接着,对照
式写出结果布局为
的矩阵:

3.3 一些发现

3.3.1 转置

式与

互为转置

3.3.2 相等1

实矩阵函数

本身是一个

实值标量函数

时,
式、

相等;

式、

相等;当然,前两个式子与后两个式子互为转置

这一发现说明,对于矩阵变元的实值标量函数

,
,结果布局本质上有四种形式,第一种是
矩阵(

已经成行向量了)形式,第二种是梯度矩阵(已经成列向量了)形式,第三种是

矩阵(

就是矩阵)形式,第四种是梯度矩阵(就是矩阵)形式。第一种和第二种形式互为转置,第三种和第四种形式互为转置

3.3.3 相等2

矩阵变元

本身就是一个

列向量

时, 同时

实矩阵函数

本身是一个

实值标量函数

时,
式、
式、
式、

相等;

式、
式、
式、

相等;当然,前四个式子与后四个式子互为转置

这一发现仍说明,对于向量变元的实值标量函数

,
,结果布局本质上有两种形式,一种是
矩阵(

已经成行向量了)形式,一种是梯度矩阵(已经成列向量了)形式。两种形式互为转置

4、矩阵变元的实向量函数

向量变元的实向量函数

向量变元的实矩阵函数

这三个都可以看做是矩阵变元的实矩阵函数

,可使用

3、进行计算(因为向量就是一种特殊的矩阵)。

四. 分子布局、分母布局的本质

看到这里,相信同学们对矩阵求导结果的布局有了很全面的了解了,无非就是分子的转置、向量化分母的转置、向量化,它们的各种组合而已。

结合上述知识,我们总结:

1、分子布局的本质:分子是标量列向量、矩阵向量化后的列向量;分母是标量、列向量转置后的行向量、矩阵的转置矩阵、矩阵向量化后的列向量转置后的行向量。包含

式、
式、
式、
式。

2、分母布局的本质:分子是标量、列向量转置后的行向量、矩阵向量化后的列向量转置后的行向量;分母是标量列向量矩阵自己、矩阵向量化后的列向量。包含

式、
式、
式、
式。

思考一下,其实我们可以再简洁一些:谁转置了,就是另一方的布局。分子转置了,就是分母布局;分母转置了,就是分子布局。

最终,我们列一个表格,总结分子布局、分子布局的本质:

分子布局、分母布局的本质

五. 完

本文到这里就结束了,希望对大家有帮助。如果有时间的话,后面我会再发一篇文章,来进行若干常见矩阵求导公式的数学推导。欢迎大家点赞、关注、收藏、转发噢~

矩阵求导系列其他文章:

对称矩阵的求导,以多元正态分布的极大似然估计为例(矩阵求导——补充篇) - Iterator的文章 - 知乎

矩阵求导公式的数学推导(矩阵求导——进阶篇) - Iterator的文章 - 知乎

矩阵求导公式的数学推导(矩阵求导——基础篇) - Iterator的文章 - 知乎

参考

  1. ^张贤达《矩阵分析与应用(第二版)》P143
  2. ^《高等数学 同济大学第七版 下册》P66
  3. ^abc张贤达《矩阵分析与应用(第二版)》P144
  4. ^abc张贤达《矩阵分析与应用(第二版)》P146
  5. ^张贤达《矩阵分析与应用(第二版)》P145
  6. ^张贤达《矩阵分析与应用(第二版)》P147

java二维矩阵怎么进行转置_矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)...相关推荐

  1. java二维数组杨辉三角_实验----Java的二维数组的应用及杨辉三角的编写

    (1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...

  2. java二维数组从键盘更改_互换二维数组的行列。要求数组的行数、列数以及各元素均从键盘输入;输出互换前数组内容和互换后数组内容。(要求循环输入进行测试)Java...

    1. 互换二维数组的行列.要求数组的行数.列数以及各元素均从键盘输入:输出互换前数组内容和互换后数组内容.(要求循环输入进行测试) package com.mingrisoft; import jav ...

  3. java二维对象数组存入文件_关于Java:将2D数组保存到磁盘文件

    我目前正在开发一个基本的国际象棋程序,该程序允许用户保存当前游戏并稍后再返回并从上次停止的地方接机. 唯一的问题是我不知道如何将2d数组保存到磁盘文件. 我感到更加困惑的是,该代码集需要单独写入每个值 ...

  4. java 二维数组输出菱形边_在二维数组Java中绘制数字菱形

    我一直在解决一些编码问题,以便为编码面试做好准备,并发现了一个似乎有些令人费解的问题.我花了一些时间解决了这个问题;但是,代码看起来是硬编码的,没有样式.所以,我想知道我是否能得到一些关于代码样式的反 ...

  5. java二维数奇数组金字塔_金字塔内发现一组神奇数字 至今无解(图)

    世界上有这么一组数字"142857",看起来不认为有什么特别,这组数字不包含3.6.9,而且是从埃及金字塔里面发现的一组数字,其中蕴含的未知谜团还有规律,到现在还是无法正确解释. ...

  6. java二维数奇数组金字塔_金字塔内神秘的数字~世界末日真的存在?

    说到世界末日,大家一定对2012还记忆犹新,曾被说的玄乎奇迹,传的沸沸扬扬的2012世界末日最终也没有到来,到来的只是一堆借着世界末日的噱头炒起来的电影和一群赚的盆满钵满的导演.不过科学家们总是不甘寂 ...

  7. java二维数奇数组金字塔_金字塔神奇数学几何 竟存在世外高人!

    19世纪的研究家们通过对金字塔进行细致研究后相继声明:大金字塔蕴含着极其神奇的数学和几何学知识,金字塔各部位的尺寸也有重要含义!到底这外形看起来平淡无奇的金字塔,内部究竟蕴含了多少神秘?我们一起去看看 ...

  8. java 二维数组 排序_二维数组排序

    参考: https://www.cnblogs.com/rujianming/p/11779922.html https://blog.csdn.net/westwewe/article/detail ...

  9. Atitit java 二维码识别 图片识别

    Atitit java 二维码识别 图片识别 1.1. 解码1 1.2. 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.1 1.3. 二维码的样例:2 1.4. 定位图案2 1. ...

最新文章

  1. 使用Spring Boot开发Web项目
  2. 【HDU - 1266 】Reverse Number(模拟,数字分位数处理)
  3. C++之面向对象模型
  4. SQL事务控制语言(TCL)
  5. jQuery - 获取内容和属性
  6. ElasticSearch的基本用法与集群搭建
  7. python中matplotlib库饼图_python 使用 matplotlib.pyplot来画柱状图和饼图
  8. nativefier - 把网页生成桌面应用程序
  9. spring事务的传播属性和事务隔离级别及配置事务(注解方式)
  10. excel数据库_EXCEL数据库函数dcount、dcounta
  11. 3.8086/8088微处理器结构
  12. mysql MMM方案
  13. mysql ndb 关闭,监控mysql、ndb进程重启
  14. springboot毕设项目线上跳蚤市场平台iy7e7(java+VUE+Mybatis+Maven+Mysql)
  15. 程序员,要不要考软考高级职称?
  16. ORA-01034和ORA-27101的解决方法
  17. 重构笔记——提炼函数
  18. RK3399 Qt+RTSP+FFMPEG+MPP+RGA解码
  19. 【三维目标检测】Second 模型 (二)
  20. 使用TC的htb队列控制网络流量

热门文章

  1. 感知器python代码
  2. nginx动静分离和负载均衡
  3. [转载]地球物理经典书目——成像方向
  4. 函数名称前面加引用“”或指针符号“*”的意思
  5. 1000多首无损歌曲合集
  6. [云炬创业基础笔记]第十章企业的利润计划测试3
  7. 科大星云诗社动态20210509
  8. 科大星云诗社动态20210525
  9. 深入探讨!Batch 大小对训练的影响
  10. JavaScript内存释放