본문 바로가기
Linear Algebra

특이값 분해(Singular Value Decomposition)

by 흐긴 2022. 9. 29.

이 글을 읽기 전에 고유값 분해에 대해서 알고 계시면 이해하기 조금 쉬울 수 있습니다. 궁금하시면 이전 글 참고해보세요.

2022.09.14 - [Linear Algebra] - Eigenvalue Decomposition(고유값 분해)-1

 

Eigenvalue Decomposition(고유값 분해)-1

1. 고유값(eigen value)와 고유벡터(eigen vector)란? 고유벡터: 어떤 선형변환 $A$에 의한 변환결과가 자기 자신의 상수배(고유값)이 되는 0이 아닌 벡터 즉, $n{\times}n$ 정방행렬(square matrix) $A$에 대해 $..

forcomkid.tistory.com

고유값 분해(Eigen Decomposition) 조건: n차 정방행렬 \(A\)가 n개의 일차독립인 고유벡터를 가짐.
이처럼 위의 조건이 충족할 때만 분해가 가능했습니다.
하지만, 특이값 분해를 이용하면 모든 \(m{\times}n\)행렬에 대해서는 아래의 꼴로 분해하는 것이 가능합니다.

 

\(A=U{\Sigma}V^{T}\)
\(U\):\(m{\times}m\) orthogonal matrix(직교행렬) (\(AA^{T}=U({\Sigma}{\Sigma}^{T})U^{T}\))
\(V\):\({n\times}n\) orthogonal matrix(직교행렬) (\(A^{T}A=V({\Sigma}^{T}{\Sigma})V^{T}\))
\({\Sigma}\):\(m{\times}n\) 직사각 대각행렬(Diagonal Matrix)

 

\(U\)는 \(AA^{T}\)를 고유값 분해를 해서 얻어진 직교행렬로 \(U\)의 열벡터들을 \(A\)의 left singular vector라고 부릅니다.

\(V\)는 \(A^{T}A\)를 고유값 분해를 해서 얻어진 직교행렬로 \(V\)의 열벡터들을 \(A\)의 right singular vector리거 부릅니다.

\({\Sigma}\)는 \(AA^{T}\), \(A^{T}A\)를 고유값 분해해서 나오는 고유값들의 제곱근을 대각원소로 하는 \(m{\times}n\)직사각 대각 행렬로 그 대각원소들을 \(A\)의 특이값(Sigular Value)라고 합니다.

 

한가지 흥미로운 점은 \(AA^{T}\)와 \(A^{T}A\)의 고유값은 모두 0이상이며 0이 아닌 고유값들은 동일하다는 점입니다. 왜일까요? 증명해봅시다.

 

1. \(A^{T}A\)의 고유값을 \({\lambda}\), 고유벡터를 \(v\)라고 했을때, \(A^{T}(Av)={\Lambda}v\)를 만족합니다. 양변에 \(v^{T}\)를 곱해보면 \(vA^{T}Av={\lambda}v^{T}v\)에서 \((Av)^{T}Av={\lambda}v^{T}v\)가 됩니다. 즉, \({\lVert}Av{\rVert}^2={\lambda}(||v||)^{2}\)이므로 \({\lambda}{\geq}{0}\)입니다.

 

2. \(A^{T}A\)의 0이 아닌 고유값를 \({\lambda}\), 고유벡터를 \(v\)일때, \(A^{T}(Av)={\Lambda}v\)입니다. 양변에 \(A\)를 곱해보면 \(AA^{T}Av={\Lambda}Av\)가 됩니다. 즉, \(AA^{T}(Av)={\Lambda}(Av)\)이고, \(Av\)가 0이 아니라면 \({\lambda}\)또한 \(AA^{T}\)의 고유값인 것을 알 수 있습니다.

 

위의 증명에 의해 \(A\)의 특이값을 대각원소로 하는 \({\Sigma}\)는 항상 0이상입니다.

 

SVD의 기하학적 설명

orthogonal matrix(직교 행렬) => rotation or reflected transform

Diagonal matrix(대각 행렬) => scale transform

따라서, \(A=U{\Sigma}V^{T}\)에서 \(Ax\)는 \(x\)를 먼저 \(V^{T}\)로 회전, \({\Sigma}\)로 스케일 변환, 다시 \(U\)로 다시 회전시킵니다.