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
总结:
矩阵对矩阵求导的定义本身就已经列向量化,所以可以适用链式法则。
如果标量对矩阵求导、再对矩阵求导,就不可以直接使用链式法则,必须先把矩阵列向量化