微分法
求矩阵导数最稳的方法是先求微分。不要先背“答案应该是什么”。背公式像背菜单,第一次点菜很快,遇到没见过的菜就露馅;微分法像会做饭,冰箱里有什么都能凑出一顿。
四条基本规则
\(d(\boldsymbol{A}+\boldsymbol{B})=dA+dB\)
\(d(AB)=dA\,\boldsymbol{B}+\boldsymbol{A}\,dB\)
\(d(\boldsymbol{X}^T)=(dX)^T\)
\(d(\boldsymbol{X}^{-1})=-\boldsymbol{X}^{-1}(dX)\boldsymbol{X}^{-1}\)
乘法规则最容易漏项。\(AB\) 的变化,不只是 \(\boldsymbol{A}\) 变,也可能是 \(\boldsymbol{B}\) 变。它像两个人搬沙发:左边动一步、右边动一步,沙发的总姿态都变了。只算一边,就是让另一个搬家具的人白干。
为什么微分比背公式稳
因为微分天然记录“变化从哪里来”。例如 \(f=\boldsymbol{x}^T \boldsymbol{A} \boldsymbol{x}\),如果你只背 \(2Ax\),一旦 \(\boldsymbol{A}\) 不对称就会翻车。微分会诚实地告诉你:
\[ df = d\boldsymbol{x}^T \boldsymbol{A} \boldsymbol{x} + \boldsymbol{x}^T \boldsymbol{A} dx. \]第一项来自左边那个 \(\boldsymbol{x}\),第二项来自右边那个 \(\boldsymbol{x}\)。它们不是双胞胎,只是刚好穿得像。把它们都整理成 \(dx\) 的系数,才得到 \((\boldsymbol{A}+\boldsymbol{A}^T)\boldsymbol{x}\)。
迹与 Frobenius 内积
迹 \(\mathrm{tr}(\cdot)\) 是矩阵求导里的礼宾司。它最有用的技能是让矩阵循环换座,但不是随便换座。
迹技巧
\[ \mathrm{tr}(\boldsymbol{A}\boldsymbol{B}\boldsymbol{C})=\mathrm{tr}(\boldsymbol{B}\boldsymbol{C}\boldsymbol{A})=\mathrm{tr}(\boldsymbol{C}\boldsymbol{A}\boldsymbol{B}). \]注意:这是循环换位,不是自由洗牌。\(ABC\) 可以变成 \(BCA\),但不能说变成 \(ACB\) 就变成了。火车车厢可以整体转圈,不能把二号车厢悄悄塞到五号车厢后面。
几条常用规则:
\[ \mathrm{tr}(\boldsymbol{A})=\mathrm{tr}(\boldsymbol{A}^T),\qquad \boldsymbol{a}^T \boldsymbol{b}=\mathrm{tr}(\boldsymbol{a}^T \boldsymbol{b})=\mathrm{tr}(\boldsymbol{b}\boldsymbol{a}^T), \] \[ \mathrm{tr}(\boldsymbol{A}\,d\boldsymbol{X}\,\boldsymbol{B})=\mathrm{tr}(\boldsymbol{B}\boldsymbol{A}\,d\boldsymbol{X}). \]最后一条就是“把 \(dX\) 赶到识别位置”的常用动作。它像整理书桌,把便签都贴到文件正面,方便最后一眼认出谁是谁。
Frobenius 内积
对同形矩阵 \(\boldsymbol{A},\boldsymbol{B}\),Frobenius 内积定义为:
\[ \langle \boldsymbol{A},\boldsymbol{B}\rangle_F=\mathrm{tr}(\boldsymbol{A}^T \boldsymbol{B})=\sum_{ij}A_{ij}B_{ij}. \]它告诉我们:矩阵空间也可以像普通向量空间一样谈“夹角”和“投影”。于是标量函数的微分可以写成:
\[ df=\langle \nabla_{\boldsymbol{X}} f,dX\rangle_F. \]这其实就是前面的 \(\mathrm{tr}((\nabla_{\boldsymbol{X}} f)^T dX)\)。换句话说,梯度是那个最会“解释变化”的矩阵:你给它一个小扰动 \(dX\),它立刻告诉你 \(f\) 会往哪边变。