線形代数 – 特異値分解の求め方

投稿者: | 2025年5月25日

特異値分解を求める方法、つまり\(A\)から\(U,\ \Sigma,\ V^T\)を求める方法はいくつか存在しますが、本ページでは固有値分解を使用した方法を述べます。

次の行列について考えてみましょう。

$$ A=\begin{pmatrix} 1&1\\1&0\\0&1 \end{pmatrix} $$

以下、特異値分解を\(A=U\Sigma V^T,\ U\)の第\(j\)列を\(\boldsymbol{u}_j,\ \Sigma\)の\((j,j)\)成分を\(\sigma_j,\ V\)の第\(j\)列を\(\boldsymbol{v}_j,\ \boldsymbol{u}_j\)の第\(i\)成分を\(u_{ij},\ \boldsymbol{v}_j\)の第\(i\)成分を\(v_{ij}\)とします。

方法1

1.   \(A^T A \)の固有値(\(\lambda_1,\ \lambda_2\))を求める

\begin{align}
A^T A&=\begin{pmatrix}1&1&0\\1&0&1\end{pmatrix} \begin{pmatrix}1&1\\1&0\\0&1\end{pmatrix}\\
&=\begin{pmatrix}2&1\\1&2\end{pmatrix}
\end{align}

\(A^T A\)の固有値を\(\lambda\)とすると、

$$A^T A-\lambda I=\begin{pmatrix}2-\lambda&1\\1&2-\lambda\end{pmatrix}=\large{0}$$

$$(2- \lambda )^2-1=0$$

$$\lambda_1 = 3,\ \lambda_2=1$$

2.   \(\sigma_1,\ \sigma_2\)を求める

\begin{align}
\sigma_1 &= \sqrt{3}\\
\sigma_2 &= 1\\
\end{align}

3.   \(\boldsymbol{v}_1\)を求める

固有方程式に\(\lambda_1\)を代入し、

$$(A^T A -\lambda_1 I)\boldsymbol{v}_1 = \boldsymbol{0}$$

成分で表すと、

$$\begin{pmatrix}-1&1\\1&-1\end{pmatrix} \begin{pmatrix}v_{11}\\v_{21}\end{pmatrix}=\begin{pmatrix}0\\0\end{pmatrix}$$

これを連立方程式として解きます。

行基本変形により、

$$\begin{pmatrix}-1&1\\0&0\end{pmatrix}\begin{pmatrix}v_{11}\\v_{21}\end{pmatrix}=\begin{pmatrix}0\\0\end{pmatrix}$$

\(v_{21}=t_a\)とすると、

$$v_{11}=t_a$$

$$\boldsymbol{v}_1=t_a\begin{pmatrix}1\\1\end{pmatrix}$$

正規化し、

$$t_a=\frac{1}{\sqrt{1^2+1^2}}=\frac{1}{\sqrt{2}}$$

$$\boldsymbol{v}_1=\frac{1}{\sqrt{2}}\begin{pmatrix}1\\ 1\end{pmatrix}$$

4.   \(\boldsymbol{v}_2\)を求める

同様に固有方程式に\(\lambda_2\)を代入すると、

$$\begin{pmatrix}1&1\\1&1\end{pmatrix} \begin{pmatrix}v_{12}\\v_{22}\end{pmatrix}=\begin{pmatrix}0\\0\end{pmatrix}$$

行基本変形により、

$$\begin{pmatrix}1&1\\0&0\end{pmatrix}\begin{pmatrix}v_{12}\\v_{22}\end{pmatrix}=\begin{pmatrix}0\\0\end{pmatrix}$$

\(v_{22}=t_b\)とすると、

$$v_{12}=-t_b$$

$$\boldsymbol{v}_2=t_b\begin{pmatrix}-1\\1\end{pmatrix}$$

$$t_b=\frac{1}{\sqrt{(-1)^2+1^2}}=\frac{1}{\sqrt{2}}$$

