특이값 분해 (Singular Value Decomposition, SVD): 선형 변환의 숨겨진 보물
지난 포스팅에서는 복소 행렬과 스펙트럼 분해에 대해 알아보았다. 이번에는 선형대수학의 마지막 주제이자 강력한 도구인 특이값 분해(Singular Value Decomposition, SVD)에 대해 자세히 알아보겠다. SVD는 행렬을 특이값(singular value)과 특이 벡터(singular vector)를 이용하여 분해하는 방법으로, 데이터 압축, 추천 시스템, 자연어 처리 등 다양한 분야에서 널리 활용되고 있다.
1. 특이값 (Singular Value)
특이값(Singular Value)은 행렬이 나타내는 선형 변환의 특성을 나타내는 값이다. 특이값은 항상 음수가 아닌 실수이며, 그 크기는 선형 변환에 의한 변형 정도를 나타낸다. 특이값이 클수록 해당 방향으로의 변형이 크다는 것을 의미한다.
1.1 특이값의 정의
행렬 에 대해, 는 대칭 행렬(symmetric matrix)이 된다. 대칭 행렬은 항상 직교 대각화(orthogonally diagonalizable) 가능하므로, 다음을 만족하는 직교 행렬(orthogonal matrix) 와 대각 행렬(diagonal matrix) 가 존재한다.
A^T AV = VΛ
이때, 대각 행렬 의 대각 성분들을 의 특이값(singular values)이라고 하며, 일반적으로 으로 표기한다.
2. 특이 벡터 (Singular Vector)
특이 벡터(Singular Vector)는 행렬의 특이값에 대응되는 특별한 벡터이다.
- Right Singular Vector (우측 특이 벡터): 행렬 의 고유벡터(eigenvector)를 의 우측 특이 벡터라고 한다.
- Left Singular Vector (좌측 특이 벡터): 행렬 의 고유벡터를 의 좌측 특이 벡터라고 한다.
2.1. 특이값과 특이 벡터의 기하학적 의미(M = UΣV^T)
- 특이값(Singular Value): 행렬 에 의해 변환된 후에도 방향이 변하지 않고 크기만 특이값 배 만큼 변하는 벡터의 크기를 나타낸다.
- 우측 특이 벡터(Right Singular Vector): 행렬 에 의해 변환되기 전의 벡터의 방향을 나타낸다.
- 좌측 특이 벡터(Left Singular Vector): 행렬 에 의해 변환된 후의 벡터의 방향을 나타낸다.
visualization |
3. 특이값 분해 (Singular Value Decomposition, SVD)
특이값 분해는 행렬을 직교 행렬(orthogonal matrix)과 대각 행렬(diagonal matrix)의 곱으로 표현하는 방법이다. 특이값 분해는 다음과 같이 표현된다.
A = UΣV^T
여기서,
- : 직교 행렬 - left singular vector로 구성
- : 대각 행렬 - singular value로 구성
- : 직교 행렬 - right singular vector로 구성
3.1. 특이값 분해의 예시
A = |1 1|
|0 1|
|1 0|
위 행렬 A의 SVD를 구하면 다음과 같다.
Singular Value Decomposition example
4. Reduced Singular Value Decomposition (RSVD)
RSVD(Reduced Singular Value Decomposition)는 특이값 분해에서 0인 특이값과 해당 특이 벡터를 제거하여 간소화한 형태이다. 즉, 행렬 의 랭크(rank)가 일 때, RSVD는 다음과 같이 표현된다.
A = UrΛrVr^T
여기서,
- : 행렬 (Left Singular Vectors)
- : 대각 행렬 (Singular Values)
- : 행렬 (Right Singular Vectors)
마무리
이번 포스팅에서는 특이값 분해(SVD)에 대해 알아보았다. SVD는 선형 변환이라는 행렬의 중요한 특성을 담고 있어 인공지능을 비롯한 다양한 응용 분야에서 활용되고 있다. 이것으로 선형대수학 포스팅도 마무리하도록 하겠다. 한 학기라는 시간이 너무 빠르게 지나가버려서 충분히 다루지 못한 것 같은데, 앞으로 인공지능 공부하며 선형대수학에 대해 다룰 일은 많으니 아쉬운 마음을 뒤로 한다.
추천글 :
[선형대수학] Complex matrix and Schur decomposition
(https://hyeonb.blogspot.com/2024/06/complex-matrix-and-schur-decomposition.html)
[선형대수학] Normal matrix & Spectral decomposition
(https://hyeonb.blogspot.com/2024/06/normal-matrix-spectral-decomposition.html)