機械学習基礎理論独習

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

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

特異値と特異値分解

特異値

任意の m\times n 行列 {\bf A}\not={\bf O} に対して、

\begin{eqnarray}
&&{\bf A}{\bf v}=\sigma{\bf u},\\
&&{\bf A}^\top{\bf u}=\sigma{\bf v},\\
&&\sigma > 0,\ {\bf u}\not={\bf 0},\ {\bf v}\not={\bf 0}\tag{1}
\end{eqnarray}

となる正数 \sigma を特異値と呼び、
m 次元ベクトル \bf u を左特異ベクトル、n 次元ベクトル \bf v を右特異ベクトル、合わせて特異ベクトルと呼びます。

(1) の第2式の両辺に {\bf A} を左から掛け、第1式の両辺に {\bf A}^\top を左から掛けると

\begin{eqnarray}
&&{\bf A}{\bf A}^\top{\bf u}=\sigma^2{\bf u},\\
&&{\bf A}^\top{\bf A}{\bf v}=\sigma^2{\bf v}\tag{2}
\end{eqnarray}

となることが分かります。
\bf u{\bf A}{\bf A}^\top固有ベクトルであり、\bf v{\bf A}^\top{\bf A}固有ベクトルです。
そして、特異値の 2\sigma^2 はそれらの固有値です。

特異値分解

\bf A の特異値を \sigma_1\geq\cdots\geq\sigma_r(> 0) とします。
対応する r 本の左特異ベクトル {\bf u}_1,\ldots,{\bf u}_rr 本の右特異ベクトル {\bf v}_1,\ldots,{\bf v}_rはともに対象行列の固有ベクトルであるから、
それぞれ正規直交基底に選ぶことができます。

{\bf u}_1,\ldots,{\bf u}_r を拡張して、\mathbb{R}^m の正規直交基底 \{{\bf u}_1,\ldots,{\bf u}_r,{\bf u}_{r+1},\ldots,{\bf u}_m\} が定義できます。
{\bf v}_1,\ldots,{\bf v}_r を拡張して、\mathbb{R}^nの正規直交基底 \{{\bf v}_1,\ldots,{\bf v}_r,{\bf v}_{r+1},\ldots,{\bf v}_n\} が定義できます。
これらはそれぞれ {\bf A}{\bf A}^\top{\bf A}^\top{\bf A}固有ベクトルであり、

\begin{eqnarray}
&&{\bf A}{\bf A}^\top{\bf u}_i={\bf 0}\ (i=r+1,\ldots,m)\tag{3}\\
&&{\bf A}^\top{\bf A}{\bf v}_i={\bf 0}\ (i=r+1,\ldots,n)\tag{4}
\end{eqnarray}

です。

(4) より \langle{\bf v}_i,{\bf A}^\top{\bf A}{\bf v}_i\rangle=||{\bf A}{\bf v}_i||^2=0 なので、{\bf A}{\bf v}_i={\bf 0}\ (i=r+1,\ldots,n) です。
{\bf A}{\bf v}_i=\sigma_i{\bf u}_i\ (i=1,\ldots,r) と合わせて、
{\bf A}{\bf v}_1,\ldots,{\bf v}_n\sigma_1{\bf u}_1,\ldots,\sigma_r{\bf u}_r,{\bf 0},\ldots,{\bf 0}写像するので、次式が成り立ちます。

\begin{eqnarray}
{\bf A}=\sigma_1{\bf u}_1{\bf v}_1^\top+\cdots+\sigma_r{\bf u}_r{\bf v}_r^\top\ (\sigma_1\geq\cdots\geq\sigma_r > 0)\tag{5}
\end{eqnarray}

同様に、(3) より \langle{\bf u}_i,{\bf A}{\bf A}^\top{\bf u}_i\rangle=||{\bf A}{\bf u}_i||^2=0なので、{\bf A}{\bf u}_i={\bf 0}\ (i=r+1,\ldots,m) です。
{\bf A}^\top{\bf u}_i=\sigma_i{\bf v}_i\ (i=1,\ldots,r) と合わせて、
{\bf A}^\top{\bf u}_1,\ldots,{\bf u}_n\sigma_1{\bf v}_1,\ldots,\sigma_r{\bf v}_r,{\bf 0},\ldots,{\bf 0}写像するので、次式が成り立ちます。

\begin{eqnarray}
{\bf A}^\top=\sigma_1{\bf v}_1{\bf u}_1^\top+\cdots+\sigma_r{\bf v}_r{\bf u}_r^\top\ (\sigma_1\geq\cdots\geq\sigma_r > 0)\tag{6}
\end{eqnarray}

任意の行列はその特異値と特異ベクトルによって表すことができます。
これを特異値分解と呼びます。

列空間と行空間

\bf An 本の列の張る部分空間 \mathcal{U}m 本の張る部分空間 \mathcal{V} と書き、それぞれ\bf Aの列空間、行空間と呼びます。

{\bf A} の列 {\bf a}_1,\ldots,{\bf a}_n の任意の線形結合 c_1{\bf a}_1+\cdots c_n{\bf a}_n={\bf A}{\bf c} を考えます。

