정의
행렬을 특이벡터들과 특잇값들로 분해한다. 그래서 얻을 수 있는 정보는 고유값 분해와 동일하지만,
- SVD는 좀 더 일반적인 행렬들에 적용 가능하다는 장점이 있다.
- 항상 고윳값 분해가 존재하는 것이 아니다.
⇒ 행렬이 정방행렬이 아니면, 고유값 분해가 정의되지 않는다. 따라서 반드시 SVD(특이값 분해)를 사용해야 한다.
$A = UDV^T$
- $A \in R^{m\times n}$ ($m \times n$ 행렬)
- $U \in R^{m \times m}$ ($m \times m$ 행렬)
- $D \in R^{m \times n}$ ($m \times n$ 행렬)
- $V \in R^{n \times n}$ ($n \times n$ 행렬)
행렬 $U$와 $V$는 둘 다 직교행렬로 정의된다. $D$가 대각행렬로 정의되고, 반드시 정방행렬인 것은 아님
분해 행렬 특징
- $D$의 주대각 성분을 행렬 $A$의 특잇값(Singular Value)이라고 부른다.
- $U$의 열을 좌특이벡터라고 부른다. ⇒ $AA^T$의 고유벡터
- $V$의 열을 우특이벡터라고 부른다. ⇒ $A^TA$의 고유벡터
- $D$의 주대각선 성분은 $A^TA$ 또는 $AA^T$의 고유값의 제곱근