要想入门矩阵求导,首先要了解矩阵的函数表现形式以及分子布局、分母布局的概念,并且能够对一次矩阵求导快速的进行布局判断,本篇博客属于知识点归类总结,便于日后快速回看。
如果想要用更详细的版本进行学习,可以阅读文章:
矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)
一、函数和变元的相关定义
对于一个函数:
存在如下几种形式:
函数(function) | 标量 | 向量 | 矩阵 | |
---|---|---|---|---|
变元(input) | ||||
标量 | 变元是标量的实值标量函数 | 变元是标量的实向量函数 | 变元是标量的实矩阵函数 | |
式1 | 式4 | 式7 | ||
向量 | 变元是向量的实值标量函数 | 变元是向量的实向量函数 | 变元是向量的实矩阵函数 | |
式2 | 式5 | 式8 | ||
矩阵 | 变元是矩阵的实值标量函数 | 变元是矩阵的实向量函数 | 变元是矩阵的实矩阵函数 | |
式3 | 式6 | 式9 |
- 标量变元、向量变元、矩阵变元 分别用 小写、加粗小写、加粗大写 表示;
- 实值标量函数、实向量函数、实矩阵函数 分别用 小写、加粗小写、加粗大写 表示;
由他们组成的各种函数示例如下:
式1 | ||
式2 | ||
式3 | ||
式4 | ||
式5 | ||
式6 | ||
式7 | ||
式8 | ||
式9 |
二、矩阵求导的布局和形式
下面的提及的向量均默认为列向量,如:。
1. 分子布局与分母布局
对一个向量变元的实向量函数,由于 function 和 input 都是向量,所以对其求导可以采用以下两种布局形式:
- 采用分子布局形式求导:(分子是列向量形式,分母是行向量形式)
- 采用分母布局形式求导:(分母是列向量形式,分子是行向量形式)
简单总结来说,分子不转置就是分子布局,分母不转置就是分母布局;也可以说哪一部分是列向量就是哪种布局。
2. 行向量偏导形式与列向量偏导形式
对一个向量变元的实值标量函数求导,结果可以表示为如下两种形式:
- 结果表示为行向量偏导形式:(也叫做行偏导向量形式)
- 结果表示为列向量偏导形式:(也叫做列偏导向量、梯度向量形式)
3. Jacobian矩阵形式与梯度矩阵形式
对一个矩阵变元的实值标量函数求导,结果可以表示为如下两种形式:
- 结果表示为Jacobian矩阵(雅可比矩阵)形式:
- 结果表示为梯度矩阵形式:
4. 利用vec向量化来实现形式转化
先介绍一个符号 ,作用是将矩阵 按列堆栈来向量化;
解释一下, 就是把矩阵 的第 1 列,第 2 列,直到第 n 列取出来,然后按顺序组成一个列向量,即:
所以可以使用 将矩阵变元 向量化,转化为向量变元后再求导,则上面(9)和(11)这两种矩阵形式又可以转化为:
- 结果表示为行向量偏导形式:(也叫做行偏导向量形式)
- 结果表示为列向量偏导形式:(也叫做列偏导向量、梯度向量形式)
同理,对一个矩阵变元的实矩阵函数求导:
- 先把矩阵变元 转换成向量变元:
- 再把实矩阵函数 转换成实向量函数:
这样我们就成功把这个矩阵变元的实矩阵函数 ,转换成向量变元的实向量函数 ,最终本是四维的结果(m,n,p,q)和我们可以用二维的矩阵(pq,mn)和(mn,pq)表示如下:
- 表示为Jacobian矩阵(雅可比矩阵)形式:
- 结果表示为梯度矩阵形式:
三、分子布局和分母布局的总结
对上面的十个式子对比可以发现:
(5)式、(9)式、(8)式、(13)式其实与(3)式是一类,即分子布局;
(6)式、(11)式、(10)式、(14)式其实与(4)式是一类,即分母布局;
可以看出,矩阵求导结果的布局,无非就是分子的转置和向量化、分母的转置和向量化的各种组合而已。
我们列一个表格,总结分子布局、分子布局的本质:
分母 | 标量 | 列向量 | 行向量 | 原矩阵 | 矩阵转置 | |
---|---|---|---|---|---|---|
分子 | ||||||
标量 | 不讨论 | 分母布局 (6)式、(10)式 | 分子布局 (5)式、(8)式 | 分母布局 (11)式 | 分子布局 (9)式 | |
列向量 | 分子布局 | 无 | 分子布局 (3)式、(13)式 | 无 | 无 | |
行向量 | 分母布局 | 分母布局 (4)式、(14)式 | 无 | 无 | 无 |
上述第一列没有公式对应的 向量变元的实值标量函数 可以由我们通过(3)、(4)总结的规律推出,即:
分子不转置就是分子布局,分母不转置就是分母布局;也可以说哪一部分是列向量就是哪种布局;
也可以说,分子和分母谁转置了(是行向量),就是另外一种布局。
注意,上面的上述总结是建立在变元默认为列向量的前提下,如果规定变元为行向量,那么应当是:
分子不转置就是分子布局,分母不转置就是分母布局;也可以说哪一部分是行向量就是哪种布局;
也可以说,分子和分母谁转置了(是列向量),就是另外一种布局。