이전 까지 어떠한 행렬 A가 symmetric 하거나 othogonal한 형태일 때의 eigenvalue값을 구하는 방법을 공부하였다. 즉 A=QΛQT 하지만 SVD를 이용한다면, symmetric하지 않은 행렬도 orthogonal한 행렬들로 decomposition할 수 있다.
즉 어떠한 행렬 A에 orthogonal한 행렬 v를 곱한 값은 orthogonal한 행렬 u에 대각행렬을 곱한 형태로 나타낼 수 있는것이 SVD 이다. 이를 수식으로 표현하면 다음과 같다.
Av=uΣ
앞서 SVD는 symmetric 하지 않은 행렬에도 orthogonal한 행렬들로 decomposition할 수 있다 하였는데 어떻게 가능한 걸까? 바로 A×AT를 통해 해결할 수 있다.
Av=uΣA=uΣv−1=uΣvTATA=vΣuTuΣvT=vΣ2vT
즉 ATA가 symmertric한 A의 eigen value decomposition 과정과 일치하게 된다.
Examples
A=[44−33]
위와 같은 행렬 A가 있을 때 이를 SVD하여 나타내어 보자.
우선 ATA를 구해보면
ATA=[44−33][4−343]=[257725]
eigen value가 32,18이고 eigenvector가 [1,1].T, [1.-1].T 가 나오게 된다. 이를 바탕으로 A=uΣvT를 작성해보면
A=[uuuu][320018][212121−21]
이렇게 decomposition할 수 있다. 이제 v,Σ를 구했으니 u를 구하면 된다. 같은 방식으로 AAT를 통해 구할 수 있다.