防错清单
- 先看形状。答案形状必须和变量一致。形状不对,说明你已经走进小巷了。
- 标量函数优先写成迹。迹是把矩阵表达式整理成梯度的传送带。
- 只做循环换位。\(\mathrm{tr}(\boldsymbol{A}\boldsymbol{B}\boldsymbol{C})=\mathrm{tr}(\boldsymbol{B}\boldsymbol{C}\boldsymbol{A})\),但一般不等于 \(\mathrm{tr}(\boldsymbol{A}\boldsymbol{C}\boldsymbol{B})\)。
- 同一个变量出现几次,就微分几次。\(\boldsymbol{x}^TAx\)、\(\boldsymbol{X}\boldsymbol{X}^T\) 都是典型陷阱。
- 对称条件不要偷用。只有 \(\boldsymbol{A}=\boldsymbol{A}^T\) 时,\((\boldsymbol{A}+\boldsymbol{A}^T)\boldsymbol{x}\) 才能变成 \(2Ax\)。
- 逆矩阵微分带负号。\(d\boldsymbol{X}^{-1}=-\boldsymbol{X}^{-1}(dX)\boldsymbol{X}^{-1}\),这个负号很会躲。
- 矩阵对矩阵优先想线性算子。必要时向量化,不要为了显得宏伟而制造巨型 Jacobian。
- 反向传播就是伴随算子。前向怎么扰动,反向就怎么把梯度送回变量。
好的矩阵求导结果,应该像一张整理过的办公桌。你能看出每一项从哪里来,也能看出每一项要去哪里。如果结果像暴风雨后的抽屉,多半不是数学深奥,而是还没把它收拾干净。
参考与灵感
本文按微分、迹技巧、向量化、Kronecker 积和伴随算子的路线重新组织,受你给的两篇“矩阵求导术”文章启发,但正文是本站原创整理。