最近看论文时遇到很多有关矩阵迹的相关运算,故在网上搜索了不少相关资料,将其整理为此文。包含矩阵的迹相关的概念、性质和运算(如求导);此外还包含共轭转置对矩阵的求导——将矩阵本身和其共轭转置当作两个无关的变量即可。
一、定义
矩阵的迹是指:一个 $n\times n$ 矩阵 $\mathbf{A}$ 主对角线上各元素的和。即
$$
\operatorname{tr}(\mathbf{A})=\sum_{i=1}^na_{ii}
$$
显然,只有方阵才有迹。
二、迹的性质
$\operatorname{tr}(a)=a$
即:标量的迹就是其本身。在标量对矩阵或向量求导中应用较多。
$\operatorname{tr}(\mathbf{A})=\operatorname{tr}(\mathbf{A}^T)$
即:矩阵的迹等于其转置的迹。
证明:矩阵转置不改变主对角线元素。
$\operatorname{tr}(\mathbf{A}+\mathbf{B})=\operatorname{tr}(\mathbf{A})+\operatorname{tr}(\mathbf{B})$
$\operatorname{tr}(\mathbf{AB})=\operatorname{tr}(\mathbf{BA})$
证明:
$$
\begin{aligned}
\operatorname{tr}(\mathbf{A B})&=\sum_{i=1}^{n}(\mathbf{A B}){i i}=\sum{i=1}^{n} \sum_{j=1}^{m} a_{i j} * b_{j i} \
&=\sum_{j=1}^{m} \sum_{i=1}^{n} b_{j i} * a_{i j}=\sum_{j=1}^{m}(\mathbf{B A})_{j j}=\operatorname{tr}(\mathbf{B A})
\end{aligned}
$$$\operatorname{tr}(\mathbf{ABC})=\operatorname{tr}(\mathbf{CAB})=\operatorname{tr}(\mathbf{BCA})$
即:连乘矩阵的迹,循环交换位置后,迹不变。
证明:这是 $\operatorname{tr}(\mathbf{AB})=\operatorname{tr}(\mathbf{BA})$ 的推广。
$$
\operatorname{tr}(\mathbf{ABC})=\operatorname{tr}(\mathbf{(AB)C})=\operatorname{tr}(\mathbf{CAB})
$$$\operatorname{tr}((\mathbf{A}\odot\mathbf{B})^T\mathbf{C})=\operatorname{tr}((\mathbf{A})^T(\mathbf{B}\odot\mathbf{C}))$
矩阵乘法和迹交换,其中 $\odot$ 是哈德玛积,即对应元素之积。
$\operatorname{tr}(\mathbf{A})=\sum_{k=1}^n\lambda_k$
即:矩阵的迹等于矩阵特征值之和。
证明:可参考文章为什么特征值之和会等于矩阵的迹?。
若 $\mathbf{A}=\alpha\beta^T$,则 $\operatorname{tr}(\mathbf{A})=\operatorname{tr}(\alpha\beta^T)=\alpha^T\beta=\beta^T\alpha$
其中,$\alpha$ 和 $\beta$ 都是列向量。
$\operatorname{tr}(\mathbf{x}^T\mathbf{Ax})=\operatorname{tr}(\mathbf{Ax}\mathbf{x}^T)=\mathbf{x}^T\mathbf{Ax}$
即:二次型的迹就是其本身。其中,$\mathbf{x}$ 是列向量。因为二次型是一个 $1\times1$ 的矩阵。
三、矩阵的迹对矩阵求导
$\frac{\partial\operatorname{tr}(\mathbf{X})}{\partial\mathbf{X}}=\mathbf{I}$
证明:
$$
\frac{\partial \operatorname{tr}(\mathbf{X})}{\partial \mathbf{X}}=\left[\begin{array}{cccc}
\frac{\partial \sum_{i=1}^{n} x_{i i}}{\partial x_{11}} & \frac{\partial \sum_{i=1}^{n} x_{i i}}{\partial x_{12}} & \cdots & \frac{\partial \sum_{i=1}^{n} x_{i i}}{\partial x_{1 n}} \
& \frac{\partial \sum_{i=1}^{n} x_{i i}}{\partial x_{22}} & & \
& & \ddots & \
& & & \frac{\partial \sum_{i=1}^{n} x_{i i}}{\partial x_{n n}}
\end{array}\right]=\mathbf{I}
$$$\frac{\partial \operatorname{tr}(g(\mathbf{X}))}{\partial \mathbf{X}}=g^{\prime}(\mathbf{X})$
$\frac{\partial \operatorname{tr}(\mathbf{AX})}{\partial \mathbf{X}}=\frac{\partial \operatorname{tr}(\mathbf{XA})}{\partial \mathbf{X}}=\mathbf{A}^T$
证明:
由于
$$
\operatorname{tr}(\mathbf{A X})=\sum_{i=1}^{n} \sum_{j=1}^{m} a_{i j} * x_{j i}=\sum_{j=1}^{m} \sum_{i=1}^{n} x_{j i} * a_{i j}
$$
则 $\frac{\partial \operatorname{tr}(\mathbf{AX})}{\partial x_{ij}}=a_{ji}$ ,恰好是矩阵 $\mathbf{A}$ 的转置对应元素,因此得证。$\frac{\partial \operatorname{tr}(\mathbf{AX}^T)}{\partial \mathbf{X}}=\frac{\partial \operatorname{tr}(\mathbf{X}^T\mathbf{A})}{\partial \mathbf{X}}=\mathbf{A}$
证明同上。
$\frac{\partial \operatorname{tr}(\mathbf{AXB})}{\partial \mathbf{X}}=\frac{\partial \operatorname{tr}(\mathbf{XBA})}{\partial \mathbf{X}}=(\mathbf{BA})^T=\mathbf{A}^T\mathbf{B}^T$
证明:把矩阵 $\mathbf{BA}$ 当作整体再利用上面的定理即可。
$\frac{\partial \operatorname{tr}(\mathbf{AXB}\mathbf{X}^T)}{\partial \mathbf{X}}=\mathbf{AXB}+\mathbf{A}^T\mathbf{X}\mathbf{B}^T$
证明:分步求导。
$$
\begin{aligned}
\frac{\partial \operatorname{tr}(\mathbf{AXB}\mathbf{X}^T)}{\partial \mathbf{X}}&=\frac{\partial \operatorname{tr}(\mathbf{X}\mathbf{BX}^T\mathbf{A})}{\partial \mathbf{X}}+\frac{\partial \operatorname{tr}(\mathbf{X}^T\mathbf{AXB})}{\partial \mathbf{X}}\
&=(\mathbf{BX}^T\mathbf{A})^T+\mathbf{AXB}\
&=\mathbf{AXB}+\mathbf{A}^T\mathbf{X}\mathbf{B}^T
\end{aligned}
$$
四、含共轭的迹求导
$\frac{\partial \operatorname{tr}(\mathbf{X}^*)}{\partial \mathbf{X}}=\mathbf{0}$
将复数矩阵 $\mathbf{X}$ 写成实部和虚部,即 $\mathbf{X}=\mathbf{A}+i\mathbf{B}$ 。然后再分别求导即可证明。
$$
\frac{\partial \operatorname{tr}(\mathbf{X}^*)}{\partial \mathbf{X}}=\frac{\partial \operatorname{tr}(\mathbf{A}-i\mathbf{B})}{\partial (\mathbf{A}+i\mathbf{B})}=\frac{\partial \operatorname{tr}(\mathbf{A})}{\partial (\mathbf{A}+i\mathbf{B})}+\frac{\partial \operatorname{tr}(i\mathbf{B})}{\partial (\mathbf{A}+i\mathbf{B})}=\mathbf{0}
$$
即求导时,矩阵与其共轭矩阵相当于两个无关的变量。$\frac{\partial \operatorname{tr}(\mathbf{X})}{\partial \mathbf{X}^*}=\mathbf{0}$
$\frac{\partial \operatorname{tr}(\mathbf{AX}^H)}{\partial \mathbf{X}}=\mathbf{0}$
$\frac{\partial \operatorname{tr}(\mathbf{X}^H\mathbf{A}\mathbf{X})}{\partial \mathbf{X}}=(\mathbf{X}^H\mathbf{A})^T=\mathbf{A}^T\mathbf{X}^*$