行列の特異値分解問題の解き方を整理する。
始める前に今回学習に当たって、最強に分かりやすいYoutubeの動画があったので感謝の意を込めて、リンクを記載します。
チャンネル | 動画 |
---|---|
某处生活_LiveSomewhere | 特異値分解PART2:特異値分解 |
ほぼこちらの動画のサマリになる予定
特異値分解とは
特異値分解の前に、固有値分解の整理から。
ある正則行列$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} $$