SVD(Singular Value Decomposition)

허준혁·2023년 2월 15일
0

선형대수학

목록 보기
2/4

SVD(Singular Value Decomposition)

이전 까지 어떠한 행렬 A가 symmetric 하거나 othogonal한 형태일 때의 eigenvalue값을 구하는 방법을 공부하였다. 즉 A=QΛQTA = Q\Lambda Q^T 하지만 SVD를 이용한다면, symmetric하지 않은 행렬도 orthogonal한 행렬들로 decomposition할 수 있다.

즉 어떠한 행렬 A에 orthogonal한 행렬 v를 곱한 값은 orthogonal한 행렬 u에 대각행렬을 곱한 형태로 나타낼 수 있는것이 SVD 이다. 이를 수식으로 표현하면 다음과 같다.

Av=uΣA v = u\Sigma

앞서 SVD는 symmetric 하지 않은 행렬에도 orthogonal한 행렬들로 decomposition할 수 있다 하였는데 어떻게 가능한 걸까? 바로 A×ATA \times A^T를 통해 해결할 수 있다.

Av=uΣA=uΣv1=uΣvTATA=vΣuTuΣvT=vΣ2vTAv = u\Sigma \\ A = u\Sigma v^{-1} = u\Sigma v^T \\ A^TA = v\Sigma u^Tu\Sigma v^T \\ = v \Sigma^2v^T

ATAA^TA가 symmertric한 A의 eigen value decomposition 과정과 일치하게 된다.

Examples

A=[434   3]A = \left[ \begin{matrix} 4 & -3 \\ 4 & \ \ \ 3 \end{matrix} \right]

위와 같은 행렬 A가 있을 때 이를 SVD하여 나타내어 보자.

우선 ATAA^TA를 구해보면

ATA=[434   3][443 3]=[2577 25]A^TA = \left[ \begin{matrix} 4 & -3 \\ 4 & \ \ \ 3 \end{matrix} \right] \left[ \begin{matrix} 4 & 4 \\ -3 & \ 3 \end{matrix} \right] = \left[ \begin{matrix} 25 & 7 \\ 7 & \ 25 \end{matrix} \right]

eigen value가 32,18이고 eigenvector가 [1,1].T, [1.-1].T 가 나오게 된다. 이를 바탕으로 A=uΣvTA = u\Sigma v^T를 작성해보면

A=[uuuu][3200 18][121212 12]A = \left[ \begin{matrix} u & u\\ u & u \end{matrix} \right] \left[ \begin{matrix} \sqrt{32} & 0 \\ 0 & \ \sqrt{18} \end{matrix} \right] \left[ \begin{matrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \ -\frac{1}{\sqrt{2}} \end{matrix} \right]

이렇게 decomposition할 수 있다. 이제 v,Σv, \Sigma를 구했으니 uu를 구하면 된다. 같은 방식으로 AATAA^T를 통해 구할 수 있다.

AAT=[443   3][434 3]=[3200 18]AA^T = \left[ \begin{matrix} 4 & 4 \\ -3 & \ \ \ 3 \end{matrix} \right] \left[ \begin{matrix} 4 & -3 \\ 4 & \ 3 \end{matrix} \right] = \left[ \begin{matrix} 32 & 0 \\ 0 & \ 18 \end{matrix} \right]

eigenvalue가 이전에 ATAA^TA와 같게 된다.

0개의 댓글