矩阵函数矩阵求导方法¶
1 向量对向量的导数¶
- 定义(即为jacobi矩阵)
- 注意,这里是根据标量对向量的求导发展而来的。
2 矩阵对矩阵的导数¶
2.1 矩阵的向量化¶
- 定义
为矩阵的向量化
2.2 矩阵的导数¶
-
定义
-
导数与微分的联系
-
说明
-
此定义和标量对矩阵求导定义不兼容,此处为的向量,记前文矩阵为,其大小为, 有。
- 标量对矩阵的二阶导数,即矩阵,定义为,这是个对称矩阵。对于向量或者举着求导都可以,但是从求更方便。
- , 求导时矩阵被向量化,弊端是这在一定程度破坏了矩阵的结构,会导致结果变得形式复杂;好处是多元微积分中关于梯度、Hessian矩阵的结论可以沿用过来,只需将矩阵向量化。比如在牛顿法更新,满足。
- 在资料中,矩阵对矩阵的导数还有其它定义,比如, , 它能兼容上篇中的标量对矩阵导数的定义,但微分与导数的联系不够简明,不便于计算和应用。
2.3 运算法则¶
2.3.1 向量化技巧¶
-
线性:
-
矩阵乘法:
-
证明:
-
特例:
-
转置
-
-
逐元素乘法
-
, 其中是按列优先限排成的对角阵
-
注意:若矩阵函数F是矩阵X经加减乘法、逆、行列式、逐元素函数等运算构成,则使用相应的运算法则对F求微分,再做向量化并使用技巧将其它项交换至左侧,对照导数与微分的联系。特别地,若矩阵退化为向量,对照导数与微分的联系,即能得到导数。
2.3.2 链式法则¶
- 已知, 且是X的函数,如何求呢?
2.3.3 Kronecker积和交换矩阵恒等式¶
证明:
证明:
证明:
证明:
2.4 例题¶
-
-
如果退化向量
-
-
-
-
$$ 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 $$
-
-
注意,中,分母是一个常数,表示每个分子都要除以这个常数。可以证明按照的求导法则即可。