矩阵求导常用操作
网上关于矩阵求导的教程已经比较多了,这里就不一一介绍,只介绍一些个人觉得比较常用的。
约定
- 标量用小写字母或希腊字母表示,如$t$,$\alpha$ 等
- 向量用加粗的小写字母表示,例如,向量$\mathbb{x}$, $x_i$表示具体元素,向量默认是列向量,$\mathbf{x}^T$表示航向量。
- 矩阵用大写字母表示,如$A$等,其元素记做$a_{i, j}$。大写字母加下标表示不同的矩阵,例如$A_1$, $A_2$
- 实值函数和矩阵值函数用大写字母表示,如$F(\mathbb x)$, 向量值函数用小写加粗字母表示,如$\mathbb f(\mathbb x)$
- 其他特殊用途,会具体说明。
矩阵求导实际是对矩阵中的每一个元素分别求导。基本求导有以下几种:
- 矩阵值函数对实值求导
- 实值函数求导
- 向量值函数求导
多次出现求导法则
链式求导法则
常用求导公式
矩阵值函数对实值求导
-
矩阵值函数对实值求导,等于每一个元素分别对实值求导。
-
若函数$F(x): R \to R^{n \times m}$,$f_{i,j}$表示矩阵i行,j列的元素,则: 也记做:$\nabla _x F$
实值函数求导
实值函数对矩阵/向量求导
- 实值函数对矩阵求导,等于实值函数对矩阵的每一项分别求导,求导结果与自变量同型
- 若函数$F(\mathbf{x}): R^{n \times m} \to R$, 则得到一个$n\times m$的矩阵,且有:
也可以用劈形算子记做:$\nabla _{\mathbb x}F$
若函数$F(\mathbb x): R^n \to R$是一个实值函数,$F(\mathbb x) = a^T \mathbb x$
-
对列向量$\mathbb x$求导
-
对行向量求导
向量值函数对向量求导
向量值函数对向量值函数的求导,也就是雅克比矩阵。
- 若$\mathbb f(\mathbb{x}): R^n \to R^m$,则得到一个$m \times n$的矩阵,记做$\nabla x \mathbb f$:
向量求导法则
维度相容规则
求导结果应当满足前述基本条件,即:
- 实值对矩阵/向量求导,结果与矩阵/向量同型
- n维列向量对m维列向量求导,结果一定是n*m的矩阵。
当遇到复杂求导时,可以反复用这条规则及矩阵乘法对中间过程做检验。
链式法则
若多个向量依赖关系$\mathbb u \rightarrow \mathbb v \rightarrow \mathbb x$, 则: 变量多次出现法则
单独计算函数对自变量的每一次出现的求导,再把结果加起来。
常用求导公式
向量内积求导 若$\mathbb h(\mathbb x)$ $ \mathbb g(\mathbb x)$ 是两个m维的列向量,$A$是$m \times m$的方阵,$J_h(\mathbb x),J_g(\mathbb x)$ 分别是对应的雅克比矩阵,则 若$\alpha(\mathbb x),\mathbb f(\mathbb x)$分别是关于$\mathbb x$的实值函数和向量值函数,则