/ EXITEM, TIL

SVD

SVD란?

  • 특이값 분해(Singular Value Decomposition;SVD)
  • 주어진 행렬을 세 개의 행렬의 곲으로 분해하는 기법입니다.
    • 이 세 개의 행렬은 특이값, 왼쪽 특이벡터, 오른쪽 특이벡터라고 합니다.
    • 특이값 행렬
      • 중요도가 높은 순서대로 정렬된 실수값을 대각원소로 가지는 정방 행렬입니다.
    • 왼쪽 특이벡터 행렬
      • 행렬의 행의 차원과 같은 크기를 가지며, 각 열이 서로 직교하는 단위 벡터로 구성된 직사각 행렬입니다.
    • 오른쪽 특이벡터 행렬
      • 행렬의 열의 차원과 같은 크기를 가지며, 각 열이 서로 직교하는 단위 벡터로 구성된 직사각 행렬입니다.
    • 이러한 행렬 분해를 통해, 행렬의 고유 정보를 추출할 수 있습니다.
    • 행렬의 차원 중 작은 값(일반적으로 0에 가까운 값)을 제거하면, 차원 축소(Dimensionality Reduction)을 수행할 수 있습니다.
  • 사용되는 다양한 분야
    • 행렬 분해
    • 추천 시스템 : SVD를 이용하여 사용자와 상품의 특성을 추출하고, 이를 바탕으로 개인화된 추천을 제공할 수 있습니다.
    • 이미지 압축 : SVD를 이용하여 분해하면, 중요한 정보만 남기고 불필요한 정보는 제거할 수 있어 이미지 압출에 사용됩니다.
  • PCA(주성분 분석) 등의 기법과 밀접한 관련이 있으며, 머신러닝과 딥러닝 분야에서도 널리 사용됩니다.
    • 예를 들어, 이미지 분류에서는 이미지 데이터를 특징 벡터로 변환하는 과정이 필요한데, 이 때 SVD를 이용하여 데이터를 분해하고, 중요한 정보를 추출합니다.
    • 이를 바탕으로 분류 모델을 학습하거나, 차원 축소를 수행하여 모델의 성능을 개선할 수 있습니다.
  • SVD는 행렬 분해 기법 중에서도 가장 일반적인 기법 중 하나입니다.
    • 다양한 행렬 기법이 존재하지만, SVD는 대부분의 행렬에 대해서 적용이 가능하고
    • 분해된 세 개의 행렬을 통해 다양한 정보를 추출할 수 있습니다.
  • 단점
    • 행렬의 크기가 크거나, 희소 행렬(sparse matrix)의 경우에는 계산 복잡도가 매우 높아지는 단점이 있습니다.
    • 이를 해결하기 위해, SVD의 변형 기법인 절단된 SVD(Truncated SVD)와 랜덤 SVD(Randomized SVD) 등이 개발되었습니다.