正方行列(Square matrix)のトレース(trace)の定義と定義から成立する公式

行列を考える際に「トレース(trace)」は正方行列(Square matrix)の対角成分の和を表す概念です。機械学習や統計学を学ぶにあたってトレースの記号が出てくるときがあるので当記事ではトレース(trace)の定義と定義から成立する公式に関して取りまとめました。
「統計のための行列代数(Matrix Algebra From a Statistician’s Perspective)」のCh.$5$や「パターン認識と機械学習」の「Appendix C」を参考に作成を行いました。

基本事項のまとめ

トレース(trace)の定義

トレース(trace)は正方行列(Square matrix)の対角成分の和で定義され、$n \times n$正方行列$A=(a_{ij})$のトレース$\mathrm{tr}(A)$を下記のように表記する。
$$
\large
\begin{align}
\mathrm{tr}(A) &= a_{11} + a_{22} + \cdots + a_{nn} \\
&= \sum_{i=1}^{n} a_{ii}
\end{align}
$$

また、定数$k$を元に$[k]$を$1 \times 1$正方行列と考えるとき、$\mathrm{tr}([k])=k$のように考える。

単位行列(Identity matrices)$I_{n}$のトレース

$$
\large
\begin{align}
I_{n} = \left(\begin{array}{cccc} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{array} \right)
\end{align}
$$

上記のように$n \times n$単位行列$I_{n}$を考えるとき、$\mathrm{tr}(I_{n})$は下記のように計算できる。
$$
\large
\begin{align}
\mathrm{tr}(I_{n}) &= \sum_{i=1}^{n} 1 \\
&= n
\end{align}
$$

Matrices of ones$J_{n}$のトレース

$$
\large
\begin{align}
J_{n} = \left(\begin{array}{cccc} 1 & 1 & \cdots & 1 \\ 1 & 1 & \cdots & 1 \\ \vdots & \vdots & \ddots & \vdots \\ 1 & 1 & \cdots & 1 \end{array} \right)
\end{align}
$$

上記のように$n \times n$行列$J_{n}$を考えるとき、$\mathrm{tr}(J_{n})$は下記のように計算できる。
$$
\large
\begin{align}
\mathrm{tr}(I_{n}) &= \sum_{i=1}^{n} 1 \\
&= n
\end{align}
$$

トレース(trace)の公式

基本的な公式

$\mathrm{tr}(kA) = k \mathrm{tr}(A)$

定数$k$と$n \times n$正方行列$A=(a_{ij})$のトレースに関して$\mathrm{tr}(kA) = k \mathrm{tr}(A)$が成立することを以下に示す。
$$
\large
\begin{align}
\mathrm{tr}(kA) &= \sum_{i=1}^{n} k a_{ii} \\
&= k \sum_{i=1}^{n} a_{ii} \\
&= k \mathrm{tr}(A)
\end{align}
$$

$\mathrm{tr}(A+B) = \mathrm{tr}(A)+\mathrm{tr}(B)$

$n \times n$正方行列$A=(a_{ij}), B=(b_{ij})$のトレースに関して$\mathrm{tr}(A+B) = \mathrm{tr}(A)+\mathrm{tr}(B)$が成立することを以下に示す。
$$
\large
\begin{align}
\mathrm{tr}(A+B) &= \sum_{i=1}^{n} (a_{ii} + b_{ii}) \\
&= \sum_{i=1}^{n} a_{ii} + \sum_{i=1}^{n} b_{ii} \\
&= \mathrm{tr}(A) + \mathrm{tr}(B)
\end{align}
$$

$\mathrm{tr}(A^{\mathrm{T}}) = \mathrm{tr}(A)$

$n \times n$正方行列$A=(a_{ij})$のトレースに関して$\mathrm{tr}(A^{\mathrm{T}}) = \mathrm{tr}(A)$が成立することを以下に示す。
$$
\large
\begin{align}
\mathrm{tr}(A^{\mathrm{T}}) &= \sum_{i=1}^{n} a_{ii} \\
&= \mathrm{tr}(A)
\end{align}
$$

行列の積のトレースの公式

$\mathrm{tr}(AB) = \mathrm{tr}(B^{\mathrm{T}}A^{\mathrm{T}})$

$\mathrm{tr}(B^{\mathrm{T}}A^{\mathrm{T}}) = \mathrm{tr}((AB)^{\mathrm{T}})$なので、正方行列$X$に対して$\mathrm{tr}(X^{\mathrm{T}}) = \mathrm{tr}(X)$が成立することより$\mathrm{tr}(AB) = \mathrm{tr}(B^{\mathrm{T}}A^{\mathrm{T}})$が成立することがわかる。ここで$m \times n$行列$A$と$n \times m$行列$B$の積である$AB$は$m \times m$正方行列であることは注意しておくとよい。

$\mathrm{tr}(AB) = \mathrm{tr}(BA)$

$m \times n$行列$A=(a_{ij})$と$n \times m$行列$B=(b_{ij})$に関して$\mathrm{tr}(AB) = \mathrm{tr}(B^{\mathrm{T}}A^{\mathrm{T}})$が成立することを以下に示す。

$AB$の$i,j$成分を$(AB)_{ij}$、$BA$の$i,j$成分を$(BA)_{ij}$のように表す。このとき、$(AB)_{ij}, (BA)_{ij}$は下記のように表すことができる。
$$
\large
\begin{align}
(AB)_{ij} &= a_{i1}b_{1j} + a_{i2}b_{2j} + … + a_{in}b_{nj} \\
&= \sum_{k=1}^{n} a_{ik}b_{kj} \\
(BA)_{ij} &= a_{i1}b_{1j} + a_{i2}b_{2j} + … + a_{im}b_{mj} \\
&= \sum_{l=1}^{m} a_{il}b_{kl}
\end{align}
$$

上記より、$(AB)_{ii}, (BA)_{ii}$は下記のように表すことができる。
$$
\large
\begin{align}
(AB)_{ii} &= \sum_{k=1}^{n} a_{ik}b_{ki} \\
(BA)_{ii} &= \sum_{l=1}^{m} a_{il}b_{li}
\end{align}
$$

よって、$\mathrm{tr}(AB)$は下記のように表せる。
$$
\large
\begin{align}
\mathrm{tr}(AB) &= \sum_{l=1}^{m} \sum_{k=1}^{n} a_{lk}b_{kl} \\
&= \sum_{k=1}^{n} \sum_{l=1}^{m} a_{lk}b_{kl} = \mathrm{tr}(BA)
\end{align}
$$

上記より、$\mathrm{tr}(AB) = \mathrm{tr}(B^{\mathrm{T}}A^{\mathrm{T}})$が成立する。

$\mathrm{tr}(ABC) = \mathrm{tr}(CAB) = \mathrm{tr}(BCA)$

$ABC$を$A$と$BC$の積や$AB$と$C$の積のように見ることで、前項の$\mathrm{tr}(AB) = \mathrm{tr}(BA)$を用いて$\mathrm{tr}(ABC) = \mathrm{tr}(CAB) = \mathrm{tr}(BCA)$が成立することを示すことができる。

参考

・行列の定義まとめ
https://www.hello-statisticians.com/explain-terms-cat/matrix_def1.html
・統計のための行列代数 Ch.$1$ Matrices

・パターン認識と機械学習 Appendix C