안녕하세요. 이번 포스팅에서는 Singular Value Decomposition (SVD) : 특이값 분해에 대해서 배워보도록 하겠습니다.
특이값 분해는 이전 포스팅에서 배웠던 특이값 분해처럼 행렬을 대각화하는 방법입니다.
고유값 분해는 제약 조건으로 선형 독립을 만족하는 정방 행렬에 대해서만 분해가 가능했지만,
특이값 분해는 어떠한 행렬이든 분해할 수 있기 때문에, 더 광범위하게 사용되고 있습니다.
실수 공간에서 정의된 m X n 행렬에 대해서 특이값 분해를 정의해보도록 하겠습니다.
정리는 다음과 같습니다.
AAT 와 ATA 는 대칭행렬이기 때문에 항상 고유값 분해가 가능합니다.
특이값 분해는 위와같이 공식만 알고 있다면, 쉽게 얻을 수 있습니다.
하지만 여기서 중요한 것은 특이값 분해의 기하학적 의미를 아는 것 입니다.
m X n 행렬의 기하학적 의미는 m 차원의 벡터를 n 차원으로 변환시키는 것에 있습니다.
즉, m>n 인 경우라면 차원 축소를 의미한다고 볼 수 있습니다.
위와 같이 모든 특이값 분해의 모든 고유값들을 사용하는 경우를 Full SVD 라고 정의합니다.
하지만 실제 특이값 분해를 사용할 때, 모든 고유값들을 사용하지 않습니다.
위 그림은 U의 열벡터를 S개 만 사용하는 Thin SVD 입니다.
위 그림은 r < s 를 만족하는 특정 r개만 사용하는 compact SVD 입니다. 이 때는 고유 값이 0인 경우를 전부 제거합니다.
위 그림은 고유값이 0이 아닌 경우도 제거한 truncated SVD 입니다.
'데이터 다루기 > 선형대수학' 카테고리의 다른 글
[선형대수학] 21. Eigendecomposition (고유값 분해) (1) | 2019.12.23 |
---|---|
[선형대수학] 20. Eigenvalue & Eigenvector (고유값과 고유벡터) (0) | 2019.12.15 |
[선형대수학] 19. Linear transformation (선형 변환) (0) | 2019.12.15 |
[선형대수학] 18. Row space, Column space, Null space (2) | 2019.12.13 |
[선형대수학] 16. Dimension (차원) (0) | 2019.10.15 |