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

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

分散共分散行列の半正定値性

共分散行列\mathbf{\Sigma}は半正定値行列であることを確認します。

共分散行列\mathbf{\Sigma}ij成分を\Sigma_{ij}を考えると、共分散行列の定義(参考:多変量正規分布)より、


\begin{eqnarray*}
\Sigma_{ij} &=&\mathrm{Cov}(X,Y) \tag{1}\\
 &=& E[(X_{i}-E[X_{i}])(X_{j}-E[X_{j}])] \tag{2} \\ 
\displaystyle  &=& \frac{1}{N}\sum_{k=1}^{N} (x_{i}^{(k)}-E[X_{i}])(x_{j}^{(k)}-E[X_{j}]) \tag{3} \\ 

\end{eqnarray*}

です。 ここで、y_{i}^{(k)} = x_{i}^{(k)}-E[X_{i}]とし、\mathbf{y}_{i} = (y_{i}^{(1)},\cdots,y_{i}^{(N)})^{T} とすれば、


\displaystyle \Sigma_{ij} = \frac{1}{N} \mathbf{y}_{i}^{T}\mathbf{y}_{j} \tag{4}

と書けます。

したがって共分散行列は、式(4)より、


\begin{eqnarray*}
\displaystyle \mathbf{\Sigma} &=& \frac{1}{N} \left(
    \begin{array}{ccc}
      \mathbf{y}_{1}^{T}\mathbf{y}_{1} & \cdots & \mathbf{y}_{1}^{T}\mathbf{y}_{N}  \\
        \vdots  &   \ddots &  \vdots   \\
       \mathbf{y}_{N}^{T}\mathbf{y}_{1}    & \cdots & \mathbf{y}_{N}^{T}\mathbf{y}_{N} 
    \end{array}
  \right) \tag{5} \\
&=&  \left(
    \begin{array}{c}
      \mathbf{y}_{1}^{T} \\
       \vdots  \\
      \mathbf{y}_{n}^{T}
    \end{array}
  \right)
(\mathbf{y}_{1},\cdots,\mathbf{y}_{n})  
 \tag{6}
\end{eqnarray*}

と書けます。ここで\mathbf{Y}=(\mathbf{y}_{1},\cdots,\mathbf{y}_{n})  とすれば、


\displaystyle \mathbf{\Sigma} =\frac{1}{N} \mathbf{Y}^{T}\mathbf{Y} \tag{7}

です。

ここで任意のベクトル\mathbf{z}に対する二次形式を考え、転置行列の定理を使えば、


\displaystyle \frac{1}{N} \mathbf{z}^{T} \mathbf{Y}^{T}\mathbf{Y}\mathbf{z} = \frac{1}{N} (\mathbf{Y}\mathbf{z})^{T}\mathbf{Y}\mathbf{z} \ge 0 \tag{8}

です。二次形式が\ge 0ですので、定義より半正定値行列であることがわかります。(参考:正定値行列