跳转至

矩阵函数矩阵求导方法

1 向量对向量的导数

  1. 定义(即为jacobi矩阵)

  • 注意,这里是根据标量对向量的求导发展而来的。

2 矩阵对矩阵的导数

2.1 矩阵的向量化

  1. 定义

​ 为矩阵的向量化

2.2 矩阵的导数

  1. 定义

  2. 导数与微分的联系

  3. 说明

  4. 此定义和标量对矩阵求导定义不兼容,此处为的向量,记前文矩阵为,其大小为, 有

  5. 标量对矩阵的二阶导数,即矩阵,定义为​,这是个对称矩阵。对于向量​或者举着​求导都可以,但是从​求更方便。
  6. , 求导时矩阵被向量化,弊端是这在一定程度破坏了矩阵的结构,会导致结果变得形式复杂;好处是多元微积分中关于梯度、Hessian矩阵的结论可以沿用过来,只需将矩阵向量化。比如在牛顿法更新,满足
  7. 在资料中,矩阵对矩阵的导数还有其它定义,比如, , 它能兼容上篇中的标量对矩阵导数的定义,但微分与导数的联系不够简明,不便于计算和应用。

2.3 运算法则

2.3.1 向量化技巧

  1. 线性:

  2. 矩阵乘法:

  3. 证明:

  4. 特例:

  5. 转置

  6. 逐元素乘法

  7. , 其中按列优先限排成的对角阵

  8. 注意:若矩阵函数F是矩阵X经加减乘法、逆、行列式、逐元素函数等运算构成,则使用相应的运算法则对F求微分,再做向量化并使用技巧将其它项交换至左侧,对照导数与微分的联系。特别地,若矩阵退化为向量,对照导数与微分的联系,即能得到导数。

2.3.2 链式法则

  • 已知, 且是X的函数,如何求呢?

2.3.3 Kronecker积和交换矩阵恒等式

证明:

证明:

证明:

证明:

2.4 例题

  1. 1610651201547

  2. 如果退化向量

  3. 1610651223041

  4. 1610651233997

  5. 1610651242764

  6. 1610651253574 $$ X = \left[

\right] , y = \left[ \right] \ l = -y^TXw + 1^Tlog(1+exp(Xw))\ dl = tr(-y^TXdw)+tr(1^T(\frac{exp(Xw)}{1+exp(Xw)}\odot (Xdw))) \ = tr(X^T(\sigma(Xw)-y)^Tdw) \ \longrightarrow p = \frac{\partial l}{\partial w} = X^T(\sigma(Xw)-y) \ dp = X^T(\sigma'(Xw)\odot (Xdw))=X^Tdiag(\sigma'(Xw))Xdw \ = (X^Tdiag(\sigma'(Xw))X)dw \ \longrightarrow \frac{\partial^2 l}{\partial w^2} = X^Tdiag(\sigma'(Xw))X $$

  1. 1610651263503

  2. 注意,中,分母是一个常数,表示每个分子都要除以这个常数。可以证明按照的求导法则即可。