특잇값 분해
Chapter 4 : Eigendecomposition and Diagonalization
Edited by / 나경훈 (rudgnsdl06)
특잇값 분해
특잇값 분해(Singular Value Decomposition)는 행렬의 크기에 상관없이 모든 행렬에 적용할 수 있는 근본적인 행렬 분해 방법이다.
특잇값 분해 이론에 의한 행렬 $A$의 특잇값 분해는 아래와 같이 정의된다.
\[A = U\sum V^T\]
\[A \in \R^{m\times n} \\
U = \left[\begin{array}{lll}
\mid & & \mid \\
\bold{u_1} & \ldots & \bold{u_m} \\
\mid & & \mid
\end{array}\right] \in \R^{m\times m} \\
V = \left[\begin{array}{lll}
\mid & & \mid \\
\bold{v_1} & \ldots & \bold{v_n} \\
\mid & & \mid
\end{array}\right] \in \R^{n\times n} \\
\sum =
\left[\begin{array}{lll}
\sigma_1 & & 0 \\
& \ddots & \\
0 & & \sigma_s \\
0 & \ldots & 0 \\
\vdots & \ddots & \vdots \\
0 & \ldots & 0
\end{array}\right]
or
\left[\begin{array}{lll}
\sigma_1 & & 0 & 0 & \ldots & 0\\
& \ddots & & \vdots & \ddots & \vdots \\
0 & & \sigma_s & 0 & \ldots & 0\\
\end{array}\right]\]
이 때 행렬 $\sum$의 대각성분 $\sigma_i$를 행렬 $A$의 특잇값, 행렬 $U$와 $V$의 열벡터 $\bold{u_i}$, 를 각각 좌특이벡터(left singular vectors)와 우특이벡터(right singular vectors)라고 한다.
구하는 법
항상 대각화 가능한 행렬 $A^TA$, $AA^T$를 대각화한다.
\[A^TA = PDP^T \\
AA^T = PDP^T\]
\[A =
\begin{bmatrix}
1 & 0 & 1\\
-2 & 1 & 0
\end{bmatrix}\]
\[A^TA =
\begin{bmatrix}
1 & -2\\
0 & 1\\
1 & 0
\end{bmatrix}
\begin{bmatrix}
1 & 0 & 1\\
-2 & 1 & 0
\end{bmatrix}
=
\begin{bmatrix}
5 & -2 & 1\\
-2 & 1 & 0\\
1 & 0 & 1
\end{bmatrix}\]
\[AA^T =
\begin{bmatrix}
1 & 0 & 1\\
-2 & 1 & 0
\end{bmatrix}
\begin{bmatrix}
1 & -2\\
0 & 1\\
1 & 0
\end{bmatrix}
=
\begin{bmatrix}
2 & -2 \\
-2 & 5
\end{bmatrix}\]
\[A^TA = PDP^T =
\begin{bmatrix}
\frac{5}{\sqrt{30}} & 0 & \frac{-1}{\sqrt{6}}\\
\frac{-2}{\sqrt{30}} & \frac{1}{\sqrt{5}} & \frac{-2}{\sqrt{6}}\\
\frac{1}{\sqrt{30}}& \frac{2}{\sqrt{5}} & \frac{1}{\sqrt{6}}
\end{bmatrix}
\begin{bmatrix}
6 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 0
\end{bmatrix}
\begin{bmatrix}
\frac{5}{\sqrt{30}} & \frac{-2}{\sqrt{30}} & \frac{1}{\sqrt{30}}\\
0 & \frac{1}{\sqrt{5}} & \frac{2}{\sqrt{5}}\\
\frac{-1}{\sqrt{6}}& \frac{-2}{\sqrt{6}} & \frac{1}{\sqrt{6}}
\end{bmatrix}\]
\[AA^T = P'D'P'^T =
\begin{bmatrix}
\frac{1}{\sqrt{5}} & \frac{2}{\sqrt{5}}\\
\frac{-2}{\sqrt{5}} & \frac{1}{\sqrt{5}}\end{bmatrix}
\begin{bmatrix}
6 & 0\\
0 & 1
\end{bmatrix}
\begin{bmatrix}
\frac{1}{\sqrt{5}} & \frac{-2}{\sqrt{5}}\\
\frac{2}{\sqrt{5}} & \frac{1}{\sqrt{5}}\end{bmatrix}\]
두 경우에서 각각 $A=U\sum V^T$를 대입하여 $V$, $U$를 구한다.
\[A^TA = (U\sum V^T)^T(U\sum V^T)=V{\sum}^T\sum V^T = PDP^T \\
AA^T = (U\sum V^T)(U\sum V^T)^T=U\sum\sum^T U^T = P'D'P'^T\]
\[V = P = \begin{bmatrix}
\frac{5}{\sqrt{30}} & 0 & \frac{-1}{\sqrt{6}}\\
\frac{-2}{\sqrt{30}} & \frac{1}{\sqrt{5}} & \frac{-2}{\sqrt{6}}\\
\frac{1}{\sqrt{30}}& \frac{2}{\sqrt{5}} & \frac{1}{\sqrt{6}}
\end{bmatrix} \\
U = P' = \begin{bmatrix}
\frac{1}{\sqrt{5}} & \frac{2}{\sqrt{5}}\\
\frac{-2}{\sqrt{5}} & \frac{1}{\sqrt{5}}\end{bmatrix}\]
고유값행렬 $D$에 제곱근을 취하여 특잇값행렬 $\sum$을 구한다.
\[{\sum}^T \sum = D\]
\[\sum = \begin{bmatrix}
\sqrt{6} & 0 & 0\\
0 & 1 & 0
\end{bmatrix}\]
행렬 $A$의 특잇값 분해를 완성한다.
\[A = U\sum V^T =
\begin{bmatrix}
\frac{1}{\sqrt{5}} & \frac{2}{\sqrt{5}}\\
\frac{-2}{\sqrt{5}} & \frac{1}{\sqrt{5}}\end{bmatrix}
\begin{bmatrix}
\sqrt{6} & 0 & 0\\
0 & 1 & 0
\end{bmatrix}
\begin{bmatrix}
\frac{5}{\sqrt{30}} & \frac{-2}{\sqrt{30}} & \frac{1}{\sqrt{30}}\\
0 & \frac{1}{\sqrt{5}} & \frac{2}{\sqrt{5}}\\
\frac{-1}{\sqrt{6}}& \frac{-2}{\sqrt{6}} & \frac{1}{\sqrt{6}}
\end{bmatrix}\]
기하학적 해석
특잇값 분해는 행렬 $A$가 수행하는 선형변환 과정을 3단계로 나누어 적용한다고 해석할 수 있다.
\[A = U\sum V^T\]
$V^T$ : 축 변환
처음 단계에서는 기존의 차원을 유지한 채 기저(basis) 변환만을 수행하여 바라보는 축을 달리한다.
$\sum$ : 차원축 확장(축소), 형태 변환
다음으로 차원을 확장(축소)하고 특잇값에 크기에 따른 형태 변환(scaling)이 수행된다. 이 때 대각행렬의 특성상 확장(축소)된 차원축으로 방향의 전환은 일어나지 않는다.
$U$ : 차원 변환
확장(축소)된 차원축을 활용하여 다시 기저 변환을 수행한다. 이 과정으로 차원의 실질적인 변화가 일어난다.
위와 같이 행렬 $A_{m \times n}$가 선형변환 $\R^n \rightarrow \R^m$을 수행할 때, 특잇값 분해는 $V^T$와 $U$를 통해 $\R^n$과 $\R^m$에서의 기저 변환을 모두 표현한다. 또한 특잇값 분해를 가장 특별하게 만들어 주는 점은 서로 다른 두 기저 변환이 특잇값 행렬 $\sum$에 의해 동시에 연결된다는 점이다.