介绍 Introduction
In this post, we hope to solve all derivative problems with matrix via the matrix differentiation + trace trick. We denote by lowercase letter , bold lowercase letter , and bold uppercase letter a scalar, a vector, and a matrix, respectively. If we denote the entry of a vector and a matrix by and , and denotes the function of matrix , then we can intuitively define the dirivative of to as:
Futhermore, we can build the connection between this derivation and matrix calculus as follows:
.
在这篇博客中,我们通过微分的思想来统一解决矩阵的一系列求导问题。我们用小写字母 , 小写粗体字母 , 大写粗体字母 分别表示标量,向量和矩阵。
其中向量的元素表示为 , 矩阵的元素表示为 。 如果 表示关于矩阵的函数,则关于矩阵的导数可以直觉地定义为:
从而,我们可以建立起矩阵与微分的关联:
.
The operational criterion for matrix differentiation 矩阵微分运算法则
Derivative of the Scalar to Matrix
Trace Trick
例1. 构造函数 No.1
.
Process:
$ = \text{d}(\boldsymbol{a}^\top\boldsymbol{X}\boldsymbol{b})$
Answer:
例 2. 构造函数 No.2
.
Process:
$ = \text{d}(\boldsymbol{a}^\top e^{\boldsymbol{X}\boldsymbol{b}})= \text{tr}[\boldsymbol{a}\top\text{d}(e{\boldsymbol{X}\boldsymbol{b}})]$
Answer:
例 3. 构造函数 No.3
.
Process:
$ = \text{tr} [\text{d} (\boldsymbol{Y}^\top\boldsymbol{M}\boldsymbol{Y})]$
Answer:
例 4. Linear Regression
.
Process:
$\text{d} l $
Answer:
例 5. Maximum Likelihood Estimation (MLE) for the Multivariate Normal Distribution
.
Process:
$\text{d} \ell $
Answer:
例 6. Multinomial Logistic Regression.
.
Process:
$\ell $
$\text{d} \ell $
Answer:
例 7. Back Propagation (BP) for Multi-Layer Perceptron (MLP)
.
Process:
$\ell $
$ = -\sum_{i=1}^N \text{tr}\left{\boldsymbol{y}_i^\top\text{d} [\boldsymbol{W}_2\sigma(\boldsymbol{W}_1\boldsymbol{x}_i + \boldsymbol{b}_1) + \boldsymbol{b}_2] - \frac{1}{\boldsymbol{1}^\top e^{\boldsymbol{W}_2\sigma(\boldsymbol{W}_1\boldsymbol{x}_i + \boldsymbol{b}_1) + \boldsymbol{b}_2}} \text{d} [\boldsymbol{1}^\top e^{\boldsymbol{W}_2\sigma(\boldsymbol{W}_1\boldsymbol{x}_i + \boldsymbol{b}_1) + \boldsymbol{b}_2}]\right}$
Answer:
Derivative of the Matrix to Matrix
假设是关于向量的函数。不失优雅地(不考虑矩阵布局),我们由向量微分与偏导的关联(),反推给出列向量对列向量的偏导定义如下:
该布局默认为分母布局。在分子布局下,
在给出矩阵对矩阵的导数定义前,我们先定义矩阵的向量化为。从而进一步地我们定义矩阵对矩阵的导数如下:
同时,导数与微分的联系可以不失一般地表示为:
.
若降级为标量时,为了统一表示,我们记。在此基础上求二阶导,得到机器学习中常见的 Hessian matrix:
.
Notice 1: 若从分子布局和分母布局的角度出发,与微分相关联且不失一般性的布局为分母布局,机器学习和优化理论常用此布局。
Notice 2: 矩阵对矩阵求导定义除了分子布局与分母布局外,还可以有其它定义,例如:
然而,该定义只可兼容标量对矩阵的求导,无法配合微分进行运算,因此不是"好"的定义。
假设纯在复合函数,则 . 因此,.
Vectorization Trick
-
-
-
-
Proof:
Thus,
-
-
-
Proof:
构造函数
例 8. 构造函数
Process:
Answer:
例 9. 构造函数
,求二阶导(Hessian Matrix).
Process:
$ = \text{d}\log|\boldsymbol{X}|$
Hence,
Answer:
例 10. 构造函数
Process:
Answer:
例 11. 一元 logistic 回归
,求和,其中.
Process:
$\text{d} \ell $
Answer:
例 12. 带多重样本的一元 logistic 回归
针对包含多重样本的数据集 ,
Process No.1:
The process of 例 11
Answer No.1:
Process No. 2:
Answer No.2:
例 13. 多元 logistic 回归
,求和,其中且为 one-hot 编码, .
Process:
Answer:
写在最后:
-
注意例 4 和 5 中红色标注部分,不含微分对象的变量尽量左移可以给微分求解过程去除不必要的麻烦。
-
本文为参考文献所涉及的两篇博客的吸收消化理解精炼,仅供学习参考使用。
Reference
[1] 矩阵求导术(上) - 长躯鬼侠的文章 - 知乎 https://zhuanlan.zhihu.com/p/24709748
[2] 矩阵求导术(下) - 长躯鬼侠的文章 - 知乎 https://zhuanlan.zhihu.com/p/24863977