특이값 분해(Singular Value Decomposition, SVD)는 선형 대수학에서 중요한 개념으로, 임의의 $m$ x $n$ 크기의 행렬 $A$를 세 행렬의 곱으로 분해하는 방법이다.
주어진 행렬 $A$에 대해, SVD는 다음과 같이 정의된다.
$A = U \Sigma V^*$
여기서,
- $A$는 $m$ x $n$ 크기의 행렬로, 분해하고자 하는 대상이다.
- $U$는 $m$ x $m$ 크기의 직교 행렬(orthogonal matrix)로, $A$의 열 공간의 기저를 구성하는 고유벡터들로 이루어져 있다.
- $Σ$는 $m$ x $n$ 크기의 대각 행렬로, $A$의 특이값(singular values)이라 불리는 값들을 대각선 상에 정렬한 행렬이다. 특이값은 $A$의 고유값의 제곱근이며, 이 값들은 일반적으로 큰 것에서 작은 것 순으로 정렬된다.
- $V^*$는 $n$ x $n$ 크기의 직교 행렬로, $A$의 행 공간의 기저를 구성하는 고유벡터들로 이루어져 있다. 여기서 $^*$는 복소 수에 대한 켤레 전치(conjugate transpose)를 의미한다.
특이값 분해의 몇 가지 중요한 성질은 다음과 같다.
- $A$의 열 벡터들은 $U$의 열 벡터들의 선형 조합으로 나타낼 수 있다. 이 선형 조합의 계수들은 $\Sigma$의 대각선 상의 값들과 $V$의 행 벡터들에 의해 결정된다.
- $A$의 행 벡터들은 $V$의 행 벡터들의 선형 조합으로 나타낼 수 있다. 이 선형 조합의 계수들은 $\Sigma$의 대각선 상의 값들과 $U$의 행 벡터들에 의해 결정된다.
- SVD는 행렬 $A$의 유사 역행렬(pseudoinverse)를 구하는 데 활용할 수 있다. 유사 역행렬은 $A$의 역행렬이 존재하지 않을 때, $A$를 최대한 근사하는 역행렬을 찾는 것이다.