矩阵对矩阵求导,标量对矩阵求导,链式法则

Z ∈ R , Y m ∗ n , X a ∗ b Z \in R,Y_{m*n},X_{a*b} ZR,Ymn,Xab d Z d X = d Z d Y ∗ d Y d X \frac{dZ}{dX}=\frac{dZ}{dY}*\frac{dY}{dX} dXdZ=dYdZdXdY
是错误的写法,因为维度不一致:
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,维度一致 dXdZdYdZabmndXdYmnpqdYdZdXdYd vec(X)TdZ=d vec(Y)TdZd vec(X)Td vec(Y)d vec(Y)TdZ1mn,d vec(X)Td vec(Y)mnab

另一种情况,都是矩阵
矩 阵 : Z p ∗ q , Y m ∗ n , X a ∗ b 矩阵:Z_{p*q},Y_{m*n},X_{a*b} Zpq,Ymn,Xab d Z d X = d Z d Y ∗ d Y d X \frac{dZ}{dX}=\frac{dZ}{dY}*\frac{dY}{dX} dXdZ=dYdZdXdY
是正确的写法,因为维度一致
矩阵对矩阵求导的本质是向量对向量求导
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 dXdYd vec(X)Td vec(Y)d vec(X)d vec(Y)TdXdZabpqpqabdYdZmnpqpqmndXdYabmnmnab
总结:
矩阵对矩阵求导的定义本身就已经列向量化,所以可以适用链式法则。
如果标量对矩阵求导、再对矩阵求导,就不可以直接使用链式法则,必须先把矩阵列向量化

猜你喜欢

转载自blog.csdn.net/qq_51750957/article/details/128270535