防错清单

  • 先看形状。答案形状必须和变量一致。形状不对,说明你已经走进小巷了。
  • 标量函数优先写成迹。迹是把矩阵表达式整理成梯度的传送带。
  • 只做循环换位。\(\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 积和伴随算子的路线重新组织,受你给的两篇“矩阵求导术”文章启发,但正文是本站原创整理。