Z
∈
R
,
Y
m
∗
n
,
X
a
∗
b
Z \in R,Y_{m*n},X_{a*b}
Z∈R,Ym∗n,Xa∗b
d
Z
d
X
=
d
Z
d
Y
∗
d
Y
d
X
\frac{dZ}{dX}=\frac{dZ}{dY}*\frac{dY}{dX}
dXdZ=dYdZ∗dXdY
是错误的写法,因为维度不一致:
d
Z
d
X
或
d
Z
d
Y
是
标
量
对
矩
阵
求
导
,
结
果
为
a
∗
b
矩
阵
或
m
∗
n
矩
阵
而
d
Y
d
X
是
矩
阵
对
矩
阵
求
导
,
结
果
的
雅
克
比
矩
阵
为
m
n
∗
p
q
显
然
d
Z
d
Y
与
d
Y
d
X
维
度
不
一
致
,
正
确
写
法
是
把
所
有
矩
阵
列
向
量
化
d
Z
d
v
e
c
(
X
)
T
=
d
Z
d
v
e
c
(
Y
)
T
∗
d
v
e
c
(
Y
)
d
v
e
c
(
X
)
T
d
Z
d
v
e
c
(
Y
)
T
是
1
∗
m
n
向
量
,
d
v
e
c
(
Y
)
d
v
e
c
(
X
)
T
的
雅
克
比
矩
阵
是
m
n
∗
a
b
,
维
度
一
致
\frac{dZ}{dX} 或\frac{dZ}{dY}是标量对矩阵求导,结果为a*b矩阵或m*n矩阵 \\ \\ 而\frac{dY}{dX} 是矩阵对矩阵求导,结果的雅克比矩阵为mn*pq\\ \\ 显然\frac{dZ}{dY}与\frac{dY}{dX}维度不一致,正确写法是把所有矩阵列向量化\\ \\ \frac{dZ}{d\ vec(X)^T}=\frac{dZ}{d\ vec(Y)^T}*\frac{d\ vec(Y)}{d\ vec(X)^T} \\ \frac{dZ}{d\ vec(Y)^T}是1*mn向量,\frac{d\ vec(Y)}{d\ vec(X)^T} 的雅克比矩阵是mn*ab,维度一致
dXdZ或dYdZ是标量对矩阵求导,结果为a∗b矩阵或m∗n矩阵而dXdY是矩阵对矩阵求导,结果的雅克比矩阵为mn∗pq显然dYdZ与dXdY维度不一致,正确写法是把所有矩阵列向量化d vec(X)TdZ=d vec(Y)TdZ∗d vec(X)Td vec(Y)d vec(Y)TdZ是1∗mn向量,d vec(X)Td vec(Y)的雅克比矩阵是mn∗ab,维度一致
另一种情况,都是矩阵
矩
阵
:
Z
p
∗
q
,
Y
m
∗
n
,
X
a
∗
b
矩阵:Z_{p*q},Y_{m*n},X_{a*b}
矩阵:Zp∗q,Ym∗n,Xa∗b
d
Z
d
X
=
d
Z
d
Y
∗
d
Y
d
X
\frac{dZ}{dX}=\frac{dZ}{dY}*\frac{dY}{dX}
dXdZ=dYdZ∗dXdY
是正确的写法,因为维度一致
矩阵对矩阵求导的本质是向量对向量求导
d
Y
d
X
的
雅
克
比
矩
阵
为
d
v
e
c
(
Y
)
d
v
e
c
(
X
)
T
,
梯
度
矩
阵
为
d
v
e
c
(
Y
)
T
d
v
e
c
(
X
)
d
Z
d
X
的
梯
度
矩
阵
维
度
是
a
b
∗
p
q
,
雅
克
比
矩
阵
维
度
是
p
q
∗
a
b
d
Z
d
Y
的
梯
度
矩
阵
维
度
是
m
n
∗
p
q
,
雅
克
比
矩
阵
维
度
是
p
q
∗
m
n
d
Y
d
X
的
梯
度
矩
阵
维
度
是
a
b
∗
m
n
,
雅
克
比
矩
阵
维
度
是
m
n
∗
a
b
\frac{dY}{dX}的雅克比矩阵为\frac{d\ vec(Y)}{d\ vec(X)^T},梯度矩阵为\frac{d\ vec(Y)^T}{d\ vec(X)} \\ \frac{dZ}{dX} 的梯度矩阵维度是ab*pq,雅克比矩阵维度是pq*ab \\ \frac{dZ}{dY} 的梯度矩阵维度是mn*pq,雅克比矩阵维度是pq*mn \\ \frac{dY}{dX} 的梯度矩阵维度是ab*mn,雅克比矩阵维度是mn*ab
dXdY的雅克比矩阵为d vec(X)Td vec(Y),梯度矩阵为d vec(X)d vec(Y)TdXdZ的梯度矩阵维度是ab∗pq,雅克比矩阵维度是pq∗abdYdZ的梯度矩阵维度是mn∗pq,雅克比矩阵维度是pq∗mndXdY的梯度矩阵维度是ab∗mn,雅克比矩阵维度是mn∗ab
总结:
矩阵对矩阵求导的定义本身就已经列向量化,所以可以适用链式法则。
如果标量对矩阵求导、再对矩阵求导,就不可以直接使用链式法则,必须先把矩阵列向量化