機械学習基礎理論独習

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

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

固有値とスペクトル分解

固有値固有ベクトル

{\bf A}n\times n の対象行列とするとき、

\begin{eqnarray}
{\bf A}{\bf u}=\lambda{\bf u},\hspace{20px}{\bf u}\not={\bf 0}\tag{1}
\end{eqnarray}

となる n 組の固有値と呼ぶ実数 \lambda固有ベクトルと呼ぶ \bf 0 でないベクトル \bf u が存在します。
n 個の固有値 \lambda_1,\ldots,\lambda_n は固有方程式と呼ぶ n 次方程式

\begin{eqnarray}
\phi(\lambda)\equiv|\lambda{\bf I}-{\bf A}|=0\tag{2}
\end{eqnarray}

の解として与えられます。
そして、固有値に対応する固有ベクトル \{{\bf u}_i\} は正規直交系に選ぶことができます。
これは \mathbb{R}^n の正規直交基底とみなせます。

スペクトル分解

{\bf A}{\bf u}=\lambda{\bf u},\hspace{5px}{\bf u}\not={\bf 0} は、\bf A が正規直交基底 \{{\bf u}_1,\ldots,{\bf u}_n\} をそれぞれ \lambda_1{\bf u}_1,\ldots,\lambda_n{\bf u}_n
写像することを意味するから、{\bf A} は次のように表せます。

\begin{eqnarray}
{\bf A}=\lambda_1{\bf u}_1{\bf u}_1^\top+\cdots+\lambda_n{\bf u}_n{\bf u}_n^\top\tag{3}
\end{eqnarray}

すなわち、対象行列はその固有値固有ベクトルによって表すことができます。
これをスペクトル分解、または固有値分解と呼びます。

(3) の各 {\bf u}_i{\bf u}_i^\top は各固有ベクトル {\bf u}_i の方向({\bf A} の主軸)への射影行列であるから、
(3){\bf u}_i を各主軸方向への射影行列の線形結合で表すものです。

したがって、対象行列による空間の変換は、各点を主軸方向に射影して、固有値倍し、
それをすべての主軸にわたって足し合わせたものとも解釈できます。

ランク

行列 \bf An 本の列のうちの線形独立なものの個数、
あるいは n 本の行のうち線形独立なものの個数を、その行列のランクと呼びます。

\bf A の列 {\bf a}_1,\ldots,{\bf a}_n の線形結合

\begin{eqnarray}
c_1{\bf a}_1+\cdots+c_n{\bf a}_n=({\bf a}_1,\cdots,{\bf a}_n)\begin{pmatrix}c_1\\ \vdots\\ c_n\end{pmatrix}={\bf A}{\bf c}\tag{4}
\end{eqnarray}

を考えます。
n 個の固有値のうち 0 でないものの個数を r とすれば、
(3)\lambda_{r+1}=\cdots=\lambda_n=0 とおいて、次のように書けます。

\begin{eqnarray}
{\bf A}{\bf c}&=&\lambda_1{\bf u}_1{\bf u}_1^\top{\bf c}+\cdots+\lambda_r{\bf u}_r{\bf u}_r^\top{\bf c}\\
&=&\lambda_1\langle{\bf u}_1,{\bf c}\rangle{\bf u}_1+\cdots+\lambda_r\langle{\bf u}_r,{\bf c}\rangle{\bf u}_r\tag{5}
\end{eqnarray}

(5) より {\bf A}{\bf c}{\bf u}_1,\ldots,{\bf u}_r の線形結合で書けることが分かります。
簡単に言うと、{\bf A}{\bf c}n 本の列ベクトル a_i の線形結合で表せるが、そもそも n 本も必要なく、 r 本の {\bf u}_j の線形結合で表せるってことです。

よって、{\bf a}_1,\ldots,{\bf a}_n の張る部分空間の次元は r であり、
n 本の列のうち r 本しか線形独立ではないことが分かります。

したがって、\bf A のランクは、非零の固有値の個数に等しいということになります。

対象行列の対角化

(3) より

\begin{eqnarray}
{\bf A}&=&\lambda_1{\bf u}_1{\bf u}_1^\top+\cdots+\lambda_n{\bf u}_n{\bf u}_n^\top\\
&=&(\lambda_1{\bf u}_1,\cdots,\lambda_n{\bf u}_n)\begin{pmatrix}{\bf u}_1^\top\\ \vdots\\ {\bf u}_n^\top\end{pmatrix}\\
&=&({\bf u}_1,\cdots,{\bf u}_n)\begin{pmatrix}\lambda_1 & &\\ & \ddots & \\ & & \lambda_n\end{pmatrix}\begin{pmatrix}{\bf u}_1^\top\\ \vdots\\ {\bf u}_n^\top\end{pmatrix}\\
&=&{\bf U}\begin{pmatrix}\lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{pmatrix}{\bf U}^\top\tag{6}\\
\end{eqnarray}

(6){\bf U}=({\bf u}_1,\cdots,{\bf u}_n) とおきました。
{\bf U}^\top{\bf U}={\bf I} であり、{\bf U} は直交行列です。

(6) の両辺に左から {\bf U}^\top、右から \bf U を掛けると、以下のようになります。

\begin{eqnarray}
{\bf U}{\bf A}{\bf U}^\top=\begin{pmatrix}\lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{pmatrix}\tag{7}
\end{eqnarray}

(7) を対角化といいます。

偉人の名言


学問なんて、覚えると同時に忘れてしまってもいいものなんだ。
けれども、全部忘れてしまっても、その勉強の訓練の底に一つかみの砂金が残っているものだ。
これだ。
これが貴いのだ。
勉強しなければいかん。
太宰治

参考文献

線形代数セミナー

動画

記事作成前に作成した動画ですので、本記事とは内容が異なる可能性があります。

目次へ戻る