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

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

正定値行列

全ての固有値が正の対称行列\mathbf{A}を正定値行列と呼びます。これは、2次形式\mathbf{x}^{T}\mathbf{A}\mathbf{x}が常に正であることと同条件です。\mathbf{A}が対称行列なら、


\mathbf{U}^{T}\mathbf{A}\mathbf{U}=\mathbf{\Lambda}\tag{1}

によって対角化できます。ここで、\mathbf{U}は固有ベクトルを並べた直交行列、\mathbf{\Lambda}は固有値を対角成分に持つ対角行列です。(参考:対称行列の対角化

ここで、


\mathbf{U}\mathbf{U}^{T}=\mathbf{I}\tag{2}

より、式(1)を変形すれば


\mathbf{A}=\mathbf{U}\mathbf{\Lambda}\mathbf{U}^{T} \tag{3}

です。式(3)より任意のベクトル\mathbf{x}に対し、


\begin{eqnarray*}
\mathbf{x}^{T}\mathbf{A}\mathbf{x} &=& \mathbf{x}^{T}\mathbf{U}\mathbf{\Lambda}\mathbf{U}^{T}\mathbf{x} \tag{4}\\
&=& \mathbf{x}^{T}\mathbf{U}\mathbf{\Lambda}(\mathbf{x}^{T}\mathbf{U})^{T} \tag{5}
\end{eqnarray*}

です。(参考:転置行列の定理

ここで、\mathbf{x}^{T}\mathbf{U}=(a_{1},\cdots,a_{n})とすれば、


\begin{eqnarray*}
式(5)&=& (a_{1},\cdots,a_{n})  \left(
    \begin{array}{ccc}
      \lambda_1 &  & 0 \\
       &   \ddots &  \\
       0   &  & \lambda_{n}
    \end{array}
  \right) 
\left(
    \begin{array}{c}
      a_{1} \\
       \vdots  \\
      a_{n}
    \end{array}
  \right) 
\tag{6}\\

&=& \sum_{i=1}^{n}\lambda_{i}a_{i}^{2} \tag{7}
\end{eqnarray*}

となります。したがって、非ゼロベクトル\mathbf{x}に対して\mathbf{x}^{T}\mathbf{A}\mathbf{x}が正なら固有値が全て正である、つまり正定値行列であるといえます。なお0を含む場合は半正定値行列と呼ばれます。