特異値分解についてお話しします。固有値分解が対象としているのは正方行列でした。特異値分解では、これを一般の行列に拡張します。つまり、行列 A に対して、直交行列 U, V、対角行列 S を用いて
\begin{equation}
\rm A = U S V^t
\end{equation}
のように分解します。
このとき、
\begin{equation}
\rm S =
\begin{pmatrix}
s_1 & & \\
& s_2 & \\
& & \ddots \\
\end{pmatrix},
\\
\rm U =
\begin{pmatrix}
\vec{u_1} & \vec{u_2} & \cdots & \\
\end{pmatrix}
\\
\rm V =
\begin{pmatrix}
\vec{v_1} & \vec{v_2} & \cdots & \\
\end{pmatrix}
\end{equation}
です。\( \rm S \) は特異値と言います。分解するときに使う直交行列はU, Vの2個になりますが、「正方行列の」という制限が外れます。従って、どんな行列にも使えます。ここで注意すべき点は、対角行列 S の行と列の数が異なるということです。対角からはみ出る要素はゼロになります。また、直交行列 U, V の要素数は異なります。
行列 A は正方行列である必要はありませんが、\( \rm AA^t \) は常に正方行列(対称行列)になります。ということは、この正方行列 \( \rm AA^t \) に対して固有値分解できるということです。つまり、対角行列 D として
\begin{equation}
\rm AA^t = U D U^t
\end{equation}
と変形できます。一方で、
\begin{equation}
\rm AA^t = U S V^t (U S V^t)^t = U S V^t V S^t U^t = U SS^t U^t
\end{equation}
ですから、\( \rm D = SS^t \)です。同様に、
\begin{equation}
\rm A^t A = V S^t S V^t
\end{equation}
です。
\begin{equation}
\rm S^t S =
\begin{pmatrix}
s_1^2 & & \\
& s_2^2 & \\
& & \ddots \\
\end{pmatrix}
\end{equation}
ですから、\( \rm A^t A \) を求めて、その固有値を計算し、その正の平方根をとれば、特異値が求まるということです。