行列を考える際に「トレース(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)$が成立することを示すことができる。
固有値・固有ベクトルに関する公式
$\displaystyle \mathrm{tr}(A) = \sum_{i=1}^{M} \lambda_{i}$
$A$を固有ベクトルに基づいて列を構成する直交行列$U$と、固有値を対角に並べた対角行列$\Lambda$を用いて下記のように固有値分解を行うことを考える。
$$
\large
\begin{align}
A = U \Lambda U^{\mathrm{T}}
\end{align}
$$
このとき$\mathrm{tr}(A)$は下記のように変形できる。
$$
\large
\begin{align}
\mathrm{tr}(A) &= \mathrm{tr}(U \Lambda U^{\mathrm{T}}) \\
&= \mathrm{tr}(U^{\mathrm{T}} U \Lambda) \\
&= \mathrm{tr}(\Lambda) = \sum_{i=1}^{M} \lambda_{i}
\end{align}
$$
参考
・行列の定義まとめ
https://www.hello-statisticians.com/explain-terms-cat/matrix_def1.html
・統計のための行列代数 Ch.$1$ Matrices
・パターン認識と機械学習 Appendix C
[…] ・行列のトレース(trace)https://www.hello-statisticians.com/explain-terms-cat/trace_mat1.html […]