本文承接上篇 https://zhuanlan.zhihu.com/p/24709748,来讲矩阵对矩阵的求导术。使用小写字母x表示标量,粗体小写字母表示列向量,大写字母X表示矩阵。矩阵对矩阵的求导采用了向量化的思路,常应用于二阶方法求解优化问题。
首先来琢磨一下定义。矩阵对矩阵的导数,需要什么样的定义?第一,矩阵F(p×q)对矩阵X(m×n)的导数应包含所有mnpq个偏导数,从而不损失信息;第二,导数与微分有简明的联系,因为在计算导数和应用中需要这个联系;第三,导数有简明的从整体出发的算法。我们先定义向量
(p×1)对向量
(m×1)的导数
(m×p),有
;再定义矩阵的(按列优先)向量化
(mn×1),并定义矩阵F对矩阵X的导数
(mn×pq)。导数与微分有联系
。几点说明如下:
- 按此定义,标量f对矩阵X(m×n)的导数
是mn×1向量,与上篇的定义不兼容,不过二者容易相互转换。为避免混淆,用记号
表示上篇定义的m×n矩阵,则有
。虽然本篇的技术可以用于标量对矩阵求导这种特殊情况,但使用上篇中的技术更方便。读者可以通过上篇中的算例试验两种方法的等价转换。
- 标量对矩阵的二阶导数,又称Hessian矩阵,定义为
(mn×mn),是对称矩阵。对向量
或矩阵
求导都可以得到Hessian矩阵,但从矩阵
出发更方便。