機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

行列の内積とトレース

正方行列\mathbf Aの対角成分の和をトレースと呼び、\mathrm{Tr}\mathbf Aと書きます。

例えば


  \mathbf A  = \left(
    \begin{array}{cccc}
      a_{11} & a_{12} & \ldots & a_{1n} \\
      a_{21} & a_{22} & \ldots & a_{2n} \\
      \vdots & \vdots & \ddots & \vdots \\
      a_{n1} & a_{n2} & \ldots & a_{nn}
    \end{array}
  \right) \tag{1}

のとき、


\displaystyle \mathrm{Tr} \mathbf A =\sum_{i} a_{ii} \tag{2}

です。

ここで、


\begin{eqnarray*}
  \mathbf A  &=& \left(
    \begin{array}{cccc}
      a_{11} & a_{12} & \ldots & a_{1n} \\
      a_{21} & a_{22} & \ldots & a_{2n} \\
      \vdots & \vdots & \ddots & \vdots \\
      a_{m1} & a_{m2} & \ldots & a_{mn}
    \end{array}
  \right) \tag{3}\\ \\
  \mathbf B  &=& \left(
    \begin{array}{cccc}
      b_{11} & b_{12} & \ldots & b_{1n} \\
      b_{21} & b_{22} & \ldots & b_{2n} \\
      \vdots & \vdots & \ddots & \vdots \\
      b_{m1} & b_{m2} & \ldots & b_{mn}
    \end{array}
  \right) \tag{4} \\
\end{eqnarray*}

のとき、


\begin{eqnarray*}
  \mathrm{Tr} \mathbf A \mathbf{B}^{T} &=& \mathrm{Tr} \left\{ \left(
    \begin{array}{cccc}
      a_{11} & a_{12} & \ldots & a_{1n} \\
      a_{21} & a_{22} & \ldots & a_{2n} \\
      \vdots & \vdots & \ddots & \vdots \\
      a_{m1} & a_{m2} & \ldots & a_{mn}
    \end{array}
  \right)
   \left(
    \begin{array}{cccc}
      b_{11} & b_{21} & \ldots & b_{m1} \\
      b_{12} & b_{22} & \ldots & b_{m2} \\
      \vdots & \vdots & \ddots & \vdots \\
      b_{1n} & b_{2n} & \ldots & b_{mn}
    \end{array}
  \right) \right\} \tag{5} \\
\displaystyle &=& \sum_{i=1} \sum_{j=1} a_{ij}b_{ij} \tag{6} \\
&=& \mathbf A \cdot \mathbf B \tag{7}
\end{eqnarray*}

となり、行列\mathbf A ,\mathbf Bの内積は、\mathbf A \mathbf B^{T}のトレースであることがわかります。 (参考:行列の内積) \mathbf A^{T} \mathbf Bのトレースでも同じです。また、\mathbf A \mathbf B\mathbf B \mathbf Aが正方行列になるとき、


\mathrm{Tr} \mathbf A \mathbf B = \mathrm{Tr} \mathbf B \mathbf A \tag{8}

が成り立ちます。(実際に簡単な行列で書き出せばわかります)

なお式(7)の関係は、行列でなくベクトルの場合も成り立ちます。


\begin{eqnarray*}
\mathrm{Tr}\mathbf x \mathbf y^{T} & = &
\mathrm{Tr} \left\{ \left(
    \begin{array}{c}
      x_1 \\
      x_2 \\
      \vdots \\
      x_n
    \end{array}
  \right) 
(y_1, y_2 \cdots y_n) \right\}
 \tag{9} \\
& = & \sum_i x_i y_i \tag{10}\\
& = & \mathbf x^{T} \mathbf y \tag{11} 
\end{eqnarray*}

(参考:ベクトルの内積と2乗和