$$\boldsymbol{v}_2=\frac{1}{\sqrt{2}}\begin{pmatrix}-1\\ 1\end{pmatrix}$$

5.   \(\boldsymbol{u}_1\)を求める

\begin{align}
\boldsymbol{u}_1 &= \frac{1}{\sigma_1}A\boldsymbol{v}_1\\
&=\frac{1}{\sqrt{3}}\cdot \frac{1}{\sqrt{2}}\begin{pmatrix}1&1\\1&0\\0&1\end{pmatrix}\begin{pmatrix}1\\1\end{pmatrix}\\
&=\frac{1}{\sqrt{6}}\begin{pmatrix}2\\1\\1\end{pmatrix}
\end{align}

6.   \(\boldsymbol{u}_2\)を求める

\begin{align}
\boldsymbol{u}_2 &= \frac{1}{\sigma_2}A\boldsymbol{v}_2\\
&= 1\cdot \frac{1}{\sqrt{2}}\begin{pmatrix}1&1\\1&0\\0&1\end{pmatrix}\begin{pmatrix}-1\\1\end{pmatrix}\\
&=\frac{1}{\sqrt{2}}\begin{pmatrix}0\\-1\\1\end{pmatrix}
\end{align}

7.   \(\boldsymbol{u}_3\)を求める

右特異ベクトルは\(2\)個しかないため\(\boldsymbol{u}_3\)は\(\boldsymbol{u}_1,\ \boldsymbol{u}_2\)と同じように求めることができません。

しかし、\(\boldsymbol{u}_3\)は\(A\)の左零空間の正規直交基底である(特異値分解の性質)ため、以下を解くことにより求められます。

$$A^T \boldsymbol{u}_3 = \boldsymbol{0}$$

\begin{align}
\begin{pmatrix}1&1&0\\1&0&1\end{pmatrix}\begin{pmatrix}u_{13}\\u_{23}\\u_{33}\end{pmatrix}=\begin{pmatrix}0\\0\end{pmatrix}
\end{align}

\(t_c=u_{33}\)とすると、

$$\boldsymbol{u}_3=t_c\begin{pmatrix}-1\\1\\1\end{pmatrix}$$

$$t_c=\frac{1}{\sqrt{(-1)^2+1^2+1^2}}=\frac{1}{\sqrt{3}}$$

$$\boldsymbol{u}_3=\frac{1}{\sqrt{3}}\begin{pmatrix}-1\\1\\1\end{pmatrix}$$

以上より、

$$\small{\begin{pmatrix}1\!&\!1 \\ 1 \!&\! 0 \!\\\! 0 \!&\! 1\end{pmatrix}\!=\!

\begin{pmatrix} \! \frac{2}{\sqrt{6}} \!\!&\!\! 0 \!\!&\!\! -\frac{1}{\sqrt{3}} \! \\ \! \frac{1}{\sqrt{6}} \!\!&\!\! -\frac{1}{\sqrt{2}} \!\!&\!\! \frac{1}{\sqrt{3}} \!\\ \! \frac{1}{\sqrt{6}} \!\!&\!\! \frac{1}{\sqrt{2}} \!\!&\!\! \frac{1}{\sqrt{3}} \!\end{pmatrix}\!\!

\begin{pmatrix} \! \sqrt{3} \!\!&\!\! 0 \! \\ \! 0 \!\!&\!\! 1\! \\ \! 0 \!\!&\!\! 0 \! \end{pmatrix}\!\!}

\begin{pmatrix} \! \frac{1}{\sqrt{2}} \!\!&\!\! \frac{1}{\sqrt{2}} \! \\ \! -\frac{1}{\sqrt{2}} \!\!&\!\! \frac{1}{\sqrt{2}}\end{pmatrix}
$$

となります。

方法2

1.   \(A A^T \)の固有値(\(\lambda_1,\ \lambda_2,\ \lambda_3\))を求める

