行列の特異値分解問題の解き方を整理する。
始める前に今回学習に当たって、最強に分かりやすいYoutubeの動画があったので感謝の意を込めて、リンクを記載します。
ほぼこちらの動画のサマリになる予定
特異値分解とは
特異値分解の前に、固有値分解の整理から。
ある正則行列\(A\)に対しては固有値分解を行い、以下のように変形することができた。
$$ A = V \Lambda V^{-1}$$
これに対し、特異値分解は\(m \times n\)の行列に対し分解を行う。
以下のような式が成立します。
$$ A = U \Sigma V^T $$
- \(A: m \times n\)
- \(U: m \times m\)の直交行列(転置行列と逆行列が等しい行列)
- \(\sum : m \times n\)
- \(V^T: n \times n\)の直交行列(転置行列と逆行列が等しい行列)
$$ A = \begin{pmatrix}
\vec{u_1} & \vec{u_2} & \cdots
\end{pmatrix}
\begin{pmatrix}
\sigma
_1 & 0 & \cdots \\
0 & \sigma_2 & \cdots \\
\vdots & 0 & \ddots
\end{pmatrix}
\begin{pmatrix}
\vec{v_1} & \vec{v_2} & \cdots
\end{pmatrix}^T$$
- \(\vec{u}:\) 単位ベクトル(左特異ベクトル)
- \(\sigma : A\)の特異値
- \(\vec{v}:\) 単位ベクトル(右特異ベクトル)
単位ベクトル
長さが1となるベクトル。以下の式で算出できる。
$$ \frac{\vec{x}}{|\vec{x}|}$$
ベクトルの各要素を長さで割る、ちなみに長さの求め方は以下。
$$ |\vec{x}| = \sqrt{a^2+b^2} $$
例題
以下の行列を特異値分解する。
$$A =
\begin{pmatrix}
1 & 3 \\
2 & 2 \\
3 & 1
\end{pmatrix}$$
解き方
冒頭の式のように行列\(A\)を分解するために必要な情報は\(U, \Sigma, V^T\)の3つです。(当たり前)
これらを求めるには、\(AA^T\)及び\(A^TA\)をそれぞれ固有値分解することで求められます。
1. \(A^TA\)で\(V^T\)を求める
$$ A^TA = V\Sigma^TU^T U\Sigma V^T $$
ここで、\(U\)は直交行列なので、\(U^T = U^{-1}\)となり、打ち消せます。
$$ A^TA = V\Sigma^T \Sigma V^T $$
これは、固有値分解の公式から\(A\)が\(A^TA\)に、\(\Lambda\)が\(\Sigma^T \Sigma\)に変わったものとみなすことができるので、
固有方程式から、以下が成立する。
$$ | A^TA - \lambda E | = 0 $$
計算は省略 〜〜
よって、\(A^TA\)の固有値\(\lambda = 24, 4\)
さらに、\(\Sigma\)の特異値を\(\sigma_1, \sigma_2\)とすると、
$$ \Sigma^T \Sigma =
\begin{pmatrix}
\sigma_1 & 0 & 0 \\
0 & \sigma_2 & 0
\end{pmatrix}
\begin{pmatrix}
\sigma_1 & 0 \\
0 & \sigma_2 \\
0 & 0
\end{pmatrix} =
\begin{pmatrix}
\sigma_1^2 & 0 \\
0 & \sigma_2^2
\end{pmatrix} =
\begin{pmatrix}
\lambda_1 & 0 \\
0 & \lambda_2
\end{pmatrix}$$
となるので、\(\sigma = \sqrt{\lambda}\)が成立する。よって、\(A\)の特異値は\(\sigma = 2\sqrt{6}, 2\)
次に、\(A^TA\)の固有ベクトルを求め、行列とすると以下となる。
$$ \begin{pmatrix}
1 & 1 \\
1 & -1
\end{pmatrix} $$
これより、\(A\)の右特異ベクトルは\(A^TA\)の固有ベクトルを単位ベクトルに変換すれば良いので、
同様に行列化すると以下の通り。
$$ V = \begin{pmatrix}
\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}}
\end{pmatrix} $$
この値は一例であり、同条件を満たす特異ベクトルはいくつか存在する
以上から、元々求めたかった\(V^T\)は、
$$ V^T =
\begin{pmatrix}
\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}}
\end{pmatrix} $$
2. \(U, \Sigma\)を求める
右特異ベクトルは冒頭の定義式より、
$$ A = U \Sigma V^T $$
$$ U = AV / \Sigma $$
が成立するので、
$$ \vec{u_1} = \frac{1}{2\sqrt{6}}
\begin{pmatrix}
1 & 3 \\
2 & 2 \\
3 & 1
\end{pmatrix}
\begin{pmatrix}
\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{pmatrix} =
\begin{pmatrix}
\frac{1}{\sqrt{3}} \\
\frac{1}{\sqrt{3}} \\
\frac{1}{\sqrt{3}}
\end{pmatrix}$$
$$ \vec{u_2} = \frac{1}{2}
\begin{pmatrix}
1 & 3 \\
2 & 2 \\
3 & 1
\end{pmatrix}
\begin{pmatrix}
\frac{1}{\sqrt{2}} \\
-\frac{1}{\sqrt{2}}
\end{pmatrix} =
\begin{pmatrix}
\frac{1}{\sqrt{2}} \\
0 \\
-\frac{1}{\sqrt{2}}
\end{pmatrix}$$
3. 分解式に当てはめる
以上から求めた値を、分解式に当てはめると
$$ A =
\begin{pmatrix}
\frac{1}{\sqrt{3}} & \frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{3}} & 0 \\
\frac{1}{\sqrt{3}} & -\frac{1}{\sqrt{2}}
\end{pmatrix}
\begin{pmatrix}
2\sqrt{6} & 0 \\
0 & 2
\end{pmatrix}
\begin{pmatrix}
\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}}
\end{pmatrix} $$
例題の元ネタ