특이값 분해(SVD)

특이값 분해의 정의

  • 특이값 분해(Singular Value Decomposition, SVD)는 임의의 차원의 행렬 에 대하여 다음과 같이 행렬을 분해할 수 있는 행렬 분해 방법 중 하나이다.
  • 여기서 각 행렬은 다음과 같은 성질을 가진다.
    • : 직교행렬()로, 열벡터들을 좌특이벡터(left singular vector) 라고 한다. 의 열벡터들은 의 고유벡터이다.
    • : 직교행렬()로, 열벡터들을 우특이벡터(right singular vector) 라고 한다. 의 열벡터들은 의 고유벡터이다.
    • : 직사각 대각행렬로, 대각 성분 가 의 특이값(singular value) 이다. 특이값은 항상 0 이상이며 보통 순으로 내림차순 정렬한다.
  • 특이값 는 (또는 )의 0이 아닌 고유값 에 대하여 이다. 0이 아닌 특이값의 개수 은 행렬 의 랭크(rank) 와 같다.
  • 고유값 분해와 달리 특이값 분해는 정방행렬이 아니거나 대각화가 불가능한 행렬을 포함하여 모든 행렬에 대해 항상 존재한다.
  • 기하학적으로 가 벡터에 작용하는 선형변환은 회전(또는 반사) → 축 방향 스케일링 → 회전(또는 반사) 의 세 단계로 분해된다.
  • 외적의 합으로 나타내면 다음과 같이 쓸 수 있고, 큰 특이값에 해당하는 항만 남기면 의 저랭크 근사가 된다.

참고