からっぽのしょこ

読んだら書く!書いたら読む!同じ事は二度調べ(たく)ない

2.3.0:分散共分散行列と固有値・固有ベクトルの関係の導出【PRMLのノート】

はじめに

 『パターン認識と機械学習』の独学時のまとめです。一連の記事は「数式の行間埋め」または「R・Pythonでのスクラッチ実装」からアルゴリズムの理解を補助することを目的としています。本とあわせて読んでください。
 また、機械学習で登場する確率分布について色々な角度から理解したいシリーズです。

 この記事では、分散共分散行列と固有値・固有ベクトルの関係を確認します。

【前の内容】

www.anarchive-beta.com

【実装編】

www.anarchive-beta.com

【他の記事一覧】

www.anarchive-beta.com

www.anarchive-beta.com

【この記事の内容】

分散共分散行列と固有値・固有ベクトルの関係の導出

 分散共分散行列(Variance–Covariance Matrix)と固有値(Eigenvalue)・固有ベクトル(Eigenvector)の関係を導出します。

固有ベクトル

 まずは、分散共分散行列の固有値と固有ベクトルを確認します。固有値・固有ベクトルの求め方などについては扱いません。

 分散共分散行列は、$D \times D$の正定値行列で定義されます。

$$ \boldsymbol{\Sigma} = \begin{pmatrix} \sigma_1^2 & \sigma_{1,2} & \cdots & \sigma_{1,D} \\ \sigma_{2,1} & \sigma_2^2 & \cdots & \sigma_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ \sigma_{D,1} & \sigma_{D,2} & \cdots & \sigma_D^2 \end{pmatrix} $$

 $D$次元ベクトルの変数を$\mathbf{x} = (x_1, x_2, \cdots, x_D)^{\top}$とすると、$\sigma_d$は$x_d$の標準偏差、$\sigma_d^2 = \sigma_{d,d}$は$x_d$の分散、$\sigma_{i,j} = \sigma_{j,i}$は$x_i, x_j$の共分散です。

 分散共分散行列$\boldsymbol{\Sigma}$は正定値行列なので、固有ベクトルの方程式が成り立ちます。

$$ \boldsymbol{\Sigma} \mathbf{u}_i = \lambda_i \mathbf{u}_i \tag{2.45} $$

 $\lambda_i$を固有値、$\mathbf{u}_i$を固有ベクトルと言い、$\mathbf{u}_i$は$D$次元ベクトルです。

$$ \mathbf{u}_i = \begin{pmatrix} u_{i,1} \\ u_{i,2} \\ \vdots \\ u_{i,D} \end{pmatrix} $$

 $i = 1, 2, \dots, D$の$D$個の固有ベクトル$\mathbf{u}_i^{\top}$を行とする(行方向に並べた)$D \times D$の行列を$\mathbf{U}$で表します。

$$ \mathbf{U} = \begin{pmatrix} \mathbf{u}_1^{\top} \\ \mathbf{u}_2^{\top} \\ \vdots \\ \mathbf{u}_D^{\top} \end{pmatrix} = \begin{pmatrix} \begin{pmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,D} \end{pmatrix} \\ \begin{pmatrix} u_{2,1} & u_{2,2} & \cdots & u_{2,D} \end{pmatrix} \\ \vdots \\ \begin{pmatrix} u_{D,1} & u_{D,2} & \cdots & u_{D,D} \end{pmatrix} \end{pmatrix} = \begin{pmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,D} \\ u_{2,1} & u_{2,2} & \cdots & u_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{D,1} & u_{D,2} & \cdots & u_{D,D} \end{pmatrix} $$

 $\mathbf{U}$の$i$行目が$\mathbf{u}_i^{\top}$に対応します。
 $\mathbf{U}$の転置行列は、$\mathbf{u}_i$を列とする(列方向に並べた)行列です。

