本文地址:http://blog.csdn.net/mounty_fsc/article/details/51583809
前言
本文为维基百科上矩阵微积分部分的翻译内容。本文为原文的翻译与个人总结,非一一对照翻译。由于水平不足理解不够处,敬请原谅与指出。原文地址https://en.wikipedia.org/wiki/Matrix_calculus。原文为矩阵微积分,本文题为矩阵求导,原因是原文主要介绍的是矩阵微分的内容。
1 简介
矩阵的微积分本质上是多元变量的微积分的问题,只是应用在矩阵空间上而已。
在讨论矩阵微分的时候,有两种布局方式,分子布局,与分母布局,第2,3部分不关注这个问题,第5部分以后介绍两种布局方式。
以下为六种以矩阵形式组织的常见的导数。
类型 | 标量 y | 向量 | 矩阵 Y |
---|---|---|---|
标量 x | ∂y∂x | ∂Y∂x | |
向量 x | ∂y∂x | ∂y∂x | |
矩阵 X | ∂y∂X |
其他三种方式并不常用,且符号也没有统一的认识。
2 符号
矩阵
M(n,m) 表示 n 行m 列的实矩阵,一般使用加粗大写字母表示,如 A,X,Y 等。向量
M(n,1) 为列向量,一般用小写加粗表示,如 a,x,y 等。标量
M(1,1) 为标量,一般用小写斜体表示,如 a,x,y 等。其他
XT 为转置, tr(X) 为迹, det(X) 为行列式。字母表前半 (a,b,c,⋯) 为常量,后半 (t,x,y,⋯)为变量
3 关于向量的导数
以分子布局来介绍,仅出于说明目的,不代表分子布局优于分母布局。
3.1 向量关于标量求导
向量
y=⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥
关于标量
x
求导可以表示为
此时为正切向量。
∂y∂x
为
y
的正切向量。注意,有映射
y:Rm→Rm
3.2 标量关于向量求导
标量
y
关于向量
此时为梯度向量。
∂y∂x
为标量
y
在空间
3.3 向量关于向量求导
向量函数(即函数组成的向量)
y=⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥
关于向量
x=⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥
的导数可以写作
∂y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x1∂y2∂x1⋮∂ym∂x1∂y1∂x2∂y2∂x2⋮∂ym∂x2⋯⋯⋱⋯∂y1∂xn∂y2∂xn⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥
此时,为Jacobian矩阵
4 关于矩阵的导数
4.1 矩阵关于标量求导
正切矩阵表示为 ∂Y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y11∂x∂y21∂x⋮∂ym1∂x∂y12∂x∂y22∂x⋮∂ym2∂x⋯⋯⋱⋯∂y1n∂x∂y2n∂x⋮∂ymn∂x⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥
4.2 标量关于矩阵求导
梯度矩阵表示为
∂y∂X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x11∂y∂x12⋮∂y∂x1q∂y∂x21∂y∂x22⋮∂y∂x2q⋯⋯⋱⋯∂y∂xp1∂y∂xp2⋮∂y∂xpq⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥
注意以上
X
为其索引的转置。
5 布局约定(Layout conventions)
由向量关于向量的求导
∂y∂x
可以得出两种矛盾的表示:结果表示为
n×m
矩阵或
m×n
矩阵。也就是把
y
表示为列向量
分子布局(Numerator layout),即准确表示是 ∂y∂xT ( y 为列向量),即Jacobian formulation。
分母布局(Denominator layout),即准确表示是
∂yT∂x ( y 为行向量),即Hessian formulation(也有些作者称为梯度布局,尽管梯度不够准确)
所以:
- 对于分子布局,正切向量
∂y∂x 为 y 为列向量,梯度向量 ∂y∂x 为行向量。 - 对于分母布局,正切向量 ∂y∂x 为 y 为行向量,梯度向量 ∂y∂x 为列向量。
- 对于分子布局,正切矩阵
∂Y∂x
为
Y
,梯度矩阵
∂y∂X 为 XT - 对于分母布局,正切矩阵 ∂Y∂x 为 YT ,梯度矩阵 ∂y∂X 为 X
然而,对于正切矩阵
- 统一使用分子布局,即
∂Y∂x
为
Y
,梯度矩阵
∂y∂X 为 XT - 使用混合布局,即
∂Y∂x
为
Y
,梯度矩阵
∂y∂X 为 X
注意:
- 并非所有书与论文从头为都是统一那个分子布局或者分母分的,往往是结合起来使用,根据上下文来确认。
- 分母布局与分子布局呈转置关系
6 恒等式
由以上可知,计算的结果可以通过转置在分子与分母布局中转换。
以下恒等式基于三条重要法则:求和法则(线性法则)、乘积法则、链式法则(注,类似标量的求导法则得知此三条法则),其中:
- 求和法则是通用的。
- 乘积法则对以下讨论大部分情况适用。由于矩阵乘法是不可交换的,所以需要给定矩阵相乘的顺序。标量关于矩阵求导不能直接使用。
- 链式法则只适用于部分情况。不适用与矩阵关于标量求导即标量关于矩阵求导。后者大部分情况涉及秩的计算。
6.1 向量关于向量求导
向量关于标量求导以及标量关于向量求导都可以看出是这种情况的特殊形式。
对于
为说明以上图中分子布局及分母布局中 y , x 的行列向量表示,把上图中部分项重新详细展开表示,可以有:
条件 | 表示(未带布局信息) | 分子布局 | 分母布局 |
---|---|---|---|
a 非 x 的函数 | ∂a∂x | ∂a∂xT=0 | ∂aT∂x=0 |
∂x∂x | ∂x∂xT=I | ∂xT∂x=I | |
A 非 x 的函数 | ∂Ax∂x | ∂Ax∂xT=A | ∂(Ax)T∂x=∂(xTAT)∂x=AT |
A 非 x 的函数 | ∂xTA∂x | ∂(xTA)T∂xT=∂ATx∂xT=AT | ∂xTA∂x=A |
a
非 | ∂au∂x | ∂au∂xT=a∂u∂xT | ∂auT∂x=a∂uT∂x |
6.2 标量关于向量求导
6.3 向量关于标量求导
6.4 标量关于矩阵求导
注意此处不适用链式及乘积法则。乘积法则可以借助微分及迹函数的性质得到,因为迹函数转置和循环排列:
tr(A)=tr(AT)
,
tr(ABCD)=tr(BCDA)=tr(CDAB)=tr(DABC)
。
根据这些性质,如计算
∂tr(AXBXTC)∂X
:
根据6.7中内容可以得到
6.5 矩阵关于标量求导
6.6 标量关于标量求导
涉及向量
涉及矩阵
6.7 微分形式
我们常常使用微分形式计算,最后转换成导数形式。仅在分子布局有用,以下” a ”为标量
标量关于矩阵
矩阵
微分到导数转换
从微分到导数的转换,首先转换成规范形式,然后按照一下等式转换。
8 矩阵角度看映射,函数
函数为一对一的关系,可以理解为输入为
映射为一对多的关系,可以理解为输入为
n
维,
当然,有时也称呼以上函数为标量函数,映射为向量函数(即由多个标量函数组成映射)