본문 바로가기
Data Science/Algorithm

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

by leanu 2024. 11. 18.

 

특이값 분해는 행렬을 고유 벡터와 고윳값을 기반으로 분해하여 다양한 응용에 활용하는 선형 대수학의 강력한 도구입니다.

 

수학적 정의

특이값 분해는 다음과 같은 형태로 표현됩니다.

  • A : m x n 크기의 임의의 행렬 (정방행렬일 필요 없음)
  • U : m x m 크기의 직교행렬. AA^T의 고유 벡터들로 구성
  • V : n x n 크기의 직교행렬. A^TA의 고유 벡터들로 구성
  • Σ : m x n 크기의 대각행렬로, 대각 원소는 A의 특이값 (Singular Values)

 

SVD 계산 방법

  1. 행렬 A^TA 와 AA^T의 고윳값과 고유벡터를 계산합니다.
  2. Σ: A^TA의 고유값들의 제곱근을 대각선 원소로 하는 대각 행렬을 생성합니다.
  3. V: A^TA의 고유벡터들로 구성된 직교행렬
  4. U: AA^T의 고유벡터들로 구성된 직교행렬
  5. 최종적으로 A를 계산합니다.

 

SVD의 의미

  • 특이값 : 행렬 A의 크기와 방향성을 나타냅니다. 특히 A가 얼마나 잘 확장(또는 축소)하는지에 대한 정보를 제공합니다.
  • 행렬의 기저 변환 : A는 V로부터 입력 공간의 기저를 변화하여 특이값으로 스케일링한 후, U를 통해 출력 공간으로 변환하는 과정을 나타냅니다.

 

아이겐벡터와의 관계

SVD와 고유값 분해는 밀접한 관계가 있습니다.

  1. A^TA의 고유벡터들은 A의 SVD에서 V행렬을 형성합니다.
  2. AA^T의 고유벡터들은 A의 SVD에서 U행렬을 형성합니다.
  3. 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

댓글