$$ \mathbf{U}^{\top} = \begin{pmatrix} \mathbf{u}_1 & \mathbf{u}_2 & \cdots & \mathbf{u}_D \end{pmatrix} = \begin{pmatrix} \begin{pmatrix} u_{1,1} \\ u_{1,2} \\ \vdots \\ u_{1,D} \end{pmatrix} & \begin{pmatrix} u_{2,1} \\ u_{2,2} \\ \vdots \\ u_{2,D} \end{pmatrix} & \cdots & \begin{pmatrix} u_{D,1} \\ u_{D,2} \\ \vdots \\ u_{D,D} \end{pmatrix} \end{pmatrix} = \begin{pmatrix} u_{1,1} & u_{2,1} & \cdots & u_{D,1} \\ u_{1,2} & u_{2,2} & \cdots & u_{D,2} \\ \vdots & \vdots & \ddots & \vdots \\ u_{1,D} & u_{2,D} & \cdots & u_{D,D} \end{pmatrix} $$

 $\mathbf{U}^{\top}$の$i$列目が$\mathbf{u}_i$に対応します。

固有ベクトルの性質

 次は、固有ベクトルの性質を導出します。

 分散共分散行列は正定値行列なので、2つの固有ベクトル$\mathbf{u}_i, \mathbf{u}_j$の内積は、0か1の値をとります。(元の行列が実対称行列のとき、異なる($i \neq j$の)固有ベクトルの内積は1になります。)

$$ \begin{align} \mathbf{u}_i^{\top} \mathbf{u}_j &= \begin{pmatrix} u_{i,1} & u_{i,2} \cdots & u_{i,D} \end{pmatrix} \begin{pmatrix} u_{j,1} \\ u_{j,2} \\ \vdots \\ u_{j,D} \end{pmatrix} \\ &= u_{i,1} u_{j,1} + u_{i,2} u_{j,2} + \cdots + u_{i,D} u_{j,D} \\ &= \sum_{d=1}^D u_{i,d} u_{j,d} = I_{i,j} \tag{2.46} \end{align} $$

 $\{0, 1\}$の2値をとるので単位行列の成分$I_{i,j}$で表します。

$$ \mathbf{u}_i^{\top} \mathbf{u}_j = I_{i,j} = \begin{cases} 1 &\quad (i = j) \\ 0 &\quad (i \neq j) \end{cases} \tag{2.47} $$

 $I_{i,j}$は、$i = j$のとき1、$i \neq j$のとき0になります。よって、異なる($i \neq j$の)固有ベクトルは直交します(直角に交わります)。

 $\mathbf{U}, \mathbf{U}^{\top}$の行列の積は、単位行列$\mathbf{I}$になります。

