특이값 분해는 행렬을 고유 벡터와 고윳값을 기반으로 분해하여 다양한 응용에 활용하는 선형 대수학의 강력한 도구입니다.
수학적 정의
특이값 분해는 다음과 같은 형태로 표현됩니다.
- A : m x n 크기의 임의의 행렬 (정방행렬일 필요 없음)
- U : m x m 크기의 직교행렬. AA^T의 고유 벡터들로 구성
- V : n x n 크기의 직교행렬. A^TA의 고유 벡터들로 구성
- Σ : m x n 크기의 대각행렬로, 대각 원소는 A의 특이값 (Singular Values)
SVD 계산 방법
- 행렬 A^TA 와 AA^T의 고윳값과 고유벡터를 계산합니다.
- Σ: A^TA의 고유값들의 제곱근을 대각선 원소로 하는 대각 행렬을 생성합니다.
- V: A^TA의 고유벡터들로 구성된 직교행렬
- U: AA^T의 고유벡터들로 구성된 직교행렬
- 최종적으로 A를 계산합니다.
SVD의 의미
- 특이값 : 행렬 A의 크기와 방향성을 나타냅니다. 특히 A가 얼마나 잘 확장(또는 축소)하는지에 대한 정보를 제공합니다.
- 행렬의 기저 변환 : A는 V로부터 입력 공간의 기저를 변화하여 특이값으로 스케일링한 후, U를 통해 출력 공간으로 변환하는 과정을 나타냅니다.
아이겐벡터와의 관계
SVD와 고유값 분해는 밀접한 관계가 있습니다.
- A^TA의 고유벡터들은 A의 SVD에서 V행렬을 형성합니다.
- AA^T의 고유벡터들은 A의 SVD에서 U행렬을 형성합니다.
- A^TA의 고유값의 제곱근은 A의 특이값입니다.
고윳값 분해는 정방행렬만 적용 가능하지만 SVD는 임의의 m x n 행렬에 대해 적용 가능합니다.
SVD 응용
1) 데이터 압축
SVD는 데이터에서 가장 중요한 특징을 보존하면서 차원을 축소하는 데 사용됩니다. 예를 들어, 이미지 데이터 A를 SVD로 분해한 후 상위 K개의 특이값 만 사용하여 데이터를 압축합니다.
2) 노이즈 제거
특이값이 작은 성분을 제거하면, 데이터의 중요한 구조는 유지하면서 노이즈를 줄일 수 있습니다.
3) 추천 시스템
넷플릭스나 아마존과 같은 추천 시스템에서 사용자-아이템 행렬을 SVD로 분해하여,
사용자와 아이템의 잠재 요인을 추출하고 예측에 활용합니다.
4) 문서-용어 행렬 분석 (LSA)
문서와 용어 간의 관계를 나타내는 행렬에서 SVD를 사용하여 중요한 주제를 추출합니다.
5) 이미지 복원
특이값을 이용해 손상된 이미지를 복원하거나, 중요한 시각적 정보를 추출합니다.
SVD의 시각적 이해
SVD는 행렬 A를 세 단계로 나누어 변환하는 과정으로 볼 수 있습니다.
- V^T : 입력 공간에서의 회전
- Σ : 축 방향으로 스케일링
- U : 출력 공간에서의 회전
이를 통해 복잡한 선형 변환을 직교적 회전과 스케일링으로 단순화 할 수 있습니다.
'Data Science > Algorithm' 카테고리의 다른 글
RAG (Retrieval-Augmented Generation) (1) | 2024.11.16 |
---|---|
최소 자승법 (Least Squares Method) (0) | 2024.11.15 |
Contextual Bandit & LinUCB (0) | 2024.11.14 |
Multi-Armed Bandit (MAB) (4) | 2024.11.13 |
Deep Cross Network (0) | 2024.11.11 |
댓글