SVD(Singular Value Decomposition) - 특이값 분해

Surf in Data·2022년 4월 14일
0

특이값 분해는 차원축소 기법인(PCA)에서 사용된다.

SVD 의 정의

mm x nn 행렬 AA가 있을 때 이 행렬 A는 다음과 같이 분해될수 있다.

A= UVT= (rotate)(stretch)(rotate)A = \ U\sum{}V^T = \ (rotate)(stretch)(rotate)


UU = (mm x mm) orthogonal matrix
\sum = (mm x nn) diagonal matrix
VV = (nn x nn) othogonal matrix
그림에서 *는 transpose를 의미한다.
https://ko.wikipedia.org

1.orthogonal matrix가 가지는 성질:
UUT=UTU=IUU^T=U^TU=I, U1=UT\quad U^{-1}=U^T
VVT=VTV=IVV^T=V^TV=I, V1=VT\quad V^{-1}=V^T

UU, \sum, VV가 의미하는바는 무엇일까?

먼저 A= UVTA = \ U\sum{}V^T의 양변에 ATA^T를 곱해준다면 ATAA^TA는 symmtric, positive semidefined matrix가 될것이다.

(mm x nn) 행렬 A가 있을 때 항상 Symmetric, positive semidefined matrix인S=ATAS=A^TA 를 만들 수 있다.

ATA= (VTUT)UVTA^TA = \ (V\sum{}^TU^T)U\sum{}V^T

이때 가운데의 UTUU^TUUU=othogonal matrix이기 대문에 UTU=IU^TU=I가 된다.

ATA= VTVTA^TA = \ V\sum{}^T\sum{}V^T

ATAA^TA는 symmetric, positive semidefined matrix라고 했다.

  • symmetric의 성질 - 고유벡터(eigen vector)들은 직각(orthogoanl)하다.
  • positive semidefined matrix의 성질 - 고유값(eigen value)들은 양수이다.

따라서 행렬 ATAA^TA 는 항상 다음과 같이 대각화 할 수 있다.
따라서 ATAA^TA 에 대한 고유값 분해(Eigen decomposition)를 하면

VV = ATAA^TA의 고유벡터들의 행렬
T\sum{}^T\sum{} = 대각성분이 고유치고 나머지는 0인 행렬
VTV^T = VV는 orthogonal matrix이므로 V1=VTV^{-1}=V^T

만약 위처럼 A= UVTA = \ U\sum{}V^T의 왼쪽이 아닌 오른쪽에 ATA^T를 곱했다면 다음과 같은 결과가 나온다.(과정은 위와 동일하다)

AAT= UTUTAA^T = \ U\sum{}^T\sum{}U^T

profile
study blog

0개의 댓글