$$ \begin{aligned} \mathbf{U} \mathbf{U}^{\top} &= \begin{pmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,D} \\ u_{2,1} & u_{2,2} & \cdots & u_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{D,1} & u_{D,2} & \cdots & u_{D,D} \end{pmatrix} \begin{pmatrix} u_{1,1} & u_{2,1} & \cdots & u_{D,1} \\ u_{1,2} & u_{2,2} & \cdots & u_{D,2} \\ \vdots & \vdots & \ddots & \vdots \\ u_{1,D} & u_{2,D} & \cdots & u_{D,D} \end{pmatrix} \\ &= \begin{pmatrix} \sum_{d=1}^D u_{1,d} u_{1,d} & \sum_{d=1}^D u_{1,d} u_{2,d} & \cdots & \sum_{d=1}^D u_{1,d} u_{D,d} \\ \sum_{d=1}^D u_{2,d} u_{1,d} & \sum_{d=1}^D u_{2,d} u_{2,d} & \cdots & \sum_{d=1}^D u_{2,d} u_{D,d} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{d=1}^D u_{D,d} u_{1,d} & \sum_{d=1}^D u_{D,d} u_{2,d} & \cdots & \sum_{d=1}^D u_{D,d} u_{D,d} \end{pmatrix} \\ &= \begin{pmatrix} I_{1,1} & I_{1,2} & \cdots & I_{1,D} \\ I_{2,1} & I_{2,2} & \cdots & I_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ I_{D,1} & I_{D,2} & \cdots & I_{D,D} \end{pmatrix} \\ &= \begin{pmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{pmatrix} = \mathbf{I} \end{aligned} $$

 各成分の計算が式(2.46)に対応していて、対角成分が($i = j$のとき)1、それ以外の成分が($i \neq j$のとき)0になります。
 この計算を、$\mathbf{u}_i$を並べた表現の行列でも行ってみます。

$$ \begin{aligned} \mathbf{U} \mathbf{U}^{\top} &= \begin{pmatrix} \mathbf{u}_1^{\top} \\ \mathbf{u}_2^{\top} \\ \vdots \\ \mathbf{u}_D^{\top} \end{pmatrix} \begin{pmatrix} \mathbf{u}_1 & \mathbf{u}_2 & \cdots & \mathbf{u}_D \end{pmatrix} \\ &= \begin{pmatrix} \mathbf{u}_1^{\top} \mathbf{u}_1 & \mathbf{u}_1^{\top} \mathbf{u}_2 & \cdots & \mathbf{u}_1^{\top} \mathbf{u}_D \\ \mathbf{u}_2^{\top} \mathbf{u}_1 & \mathbf{u}_2^{\top} \mathbf{u}_2 & \cdots & \mathbf{u}_2^{\top} \mathbf{u}_D \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{u}_D^{\top} \mathbf{u}_1 & \mathbf{u}_D^{\top} \mathbf{u}_2 & \cdots & \mathbf{u}_D^{\top} \mathbf{u}_D \end{pmatrix} \\ &= \begin{pmatrix} I_{1,1} & I_{1,2} & \cdots & I_{1,D} \\ I_{2,1} & I_{2,2} & \cdots & I_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ I_{D,1} & I_{D,2} & \cdots & I_{D,D} \end{pmatrix} \\ &= \begin{pmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{pmatrix} = \mathbf{I} \end{aligned} $$

 こちらも、各成分が式(2.46)に対応しているのが分かります。

 単位行列$\mathbf{I}$は対角行列なので、転置しても単位行列$\mathbf{I} = \mathbf{I}^{\top}$です。よって、$\mathbf{U}^{\top} \mathbf{U}$を転置しても単位行列になります。

$$ \mathbf{U} \mathbf{U}^{\top} = (\mathbf{U} \mathbf{U}^{\top})^{\top} = \mathbf{U}^{\top} \mathbf{U} = \mathbf{I} $$

 行列の性質$(\mathbf{A}^{\top} \mathbf{B})^{\top} = \mathbf{A} \mathbf{B}^{\top}$を使って変形しました。
 つまり、$\mathbf{U}$と$\mathbf{U}^{\top}$の積は掛ける順番に関わらず単位行列になります。

$$ \mathbf{U} \mathbf{U}^{\top} = \mathbf{U}^{\top} \mathbf{U} = \mathbf{I} $$

 このような行列を直交行列と言います。

 2つ目の等式の両辺に右から$\mathbf{U}$の逆行列を掛けます。

$$ \begin{aligned} \mathbf{U}^{\top} \mathbf{U} &= \mathbf{I} \\ \Leftrightarrow \mathbf{U}^{\top} \mathbf{U} \mathbf{U}^{-1} &= \mathbf{I} \mathbf{U}^{-1} \\ \Leftrightarrow \mathbf{U}^{\top} \mathbf{I} &= \mathbf{U}^{-1} \\ \Leftrightarrow \mathbf{U}^{\top} &= \mathbf{U}^{-1} \end{aligned} $$

 逆行列の定義$\mathbf{A} \mathbf{A}^{-1} = \mathbf{I}$により変形しました。
 直交行列は転置行列と逆行列が等しくなります。

$$ \mathbf{U}^{\top} = \mathbf{U}^{-1} $$


 $\mathbf{U}^{\top} \mathbf{U} = \mathbf{I}$の計算を確認します。

$$ \begin{aligned} \mathbf{U}^{\top} \mathbf{U} &= \begin{pmatrix} u_{1,1} & u_{2,1} & \cdots & u_{D,1} \\ u_{1,2} & u_{2,2} & \cdots & u_{D,2} \\ \vdots & \vdots & \ddots & \vdots \\ u_{1,D} & u_{2,D} & \cdots & u_{D,D} \end{pmatrix} \begin{pmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,D} \\ u_{2,1} & u_{2,2} & \cdots & u_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{D,1} & u_{D,2} & \cdots & u_{D,D} \end{pmatrix} \\ &= \begin{pmatrix} \sum_{i=1}^D u_{i,1}^2 & \sum_{i=1}^D u_{i,1} u_{i,2} & \cdots & \sum_{i=1}^D u_{i,1} u_{i,D} \\ \sum_{i=1}^D u_{i,2} u_{i,1} & \sum_{i=1}^D u_{i,2}^2 & \cdots & \sum_{i=1}^D u_{i,2} u_{i,D} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{i=1}^D u_{i,D} u_{i,1} & \sum_{i=1}^D u_{i,D} u_{i,2} & \cdots & \sum_{i=1}^D u_{i,D}^2 \end{pmatrix} \end{aligned} $$

 この行列が単位行列になるので

$$ \begin{aligned} \mathbf{U}^{\top} \mathbf{U} &= \begin{pmatrix} I_{1,1} & I_{1,2} & \cdots & I_{1,D} \\ I_{2,2} & I_{2,2} & \cdots & I_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ I_{D,1} & I_{D,2} & \cdots & I_{D,D} \end{pmatrix} \\ &= \begin{pmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{pmatrix} = \mathbf{I} \end{aligned} $$

となります。($\sum_{i=1}^D u_{i,k} u_{i,l} = I_{k,l}$になる理由を知りたいけど分からなかった。)
 この計算も$\mathbf{u}_i$を並べた行列のまま計算してみます。

$$ \begin{aligned} \mathbf{U}^{\top} \mathbf{U} &= \begin{pmatrix} \mathbf{u}_1 & \mathbf{u}_2 & \cdots & \mathbf{u}_D \end{pmatrix} \begin{pmatrix} \mathbf{u}_1^{\top} \\ \mathbf{u}_2^{\top} \\ \vdots \\ \mathbf{u}_D^{\top} \end{pmatrix} \\ &= \sum_{i=1}^D \mathbf{u}_i \mathbf{u}_i^{\top} \end{aligned} $$

 $\mathbf{u}_i, \mathbf{u}_i^{\top}$のベクトルの積は

$$ \begin{aligned} \mathbf{u}_i \mathbf{u}_i^{\top} &= \begin{pmatrix} u_{i,1} \\ u_{i,2} \\ \vdots \\ u_{i,D} \end{pmatrix} \begin{pmatrix} u_{i,1} & u_{i,2} & \cdots & u_{i,D} \end{pmatrix} \\ &= \begin{pmatrix} u_{i,1}^2 & u_{i,1} u_{i,2} & \cdots & u_{i,1} u_{i,D} \\ u_{i,2} u_{i,1} & u_{i,2}^2 & \cdots & u_{i,2} u_{i,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{i,D} u_{i,1} & u_{i,D} u_{i,2} & \cdots & u_{i,D}^2 \end{pmatrix} \end{aligned} $$

となるので、これを代入します。

$$ \begin{aligned} \mathbf{U}^{\top} \mathbf{U} &= \sum_{i=1}^D \begin{pmatrix} u_{i,1}^2 & u_{i,1} u_{i,2} & \cdots & u_{i,1} u_{i,D} \\ u_{i,2} u_{i,1} & u_{i,2}^2 & \cdots & u_{i,2} u_{i,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{i,D} u_{i,1} & u_{i,D} u_{i,2} & \cdots & u_{i,D}^2 \end{pmatrix} \\ &= \begin{pmatrix} u_{1,1}^2 & u_{1,1} u_{1,2} & \cdots & u_{1,1} u_{1,D} \\ u_{1,2} u_{1,1} & u_{1,2}^2 & \cdots & u_{1,2} u_{1,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{1,D} u_{1,1} & u_{1,D} u_{1,2} & \cdots & u_{1,D}^2 \end{pmatrix} + \begin{pmatrix} u_{2,1}^2 & u_{2,1} u_{2,2} & \cdots & u_{2,1} u_{2,D} \\ u_{2,2} u_{2,1} & u_{2,2}^2 & \cdots & u_{2,2} u_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{2,D} u_{2,1} & u_{2,D} u_{2,2} & \cdots & u_{2,D}^2 \end{pmatrix} \\ &\qquad + \cdots + \begin{pmatrix} u_{D,1}^2 & u_{D,1} u_{D,2} & \cdots & u_{D,1} u_{D,D} \\ u_{D,2} u_{D,1} & u_{D,2}^2 & \cdots & u_{D,2} u_{D,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{D,D} u_{D,1} & u_{D,D} u_{D,2} & \cdots & u_{D,D}^2 \end{pmatrix} \\ &= \begin{pmatrix} \sum_{i=1}^D u_{i,1}^2 & \sum_{i=1}^D u_{i,1} u_{i,2} & \cdots & \sum_{i=1}^D u_{i,1} u_{i,D} \\ \sum_{i=1}^D u_{i,2} u_{i,1} & \sum_{i=1}^D u_{i,2}^2 & \cdots & \sum_{i=1}^D u_{i,2} u_{i,D} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{i=1}^D u_{i,D} u_{i,1} & \sum_{i=1}^D u_{i,D} u_{i,2} & \cdots & \sum_{i=1}^D u_{i,D}^2 \end{pmatrix} \\ &= \begin{pmatrix} I_{1,1} & I_{1,2} & \cdots & I_{1,D} \\ I_{2,2} & I_{2,2} & \cdots & I_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ I_{D,1} & I_{D,2} & \cdots & I_{D,D} \end{pmatrix} \\ &= \begin{pmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{pmatrix} = \mathbf{I} \end{aligned} $$

 式展開の途中に出てきた次の関係を次節で使います。

$$ \mathbf{U}^{\top} \mathbf{U} = \sum_{i=1}^D \mathbf{u}_i \mathbf{u}_i^{\top} = \mathbf{I} \tag{1} $$


分散共分散行列と固有値・固有ベクトル

 固有ベクトルの性質を確認できたので、分散共分散行列と固有値・固有ベクトルの関係を導出します。

 固有ベクトルの方程式(2.45)を考えます。

$$ \boldsymbol{\Sigma} \mathbf{u}_i = \lambda_i \mathbf{u}_i \tag{2.45} $$

 両辺に、右から$\mathbf{u}_i^{\top}$を掛けます。

$$ \boldsymbol{\Sigma} \mathbf{u}_i \mathbf{u}_i^{\top} = \lambda_i \mathbf{u}_i \mathbf{u}_i^{\top} $$

 (見やすいように両辺を入れ替えて、)両辺で$i$について1から$D$まで和をとります。

$$ \begin{aligned} \sum_{i=1}^D \lambda_i \mathbf{u}_i \mathbf{u}_i^{\top} &= \sum_{i=1}^D \boldsymbol{\Sigma} \mathbf{u}_i \mathbf{u}_i^{\top} \\ &= \boldsymbol{\Sigma} \sum_{i=1}^D \mathbf{u}_i \mathbf{u}_i^{\top} \end{aligned} $$

 $\boldsymbol{\Sigma}$は$i$と無関係なので、$\sum_i$の外に出せます。
 先ほど確認した式(1)より、右辺は$\boldsymbol{\Sigma}$になります。

$$ \begin{aligned} \sum_{i=1}^D \lambda_i \mathbf{u}_i \mathbf{u}_i^{\top} &= \boldsymbol{\Sigma} \mathbf{I} \\ &= \boldsymbol{\Sigma} \end{aligned} $$

 よって、(両辺を再度入れ替えると)次の式が成り立ちます。

$$ \boldsymbol{\Sigma} = \sum_{i=1}^D \lambda_i \mathbf{u}_i \mathbf{u}_i^{\top} \tag{2.48} $$

 固有値と固有ベクトルの積の和によって、分散共分散行列を表せました。

 式(2.48)の右辺を展開して、行列の積に分解します。

$$ \begin{aligned} \boldsymbol{\Sigma} &= \begin{pmatrix} \sum_{i=1}^D \lambda_i u_{i,1}^2 & \sum_{i=1}^D \lambda_i u_{i,1} u_{i,2} & \cdots & \sum_{i=1}^D \lambda_i u_{i,1} u_{i,D} \\ \sum_{i=1}^D \lambda_i u_{i,2} u_{i,1} & \sum_{i=1}^D \lambda_i u_{i,2}^2 & \ \cdots & \sum_{i=1}^D \lambda_i u_{i,2} u_{i,D} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{i=1}^D \lambda_i u_{i,D} u_{i,1} & \sum_{i=1}^D \lambda_i u_{i,D} u_{i,2} & \cdots & \sum_{i=1}^D \lambda_i u_{i,D}^2 \end{pmatrix} \\ &= \begin{pmatrix} \lambda_1 u_{1,1} & \lambda_2 u_{2,1} & \cdots & \lambda_D u_{D,1} \\ \lambda_1 u_{1,2} & \lambda_2 u_{2,2} & \cdots & \lambda_D u_{D,2} \\ \vdots & \vdots & \ddots & \vdots \\ \lambda_1 u_{1,D} & \lambda_2 u_{2,D} & \cdots & \lambda_D u_{D,D} \end{pmatrix} \begin{pmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,D} \\ u_{2,1} & u_{2,2} & \cdots & u_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{D,1} & u_{D,2} & \cdots & u_{D,D} \end{pmatrix} \\ &= \begin{pmatrix} u_{1,1} & u_{2,1} & \cdots & u_{D,1} \\ u_{1,2} & u_{2,2} & \cdots & u_{D,2} \\ \vdots & \vdots & \ddots & \vdots \\ u_{1,D} & u_{2,D} & \cdots & u_{D,D} \end{pmatrix} \begin{pmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_D \end{pmatrix} \begin{pmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,D} \\ u_{2,1} & u_{2,2} & \cdots & u_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{D,1} & u_{D,2} & \cdots & u_{D,D} \end{pmatrix} \\ &= \mathbf{U}^{\top} \boldsymbol{\Lambda} \mathbf{U} \end{aligned} $$

 $D$個の固有値$\lambda_i$を対角成分とする対角行列を$\boldsymbol{\Lambda}$とおきました(精度行列ではありません)。

$$ \boldsymbol{\Lambda} = \begin{pmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_D \end{pmatrix} $$

 固有値による行列と固有ベクトルによる行列の積によって、分散共分散行列を表せました。

 もう一度、固有ベクトルの方程式を考えます。

$$ \boldsymbol{\Sigma} \mathbf{u}_i = \lambda_i \mathbf{u}_i \tag{2.45} $$

 両辺に、左から$\boldsymbol{\Sigma}$の逆行列と$\lambda_i$の逆数を掛けて、左辺の$\boldsymbol{\Sigma}$と右辺の$\lambda_i$を打ち消します。

$$ \begin{aligned} \frac{1}{\lambda_i} \boldsymbol{\Sigma}^{-1} \boldsymbol{\Sigma} \mathbf{u}_i &= \frac{1}{\lambda_i} \lambda_i \boldsymbol{\Sigma}^{-1} \mathbf{u}_i \\ \Leftrightarrow \frac{1}{\lambda_i} \mathbf{I} \mathbf{u}_i &= \boldsymbol{\Sigma}^{-1} \mathbf{u}_i \\ \Leftrightarrow \frac{1}{\lambda_i} \mathbf{u}_i &= \boldsymbol{\Sigma}^{-1} \mathbf{u}_i \end{aligned} $$

 さらに、右から$\mathbf{u}_i^{\top}$を掛けます。

$$ \frac{1}{\lambda_i} \mathbf{u}_i \mathbf{u}_i^{\top} = \boldsymbol{\Sigma}^{-1} \mathbf{u}_i \mathbf{u}_i^{\top} $$

 両辺で$i$について1から$D$まで和をとると、式(1)より右辺は$\boldsymbol{\Sigma}$の逆行列になります。

$$ \begin{aligned} \sum_{i=1}^D \frac{1}{\lambda_i} \mathbf{u}_i \mathbf{u}_i^{\top} &= \boldsymbol{\Sigma}^{-1} \sum_{i=1}^D \mathbf{u}_i \mathbf{u}_i^{\top} \\ &= \boldsymbol{\Sigma}^{-1} \mathbf{I} \\ &= \boldsymbol{\Sigma}^{-1} \end{aligned} $$

 よって、(両辺を入れ替えると)次の式が成り立ちます。

$$ \boldsymbol{\Sigma}^{-1} = \sum_{i=1}^D \frac{1}{\lambda_i} \mathbf{u}_i \mathbf{u}_i^{\top} \tag{2.49} $$

 分散共分散行列の逆行列も、固有値と固有ベクトルで表せました。

 式(2.49)の右辺を展開して、行列の積に分解します。

$$ \begin{aligned} \boldsymbol{\Sigma}^{-1} &= \begin{pmatrix} \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,1}^2 & \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,1} u_{i,2} & \cdots & \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,1} u_{i,D} \\ \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,2} u_{i,1} & \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,2}^2 & \ \cdots & \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,2} u_{i,D} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,D} u_{i,1} & \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,D} u_{i,2} & \cdots & \sum_{i=1}^D \frac{1}{\lambda_i} u_{i,D}^2 \end{pmatrix} \\ &= \begin{pmatrix} \frac{1}{\lambda_1} u_{1,1} & \frac{1}{\lambda_2} u_{2,1} & \cdots & \frac{1}{\lambda_D} u_{D,1} \\ \frac{1}{\lambda_1} u_{1,2} & \frac{1}{\lambda_2} u_{2,2} & \cdots & \frac{1}{\lambda_D} u_{D,2} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{1}{\lambda_1} u_{1,D} & \frac{1}{\lambda_2} u_{2,D} & \cdots & \frac{1}{\lambda_D} u_{D,D} \end{pmatrix} \begin{pmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,D} \\ u_{2,1} & u_{2,2} & \cdots & u_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{D,1} & u_{D,2} & \cdots & u_{D,D} \end{pmatrix} \\ &= \begin{pmatrix} u_{1,1} & u_{2,1} & \cdots & u_{D,1} \\ u_{1,2} & u_{2,2} & \cdots & u_{D,2} \\ \vdots & \vdots & \ddots & \vdots \\ u_{1,D} & u_{2,D} & \cdots & u_{D,D} \end{pmatrix} \begin{pmatrix} \frac{1}{\lambda_1} & 0 & \cdots & 0 \\ 0 & \frac{1}{\lambda_2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \frac{1}{\lambda_D} \end{pmatrix} \begin{pmatrix} u_{1,1} & u_{1,2} & \cdots & u_{1,D} \\ u_{2,1} & u_{2,2} & \cdots & u_{2,D} \\ \vdots & \vdots & \ddots & \vdots \\ u_{D,1} & u_{D,2} & \cdots & u_{D,D} \end{pmatrix} \\ &= \mathbf{U}^{\top} \boldsymbol{\Lambda}^{-1} \mathbf{U} \end{aligned} $$

 $D$個の固有値の逆数$\frac{1}{\lambda_i}$を対角成分とする対角行列は、$\boldsymbol{\Lambda}$の逆行列です。

$$ \boldsymbol{\Lambda}^{-1} = \begin{pmatrix} \frac{1}{\lambda_1} & 0 & \cdots & 0 \\ 0 & \frac{1}{\lambda_2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \frac{1}{\lambda_D} \end{pmatrix} $$

 対角行列の逆行列は、対角成分の逆数を対角成分とする対角行列になります。
 固有値(の逆数)による行列と固有ベクトルによる行列の積によって、分散共分散行列の逆行列を表せました。

 この記事では、分散共分散行列と固有値・固有ベクトルの関係を導出しました。次は、固有ベクトルによるガウス分布の回転を導出します。

参考文献

  • C.M.ビショップ著,元田 浩・他訳『パターン認識と機械学習 上』,丸善出版,2012年.

おわりに

 愚直に成分を書き出したら特別なことはしてないし難しくないよね。嘘です、2・3日かかりました。

【次の内容】

www.anarchive-beta.com