\begin{eqnarray}
{\bf A}{\bf c}&=&\sigma_1{\bf u}_1{\bf v}_1^\top{\bf c}+\cdots+\sigma_r{\bf u}_r{\bf v}_r^\top{\bf c}\\
&=&\sigma_1\langle{\bf v}_1,{\bf c}\rangle{\bf u}_1+\cdots+\sigma_r\langle{\bf v}_r,{\bf c}\rangle{\bf u}_r\tag{7}
\end{eqnarray}

すなわち、\bf A の列の任意の線形結合は、互いに直交する {\bf u}_1,\ldots,{\bf u}_r の線形結合で書けます。
ゆえに \mathcal{U} は、{\bf u}_1,\ldots,{\bf u}_r を正規直交基底とする r 次元部分空間です。

すなわち、r 本の行のみが線形独立です。

\bf A の行は {\bf A}^\top の列です。よって上記と同様の理論で r 本の列のみが線形独立です。

よって、行列 \bf A のランク r\bf A の特異値の個数に等しいことが分かります。

そして、左特異ベクトル \{{\bf u}_i\}\ (i=1,\ldots,r) と右特異ベクトル \{{\bf v}_i\}\ (i=1,\ldots,r) が、
それぞれ列空間 \mathcal{U} および行空間 \mathcal{V} の正規直交基底です。

\mathbb{R}^m の列空間 \mathcal{U} への射影行列、および \mathbb{R}^n の行空間 \mathcal{V} への射影行列は次のようになります。

\begin{eqnarray}
&&{\bf P}_{\mathcal{U}}=\sum_{i=1}^r{\bf u}_i{\bf u}_i^\top,\\
&&{\bf P}_{\mathcal{V}}=\sum_{i=1}^r{\bf v}_i{\bf v}_i^\top\tag{8}
\end{eqnarray}

{\bf u}_i\ (i=1,\ldots,r){\bf u}_i\in\mathcal{U} であるから、{\bf P}_{\mathcal{U}}{\bf u}_i={\bf u}_i であり、行についても {\bf P}_{\mathcal{V}}{\bf v}_i={\bf v}_i です。

よって、(5) より

\begin{eqnarray}
&&{\bf P}_{\mathcal{U}}{\bf A}=\sum_{j=1}^r\sum_{i=1}^r{\bf u}_j{\bf u}_j^\top\sigma_i{\bf u}_i{\bf v}_i^\top=\sum_{i=1}^r\sigma_i{\bf u}_i{\bf v}_i^\top={\bf A}\tag{9}\\
&&{\bf A}{\bf P}_{\mathcal{V}}=\sum_{j=1}^r\sum_{i=1}^r\sigma_j{\bf u}_j{\bf v}_j^\top{\bf v}_i{\bf v}_i^\top=\sum_{i=1}^r\sigma_i{\bf u}_i{\bf v}_i^\top={\bf A}\tag{10}
\end{eqnarray}

です。

行列による表現

\begin{eqnarray}
{\bf A}&=&\sigma_1{\bf u}_1{\bf v}_1^\top+\cdots+\sigma_r{\bf u}_r{\bf v}_r^\top\\
&=&\begin{pmatrix}\sigma_1{\bf u}_1 & \cdots & \sigma_r{\bf u}_r\end{pmatrix}\begin{pmatrix}{\bf v}_1^\top\\ \vdots \\ {\bf v}_r^\top\end{pmatrix}\\
&=&\begin{pmatrix}{\bf u}_1 & \cdots & {\bf u}_r\end{pmatrix}\begin{pmatrix}\sigma_1 & &\\ & \ddots & \\ & & \sigma_r\end{pmatrix}\begin{pmatrix}{\bf v}_1^\top\\ \vdots \\ {\bf v}_r^\top\end{pmatrix}\\
&=&{\bf U}\begin{pmatrix}\sigma_1 & &\\ & \ddots & \\ & & \sigma_r\end{pmatrix}{\bf V}^\top\ (\sigma_1 \geq\cdots\geq\sigma_r > 0)\tag{11}
\end{eqnarray}

\bf U\bf V もその r 本の列は正規直交基底であるから、次の式が成り立ちます。

\begin{eqnarray}
&&{\bf U}^\top{\bf U}={\bf I},\\
&&{\bf V}^\top{\bf V}={\bf I}\tag{12}
\end{eqnarray}

また、次の式も成り立ちます。

\begin{eqnarray}
&&{\bf U}{\bf U}^\top={\bf P}_{\mathcal{U}},\\
&&{\bf V}{\bf V}^\top={\bf P}_{\mathcal{V}}\tag{13}
\end{eqnarray}

偉人の名言


結局、真の知識を得ようと望むものは、誰でも艱難の山を一人で登らなければならず、
頂上への王道がない以上、私は曲がりくねりながら登らねばならぬことに気付いたのです。
ヘレン・ケラー

参考リンク

特異値分解

参考文献

線形代数セミナー p28-p35

動画

目次へ戻る