機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

PRML演習問題 2.20(標準) www

問題

正定値行列 {\bf\Sigma} は次の二次形式が、任意の実ベクトル {\bf a} について正になる
ということで定義できる。

\begin{eqnarray}
{\bf a}^\top{\bf\Sigma}{\bf a}\tag{2.285}
\end{eqnarray}

{\bf\Sigma} が正定値になる必要十分条件は、
(2.45) で定義される \bf\Sigma のすべての固有値 \lambda_i が正となることであることを示せ。

参照

\begin{eqnarray}
{\bf\Sigma}{\bf u}_i=\lambda_i{\bf u}_i\tag{2.45}
\end{eqnarray}

解答

まず、「全ての固有値が正」 \Rightarrow{\bf\Sigma} が正定値行列」を示します。

{\bf u}_1,\ldots,{\bf u}_D{\mathbb R}^D の基底ベクトルとします。
任意の {\bf a}\in{\mathbb R}^D は次のように表せます。

\begin{eqnarray}
{\bf a}=a_1{\bf u}_1+\cdots+a_D{\bf u}_D\tag{1}
\end{eqnarray}

{\bf a}^\top{\bf\Sigma}{\bf a}\ ({\bf a}\not={\bf 0}) を計算します。

\begin{eqnarray}
{\bf a}^\top{\bf\Sigma}{\bf a}&=&(a_1{\bf u}_1+\cdots+a_D{\bf u}_D)^\top{\bf\Sigma}(a_1{\bf u}_1+\cdots+a_D{\bf u}_D)\\
&=&(a_1{\bf u}_1+\cdots+a_D{\bf u}_D)^\top(a_1{\bf\Sigma}{\bf u}_1+\cdots+a_D{\bf\Sigma}{\bf u}_D)\\
&=&(a_1{\bf u}_1+\cdots+a_D{\bf u}_D)^\top(a_1\lambda_1{\bf u}_1+\cdots+a_D\lambda_D{\bf u}_D)\\
&=&a_1^2\lambda_1{\bf u}_1^\top{\bf u}_1+\cdots+a_D^2\lambda_D{\bf u}_D^\top{\bf u}_D\\
&=&a_1^2\lambda_1+\cdots+a_D^2\lambda_D\tag{2}
\end{eqnarray}

\lambda_i > 0 より、式 (2)の全ての項は0以上であり、いづれかの項が0より大きいので、
{\bf\Sigma} は正定値行列です。

次に、「{\bf\Sigma} が正定値行列」 \Rightarrow 「全ての固有値が正」を示します。
背理法で示します。
\lambda_i\leqslant 0 とします。
この時、{\bf a}={\bf e}_i と選ぶと、{\bf a}^\top{\bf\Sigma}{\bf a}\leqslant 0 となり、「{\bf\Sigma} が正定値行列」であることに矛盾します。
よって、全ての固有値が正です。

以上より、{\bf\Sigma} が正定値になる必要十分条件は、 \bf\Sigma のすべての固有値 \lambda_i が正となることが示せました。

補足

問題文には、
「正定値行列 {\bf\Sigma}{\bf a}^\top{\bf\Sigma}{\bf a}が、任意の実ベクトル {\bf a} について正になる
ということで定義できる。」とありますが
正しくは
「正定値行列 {\bf\Sigma}{\bf a}^\top{\bf\Sigma}{\bf a}が、任意の {\bf 0} を除く実ベクトル {\bf a} について正になる
ということで定義できる。」だと思います。

目次へ戻る