\begin{align}
A A^T&= \begin{pmatrix}1&1\\1&0\\0&1\end{pmatrix}\begin{pmatrix}1&1&0\\1&0&1\end{pmatrix}\\
&=\begin{pmatrix}2&1&1\\1&1&0\\1&0&1\end{pmatrix}
\end{align}

\(A A^T\)の固有値を\(\lambda\)とすると、

\begin{align}
A A^T-\lambda I&=\begin{pmatrix}2-\lambda\!&1\!&1\\1\!&1-\lambda\!&0\\1\!&0\!&1-\lambda\end{pmatrix}\\
&=\large{0}
\end{align}

\begin{align}&(2- \lambda )(1- \lambda )(1- \lambda )+1 \cdot 0 \cdot 1\\&+1 \cdot 1 \cdot 0-1 \cdot (1- \lambda ) \cdot 1\\&-1 \cdot 1 \cdot (1- \lambda )-(2- \lambda ) \cdot 0 \cdot 0\\
=&- \lambda ^3+4 \lambda ^2-5 \lambda +2+0\\&+0+ \lambda -1\\&+ \lambda -1+0 \lambda +0\\
=&- \lambda ^3+4 \lambda ^2-3 \lambda \\
=&-\lambda( \lambda -3)( \lambda -1)\\
=&0\end{align}

$$\lambda_1 = 3,\ \lambda_2=1,\ \lambda_3=0$$

2.   \(\sigma_1,\ \sigma_2\)を求める

