이번 포스트에서는 Singular Value Decomposition에 대해 다루어보겠습니다.
1) Singular Value Decomposition
이전 포스트에서 Diagonalization에 대해 배웠습니다. 하나의 행렬을 여러 행렬의 곱으로 분해할 수 있는 지의 여부는 행렬의 중요한 성질 중 하나입니다. Diagonalization의 경우, square matrix에 한정해서 가능하였고, 모든 square matrix가 diagonalization이 가능하지는 않았습니다.
이번 포스트에서 다루는 Singular Value Decomposition(SVD)는 임의의 행렬 모두에 대해서 적용이 가능합니다! 즉 square matrix가 아니더라도 적용이 가능합니다! 어떠한 방법을 이용하여 다루는지 알아보도록 하겠습니다.
(1) Singular Value
Definition : Singular Value
Let A be m×n matrix. The singular values of A are the square root of the eigenvalues of ATA, denoted by σ1,...,σn, and they are arranged in decreasing order
σi=λi,fori=1,...n
where λi is the ith eigenvalue of ATA.
A의 singular value는 ATA의 eigenvalue를 이용하여 구할 수 있습니다. ATA의 eigenvalue에 root를 씌운 값이 A의 singular value가 됩니다. 또한 singular value의 경우 일반적으로 크기순으로 순서를 나열합니다.
해당 정의에서 확인해야 할 점은 다음과 같습니다.
A의 singular value는 중복을 포함하여 n개 존재한다.
ATA의 eigenvalue는 항상 0보다 크거나 같다. 즉 positive semidefinite이다.
이는
ATA는 n×n matrix이므로, 해당 square matrix의 eigenvalue는 중복도(multiplicity)를 고려하여 최대 n개 존재하는 것을 알 수 있습니다. 또한 ATA는 symmetric matrix이므로, n개의 eigenvalue 모두 실숫값을 가집니다.
모든 Rn에 속하는 x에 대해서 xTATAx=∥Ax∥2≥0를 만족하므로, ATA는 positive semidefinite입니다. 즉 ATA의 eigenvalue가 모두 0보다 크거나 같다는 것을 의미하고, 따라서 eigenvalue에 root를 씌운 singular value가 정의될 수 있습니다.
다음 정리는 singular value decomposition의 기본 개념이 되는 정리입니다.
Theorem
Suppose {v1,...,vn} is an orthonormal basis of Rn consisting of eigenvectors fo ATA, arranged so that the corresponding eigenvalues of ATA satisfy λ1≥λ2≥⋯≥λn, and suppose A has r nonzero singular values. Then {Av1,...,Avr} is an orthogonal basis for ColA, and rankA=r
ATA의 eigenvector를 이용하여 ColA의 basis를 구할 수 있고, non-zero singular value의 수가 A의 rank가 됩니다. 이 때, ColA의 orthogonal basis가 {Av1,...,Avr}인 점은 singular value decomposition 과정에서 중요하게 사용됩니다. (증명은 appendix에 남겨두겠습니다.)
(2) Singular Value Decomposition
그럼 어떠한 방법으로 singular value decomposition을 하게 되는지 확인해봅시다.
Theorem : Singular Value Decomposition
Let A be m×n matrix with rank r. Then there exists an m×n matrix Σ such that
Σ=[D000]
where diagonal entries of D are the first r singular values of A, i.e.
D=diag(σ1,...,σr),σ1≥σ2≥⋯≥σr>0
, and there exists m×m orthogonal matrix U and n×n orthogonal matrix V such that
A=UΣVT
U and V are not uniquely determined by A, but diagonal entries of Σ are necessarily the singular values of A.
The columns of U are called left singular vectors of A, the columns of V are called right singular vectors of A.
임의의 m×n matrix A는 세 개의 matrix U,Σ,V로 분해가 가능합니다. Σ는 m×n matrix인데, D와 zero matrix로 partition된 matrix입니다. 이 때, diagonal matrix D의 diagonla entry는 A의 singular value로 구성됩니다. 따라서 Σ는 unique하게 결정되구요.
U의 column을 A의 left singular vector, V의 column을 A의 right singular vector라고 합니다.
실제 임의의 matrix에 singular value decomposition을 적용하기 위해서는 A가 U,Σ,V로 어떻게 분해되는지 알아야 됩니다. 따라서 위의 정리를 증명해보겠습니다.
Proof
A의 rank는 r이므로, ATA의 rank는 r입니다. 따라서, ATA의 eigenvalue는 중복을 포함하여 총 n개가 나오는데, 이 때, r의 eigenvalue가 0이 아닌 값을 가지고, n−r개의 eigenvalue는 0이 됩니다. 즉 ATA의 eigenvalue는
λ1≥λ2≥⋯≥λr≥0=0=0=⋯=0
인 것을 알 수 있습니다. λ1,...,λr,0에 해당하는 orthonormal한 eigenvector를 각각 v1,...,vn이라고 하면
{Av1,...,Avr}
은 ColA의 orthogonal basis가 됩니다. 해당 basis에 속한 벡터를 normalize 시킨
{u1,...,ur},ui=∥Avi∥Avi,i=1,...,r
은 ColA의 orthonormal basis가 됩니다.
∥Avi∥=∥Avi∥2=viTATAvi=λi∥vi∥2=λi=σi
을 만족하므로,
ui=σi1Avi,i=1,...,r
이 됩니다. 즉
σiui=Avi,i=1,..,r
를 만족합니다. 위 식을 이용하여 U,Σ,V를 만들 예정입니다.
먼저 U에 대해서 살펴봅시다. 정리에서 U는 m×m orthogonal matrix입니다. u1,...,ur끼리는 모두 orthonormal하므로, 추가적으로 m−r개의 orthonormal한 vector를 찾아주면 됩니다. Rm에 속하는 vector이기 때문에, m−r개의 orthonormal한 vector를 무조건 찾을 수 있습니다. 그리하여 얻은 u1,...,um으로 이루어진 집합
{u1,...,ur,ur+1,...,um}
은 Rm의 orthonormal basis가 됩니다.
두 번째는 Σ입니다. Σ는 m×n matrix이고
Σ=[D000]
다음의 partition된 matrix로 이루어져 있습니다. 이 때 D=diag(σ1,...,σr)이구요.
마지막으로 V입니다. V는
V=[v1v2⋯vn]
으로 만들어집니다. v1,...,vn은 ATA의 λ1,...,λr,0에 해당하는 크기가 1인 eigenvector입니다. ATA는 symmetric이므로, V는 orthogonal matrix입니다.
다음과 같이 U,Σ,V를 만들면,
UΣ=AV
를 만족합니다.
UΣ를 살펴보면
UΣ=[σ1u1σ2u2⋯σrur0⋯0]
이고, (Σ의 (1,1), (2, 2), ..., (r, r) entry를 제외하곤 모두 0이기 때문에 i≥r+1부터 UΣ값은 0입니다.)
AV를 살펴보면
AV=[Av1Av2⋯AvrAvr+1⋯Avn]
이고,
Avr={Avi0i=1,...,ri=r+1,...,n
이므로(i>r인 경우, vi에 해당하는 eigenvalue가 0이므로, ATAvi=0이고, viTATAvi=∥Avi∥2=0이므로, Avi=0입니다.),
AV=[Av1Av2⋯Avr0⋯0]
가 됩니다. 이 때,
Avi=σiui,i=1,...,r
이므로,
AV=UΣ
가 성립합니다. 여기에, V는 orthogonal matrix이므로
A=UΣVT
를 만족합니다.
위 정리를 통해서 임의의 m×n matrix A의 singular value decomposition은 다음의 과정을 통해 구할 수 있습니다.
ATA의 eigenvalue를 구하고, A의 singular value를 구한다. (σ1≥σ2≥⋯≥σr≥0)
Singular value를 이용하여 Σ를 구한다.
ATA의 각각 eigenvalue에 대응하는 크기 1의 eigenvector를 구한다.(eigenvalue의 중복도와 같은 수의 linearly independent한 eigenvector를 구합니다. 해당 eigenvector를 column으로 가지는 matrix가 V가 됩니다.)
v1,...,vr를 이용하여 u1,...,ur을 구한다. (Avi=σiui, 이므로, ui=σi1Avi가 됩니다.)
만약 r=m이면 U=[u1⋯ur]이 되고, r<m이면, 추가적인 orthonormal한 벡터 ur+1,...,um을 구해 U를 만든다. (Rm에 속한 벡터이므로 반드시 존재합니다. 이 때 Gram-Schmidt process를 이용합니다.)
지금까지 Singular Value Decomposition에 대해 알아보았습니다. 다음 포스트에서는 Singular Value Decomposition를 이용한 다양한 matrix의 성질에 대해 다루어보겠습니다. 질문이나 오류 있으면 댓글 남겨주세요! 감사합니다!
Appendix : Proof of Theorem
Theorem
Suppose {v1,...,vn} is an orthonormal basis of Rn consisting of eigenvectors fo ATA, arranged so that the corresponding eigenvalues of ATA satisfy λ1≥λ2≥⋯≥λn, and suppose A has r nonzero singular values. Then {Av1,...,Avr} is an orthogonal basis for ColA, and rankA=r
Proof
{v1,...,vn}
은 ATA의 eigenvector이고, 각각의 eigenvectors에 해당하는 eigenvalue가
λ1≥λ2≥⋯≥λn
입니다. 여기서 λ1,...,λr≥0이고, 이 후의 λr+1,...,λn=0입니다. 먼저
{Av1,...,Avr}
가 orthogonal한 것을 먼저 보이겠습니다. i=j에 대해서
Avi⋅Avj=vjATAvi=λivj⋅vi=0
을 만족합니다. 이는 ATA는 symmetric matrix이므로, ATA의 서로 다른 eigenvalue에 해당하는 eigenvector는 orthogonal하기 때문입니다. (만약 eigenvalue가 같다면, eigenspace의 dimension과 해당 eigenvalue의 중복도가 같으므로, 해당 eigenspace에서 orthogonal한 벡터를 중복도만큼 만들 수 있습니다.)
두 번째로
{Av1,...,Avr}
가 ColA의 basis인 것을 보이겠습니다. 먼저
{Av1,...,Avr}⊂ColA
입니다. Avi는 A의 column의 linear combination이기 때문입니다. 현재 linear independence는 만족하였으므로(orthogonal하므로), 위 집합을 이용하여 span하였을 때 column space가 되는지만 확인하면 됩니다. 이를 확인하기 위해
{v1,...,vn}
를 생각해봅시다. 해당 벡터들은 orthogonal하고, Rn에 속해있습니다. 따라서 해당 집합은 Rn의 basis가 됩니다. 한편
y∈ColA⇒y=Ax,x∈Rn
이 성립됩니다. 여기서, x∈Rn이므로
x=c1v1+⋯+cnvn
이 되고
y=c1Av1+⋯+cnAvn
가 됩니다. 즉,
Span{Av1,...,Avn}=ColA
를 만족합니다. 그런데, i>r부터의 ATA의 eigenvalue는 0이므로, Avi=0 또한 0이 됩니다. 즉 위의 식이