특잇값 분해
특잇값 분해는 행렬을 여러 개의 행렬 곱으로 분해하는 선형대수학 기법입니다. 임의의 m x n 행렬 A는 세 개의 행렬 U, Σ, VT의 곱으로 분해될 수 있으며, 이는 다음과 같이 표현됩니다.
A = UΣVT
여기서 U는 m x m 직교 행렬, Σ는 m x n 대각 행렬 (특잇값으로 이루어진 행렬), V는 n x n 직교 행렬이며, VT는 V의 전치 행렬입니다.
- U (좌특이 벡터 행렬): AAT의 고유벡터들을 열벡터로 갖는 직교 행렬입니다. 이 열벡터들을 좌특이 벡터(left singular vector)라고 부릅니다.
- Σ (특잇값 행렬): 대각 성분들이 특잇값(singular value)인 m x n 크기의 대각 행렬입니다. 특잇값은 AAT와 ATA의 고윳값의 제곱근에 해당하며, 일반적으로 크기가 내림차순으로 정렬됩니다. 특잇값은 행렬 A의 '중요도'를 나타내는 지표로 해석될 수 있습니다. 0에 가까운 특잇값은 행렬 A에 미치는 영향이 적다고 간주됩니다.
- V (우특이 벡터 행렬): ATA의 고유벡터들을 열벡터로 갖는 직교 행렬입니다. 이 열벡터들을 우특이 벡터(right singular vector)라고 부릅니다.
활용 분야:
특잇값 분해는 다양한 분야에서 활용됩니다. 주요 활용 분야는 다음과 같습니다.
- 차원 축소: 특잇값의 크기를 기준으로 일부 특잇값과 이에 해당하는 좌/우 특이 벡터만을 사용하여 행렬을 근사함으로써 데이터의 차원을 줄일 수 있습니다. 이는 데이터의 저장 공간을 줄이고, 계산 효율성을 높이는 데 기여합니다.
- 이미지 압축: 이미지 데이터를 행렬로 표현하고 특잇값 분해를 적용하여 중요한 정보만을 유지하고 불필요한 정보를 제거함으로써 이미지 파일의 크기를 줄일 수 있습니다.
- 추천 시스템: 사용자-아이템 평점 행렬에 특잇값 분해를 적용하여 사용자의 선호도를 예측하고 아이템을 추천하는 데 활용됩니다.
- 정보 검색: 문서-단어 행렬에 특잇값 분해를 적용하여 잠재 의미 분석(Latent Semantic Analysis, LSA)을 수행하고 문서 간의 유사도를 측정하는 데 활용됩니다.
- 특이값 필터링: 신호처리에서 특정 특잇값 성분만 제거하여 노이즈를 제거하는 데 활용될 수 있습니다.
- 선형 방정식 해의 안정성 분석: 해가 존재하지 않거나 무수히 많은 경우, 또는 해가 존재하더라도 불안정한 경우에 특잇값 분해를 통해 안정적인 해를 찾거나, 문제의 근본적인 원인을 분석하는 데 도움을 줍니다.
특잇값 분해는 데이터 분석, 기계 학습, 공학 등 다양한 분야에서 필수적인 도구로 사용되고 있습니다.