上記の通り、\(A A^T\)は\(3 \times 3\)行列なので固有値は\(3\)個あります。しかし\(A\)は\(3\times 2\)行列なので特異値は\(2\)個しかありません。固有値のうち\(1\)個は対応する特異値がありません。対応する特異値がない固有値は必ず\(0\)です(「(特異値分解の性質」参照)。

したがって、\(A\)の特異値は以下です。

\begin{align}
\sigma_1 &= \sqrt{3}\\
\sigma_2 &= 1\\
\end{align}

3.   \(\boldsymbol{u}_1\)を求める

$$(A A^T -\lambda_1 I)\boldsymbol{u}_1 = \boldsymbol{0}$$

     \[ \begin{align} &\begin{pmatrix} -1&1&1\\ 1&-2&0\\ 1&0&-2\\ \end{pmatrix}\\ \begin{matrix} $\xrightarrow{\substack{\scriptsize R_1+R_2\rightarrow R_2\\R_1+R_3 \rightarrow R_3}} $\\ \  \end{matrix} &\begin{pmatrix} -1&1&1\\ 0&-1&1\\ 0&1&-1\\ \end{pmatrix}\\ \begin{matrix} $\xrightarrow{\substack{\scriptsize R_2+R_3\rightarrow R_3}} $\\ \  \end{matrix} &\begin{pmatrix} -1&1&1\\ 0&-1&1\\ 0&0&0\\ \end{pmatrix}\\ \end{align} \]

\(u_{31}=t_d\)とすると、

\begin{align}
u_{11}&=2t_d\\
u_{21}&=t_d\\
\end{align}

$$\boldsymbol{u}_1=t_d\begin{pmatrix}2\\1\\1\end{pmatrix}$$

$$t_d=\frac{1}{\sqrt{2^2+1^2+1^2}}=\frac{1}{\sqrt{6}}$$

$$\boldsymbol{u}_1=\frac{1}{\sqrt{6}}\begin{pmatrix}2\\1\\ 1\end{pmatrix}$$

4.   \(\boldsymbol{u}_2\)を求める

$$(A A^T -\lambda_2 I)\boldsymbol{u}_2 = \boldsymbol{0}$$

     \[ \begin{align} &\begin{pmatrix} 1&1&1\\ 1&0&0\\ 1&0&0\\ \end{pmatrix}\\ \begin{matrix} $\xrightarrow{\substack{\scriptsize -R_1+R_2\rightarrow R_2\\-R_1+R_3 \rightarrow R_3}} $\\ \  \end{matrix} &\begin{pmatrix} 1&1&1\\ 0&-1&-1\\ 0&-1&-1\\ \end{pmatrix}\\ \begin{matrix} $\xrightarrow{\substack{\scriptsize- R_2+R_3\rightarrow R_3}} $\\ \  \end{matrix} &\begin{pmatrix} 1&1&1\\ 0&-1&-1\\ 0&0&0\\ \end{pmatrix}\\ \end{align} \]

\(u_{32}=t_e\)とすると、

\begin{align}
u_{12}&=0\\
u_{22}&=-t_e\\
\end{align}

$$\boldsymbol{u}_2=t_e\begin{pmatrix}0\\-1\\1\end{pmatrix}$$

$$t_e=\frac{1}{\sqrt{0^2+(-1)^2+1^2}}=\frac{1}{\sqrt{2}}$$

$$\boldsymbol{u}_2=\frac{1}{\sqrt{2}}\begin{pmatrix}0\\-1\\ 1\end{pmatrix}$$

5.   \(\boldsymbol{u}_3\)を求める

$$(A A^T -\lambda_3 I)\boldsymbol{u}_3 = \boldsymbol{0}$$

     \[ \begin{align} &\begin{pmatrix} 2&1&1\\ 1&1&0\\ 1&0&1\\ \end{pmatrix}\\ \begin{matrix} $\xrightarrow{\substack{\scriptsize -1/2R_1+R_2\rightarrow R_2\\-1/2R_1+R_3 \rightarrow R_3}} $\\ \  \end{matrix} &\begin{pmatrix} 2&1&1\\ 0&\frac{1}{2}&-\frac{1}{2}\\ 0&-\frac{1}{2}&\frac{1}{2}\\ \end{pmatrix}\\ \begin{matrix} $\xrightarrow{\substack{\scriptsize R_2+R_3\rightarrow R_3}} $\\ \  \end{matrix} &\begin{pmatrix} 2&1&1\\ 0&\frac{1}{2}&-\frac{1}{2}\\ 0&0&0\\ \end{pmatrix}\\ \end{align} \]

\(u_{33}=t_f\)とすると、

\begin{align}
u_{13}&=-t_f\\
u_{23}&=t_f\\
\end{align}

$$\boldsymbol{u}_3=t_f\begin{pmatrix}-1\\1\\1\end{pmatrix}$$

$$t_f=\frac{1}{\sqrt{(-1)^2+1^2+1^2}}=\frac{1}{\sqrt{3}}$$

$$\boldsymbol{u}_3=\frac{1}{\sqrt{3}}\begin{pmatrix}-1\\1\\ 1\end{pmatrix}$$

6.   \(\boldsymbol{v}_1\)を求める

\begin{align}
\boldsymbol{v}_1 &= \frac{1}{\sigma_1}A^T\boldsymbol{u}_1\\
&=\frac{1}{\sqrt{3}}\cdot \frac{1}{\sqrt{6}}\begin{pmatrix}1&1&0\\1&0&1\end{pmatrix}\begin{pmatrix}2\\1\\1\end{pmatrix}\\
&=\frac{1}{3\sqrt{2}}\begin{pmatrix}3\\3\end{pmatrix}\\
&=\frac{1}{\sqrt{2}}\begin{pmatrix}1\\1\end{pmatrix}\\
\end{align}

7.   \(\boldsymbol{v}_2\)を求める

\begin{align}
\boldsymbol{v}_2 &= \frac{1}{\sigma_2}A^T\boldsymbol{u}_2\\
&=1\cdot \frac{1}{\sqrt{2}}\begin{pmatrix}1&1&0\\1&0&1\end{pmatrix}\begin{pmatrix}0\\-1\\1\end{pmatrix}\\
&=\frac{1}{\sqrt{2}}\begin{pmatrix}-1\\1\end{pmatrix}\\
\end{align}

以上より方法1と同じ結果になります。