7.3 Singular Value Decomposition

Jaehyun_onelion·2023년 3월 17일
1

선형대수학

목록 보기
40/42

이번 포스트에서는 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 AA be m×nm\times n matrix. The singular values of AA are the square root of the eigenvalues of ATAA^TA, denoted by σ1,...,σn\sigma_1, ..., \sigma_n, and they are arranged in decreasing order

σi=λi ,   for  i=1,...n\sigma_i = \sqrt {\lambda_i}\ , \ \ \ for \ \ i=1,...n

where λi\lambda_i is the iith eigenvalue of ATAA^TA.

AA의 singular value는 ATAA^TA의 eigenvalue를 이용하여 구할 수 있습니다. ATAA^TA의 eigenvalue에 root를 씌운 값이 AA의 singular value가 됩니다. 또한 singular value의 경우 일반적으로 크기순으로 순서를 나열합니다.

해당 정의에서 확인해야 할 점은 다음과 같습니다.

  • AA의 singular value는 중복을 포함하여 nn개 존재한다.
  • ATAA^TA의 eigenvalue는 항상 0보다 크거나 같다. 즉 positive semidefinite이다.

이는

  • ATAA^TAn×nn\times n matrix이므로, 해당 square matrix의 eigenvalue는 중복도(multiplicity)를 고려하여 최대 nn개 존재하는 것을 알 수 있습니다. 또한 ATAA^TA는 symmetric matrix이므로, nn개의 eigenvalue 모두 실숫값을 가집니다.

  • 모든 Rn\mathbb R^n에 속하는 x\boldsymbol x에 대해서 xTATAx=Ax20\boldsymbol x^T A^TA \boldsymbol x = \|A\boldsymbol x\|^2 \geq 0를 만족하므로, ATAA^TA는 positive semidefinite입니다. 즉 ATAA^TA의 eigenvalue가 모두 0보다 크거나 같다는 것을 의미하고, 따라서 eigenvalue에 root를 씌운 singular value가 정의될 수 있습니다.

다음 정리는 singular value decomposition의 기본 개념이 되는 정리입니다.


Theorem

Suppose {v1,...,vn}\{\boldsymbol v_1, ..., \boldsymbol v_n\} is an orthonormal basis of Rn\mathbb R^n consisting of eigenvectors fo ATAA^TA, arranged so that the corresponding eigenvalues of ATAA^TA satisfy λ1λ2λn\lambda_1\geq \lambda_2 \geq \cdots \geq \lambda_n, and suppose AA has rr nonzero singular values. Then {Av1,...,Avr}\{A\boldsymbol v_1, ..., A\boldsymbol v_r\} is an orthogonal basis for ColAColA, and rankA=rrankA = r

ATAA^TA의 eigenvector를 이용하여 ColAColA의 basis를 구할 수 있고, non-zero singular value의 수가 AA의 rank가 됩니다. 이 때, ColAC olA의 orthogonal basis가 {Av1,...,Avr}\{A\boldsymbol v_1, ..., A\boldsymbol v_r\}인 점은 singular value decomposition 과정에서 중요하게 사용됩니다. (증명은 appendix에 남겨두겠습니다.)


(2) Singular Value Decomposition


그럼 어떠한 방법으로 singular value decomposition을 하게 되는지 확인해봅시다.


Theorem : Singular Value Decomposition

Let AA be m×nm\times n matrix with rank rr. Then there exists an m×nm \times n matrix Σ\Sigma such that

Σ=[D000]\Sigma = \begin{bmatrix}D & 0 \\ 0 & 0 \end{bmatrix}

where diagonal entries of DD are the first rr singular values of AA, i.e.

D=diag(σ1,...,σr),  σ1σ2σr>0D = diag(\sigma_1, ..., \sigma_r), \ \ \sigma_1\geq \sigma_2 \geq \cdots \geq \sigma_r>0

, and there exists m×mm\times m orthogonal matrix UU and n×nn\times n orthogonal matrix VV such that

A=UΣVTA = U\Sigma V^T

UU and VV are not uniquely determined by AA, but diagonal entries of Σ\Sigma are necessarily the singular values of AA.

The columns of UU are called left singular vectors of AA, the columns of VV are called right singular vectors of AA.

임의의 m×nm\times n matrix AA는 세 개의 matrix U,Σ,VU, \Sigma, V로 분해가 가능합니다. Σ\Sigmam×nm\times n matrix인데, DD와 zero matrix로 partition된 matrix입니다. 이 때, diagonal matrix DD의 diagonla entry는 AA의 singular value로 구성됩니다. 따라서 Σ\Sigma는 unique하게 결정되구요.

UU의 column을 AA의 left singular vector, VV의 column을 AA의 right singular vector라고 합니다.

실제 임의의 matrix에 singular value decomposition을 적용하기 위해서는 AAU,Σ,VU, \Sigma, V로 어떻게 분해되는지 알아야 됩니다. 따라서 위의 정리를 증명해보겠습니다.


Proof

AA의 rank는 rr이므로, ATAA^TA의 rank는 rr입니다. 따라서, ATAA^TA의 eigenvalue는 중복을 포함하여 총 nn개가 나오는데, 이 때, rr의 eigenvalue가 0이 아닌 값을 가지고, nrn-r개의 eigenvalue는 0이 됩니다. 즉 ATAA^TA의 eigenvalue는

λ1λ2λr0=0=0==0\lambda_1\geq\lambda_2\geq \cdots \geq\lambda_r \geq 0 = 0 = 0= \cdots = 0

인 것을 알 수 있습니다. λ1,...,λr,0\lambda_1, ..., \lambda_r, 0에 해당하는 orthonormal한 eigenvector를 각각 v1,...,vn\boldsymbol v_1, ..., \boldsymbol v_n이라고 하면

{Av1,...,Avr}\{A\boldsymbol v_1, ..., A\boldsymbol v_r\}

ColAColA의 orthogonal basis가 됩니다. 해당 basis에 속한 벡터를 normalize 시킨

{u1,...,ur},  ui=AviAvi,  i=1,...,r\{\boldsymbol u_1, ..., \boldsymbol u_r\}, \ \ \boldsymbol u_i = \frac{A\boldsymbol v_i}{\|A\boldsymbol v_i\|}, \ \ i=1, ..., r

ColAColA의 orthonormal basis가 됩니다.

Avi=Avi2=viTATAvi=λivi2=λi=σi\|A\boldsymbol v_i\| = \sqrt{\|A\boldsymbol v_i\|^2} =\sqrt{\boldsymbol v_i^TA^TA\boldsymbol v_i} =\sqrt{\lambda_i \|\boldsymbol v_i\|^2} = \sqrt{\lambda_i} = \sigma_i

을 만족하므로,

ui=1σiAvi,  i=1,...,r\boldsymbol u_i = \frac{1}{\sigma_i}A\boldsymbol v_i, \ \ i=1, ..., r

이 됩니다. 즉

σiui=Avi,  i=1,..,r\sigma_i\boldsymbol u_i = A\boldsymbol v_i, \ \ i=1,..,r

를 만족합니다. 위 식을 이용하여 U,Σ,VU, \Sigma, V를 만들 예정입니다.

먼저 UU에 대해서 살펴봅시다. 정리에서 UUm×mm \times m orthogonal matrix입니다. u1,...,ur\boldsymbol u_1, ..., \boldsymbol u_r끼리는 모두 orthonormal하므로, 추가적으로 mrm-r개의 orthonormal한 vector를 찾아주면 됩니다. Rm\mathbb R^m에 속하는 vector이기 때문에, mrm-r개의 orthonormal한 vector를 무조건 찾을 수 있습니다. 그리하여 얻은 u1,...,um\boldsymbol u_1, ..., \boldsymbol u_m으로 이루어진 집합

{u1,...,ur,ur+1,...,um}\{\boldsymbol u_1, ..., \boldsymbol u_r, \boldsymbol u_{r+1}, ..., \boldsymbol u_m\}

Rm\mathbb R^m의 orthonormal basis가 됩니다.

두 번째는 Σ\Sigma입니다. Σ\Sigmam×nm\times n matrix이고

Σ=[D000]\Sigma = \begin{bmatrix}D & 0 \\ 0 & 0 \end{bmatrix}

다음의 partition된 matrix로 이루어져 있습니다. 이 때 D=diag(σ1,...,σr)D = diag(\sigma_1, ..., \sigma_r)이구요.

마지막으로 VV입니다. VV

V=[v1v2vn]V = \begin{bmatrix}\boldsymbol v_1 &\boldsymbol v_2 & \cdots & \boldsymbol v_n \end{bmatrix}

으로 만들어집니다. v1,...,vn\boldsymbol v_1, ..., \boldsymbol v_nATAA^TAλ1,...,λr,0\lambda_1, ..., \lambda_r, 0에 해당하는 크기가 1인 eigenvector입니다. ATAA^TA는 symmetric이므로, VV는 orthogonal matrix입니다.

다음과 같이 U,Σ,VU, \Sigma, V를 만들면,

UΣ=AVU\Sigma = AV

를 만족합니다.

UΣU\Sigma를 살펴보면

UΣ=[σ1u1σ2u2σrur00]U\Sigma = \begin{bmatrix}\sigma_1\boldsymbol u_1 & \sigma_2\boldsymbol u_2 & \cdots & \sigma_r\boldsymbol u_r & 0 & \cdots & 0 \end{bmatrix}

이고, (Σ\Sigma의 (1,1), (2, 2), ..., (r, r) entry를 제외하곤 모두 0이기 때문에 ir+1i\geq r+1부터 UΣU\Sigma값은 0입니다.)

AVAV를 살펴보면

AV=[Av1Av2AvrAvr+1Avn]AV = \begin{bmatrix} A\boldsymbol v_1 & A\boldsymbol v_2 & \cdots A\boldsymbol v_r & A\boldsymbol v_{r+1} & \cdots & A\boldsymbol {v}_n \end{bmatrix}

이고,

Avr={Avii=1,...,r0i=r+1,...,nA\boldsymbol v_r = \begin{cases} A\boldsymbol v_i & i=1,...,r \\ 0 & i=r+1, ..., n\end{cases}

이므로(i>ri>r인 경우, vi\boldsymbol v_i에 해당하는 eigenvalue가 0이므로, ATAvi=0A^TA\boldsymbol v_i = 0이고, viTATAvi=Avi2=0\boldsymbol v_i^TA^TA\boldsymbol v_i = \|A\boldsymbol v_i\|^2 = 0이므로, Avi=0A\boldsymbol v_i=0입니다.),

AV=[Av1Av2Avr00]AV = \begin{bmatrix} A\boldsymbol v_1 & A\boldsymbol v_2 & \cdots A\boldsymbol v_r & 0& \cdots & 0 \end{bmatrix}

가 됩니다. 이 때,

Avi=σiui,  i=1,...,rA\boldsymbol v_i = \sigma_i\boldsymbol u_i, \ \ i=1,...,r

이므로,

AV=UΣAV = U\Sigma

가 성립합니다. 여기에, VV는 orthogonal matrix이므로

A=UΣVTA = U\Sigma V^T

를 만족합니다.

위 정리를 통해서 임의의 m×nm\times n matrix AA의 singular value decomposition은 다음의 과정을 통해 구할 수 있습니다.

  1. ATAA^TA의 eigenvalue를 구하고, AA의 singular value를 구한다. (σ1σ2σr0\sigma_1\geq \sigma_2 \geq \cdots \geq \sigma_r \geq 0)
  2. Singular value를 이용하여 Σ\Sigma를 구한다.
  3. ATAA^TA의 각각 eigenvalue에 대응하는 크기 1의 eigenvector를 구한다.(eigenvalue의 중복도와 같은 수의 linearly independent한 eigenvector를 구합니다. 해당 eigenvector를 column으로 가지는 matrix가 VV가 됩니다.)
  4. v1,...,vr\boldsymbol v_1, ..., \boldsymbol v_r를 이용하여 u1,...,ur\boldsymbol u_1, ..., \boldsymbol u_r을 구한다. (Avi=σiui,A\boldsymbol v_i = \sigma_i\boldsymbol u_i, 이므로, ui=1σiAvi\boldsymbol u_i = \frac{1}{\sigma_i}A\boldsymbol v_i가 됩니다.)
  5. 만약 r=mr=m이면 U=[u1ur]U = \begin{bmatrix} \boldsymbol u_1 & \cdots & \boldsymbol u_r \end{bmatrix}이 되고, r<mr<m이면, 추가적인 orthonormal한 벡터 ur+1,...,um\boldsymbol u_{r+1}, ...,\boldsymbol u_{m}을 구해 UU를 만든다. (Rm\mathbb R^m에 속한 벡터이므로 반드시 존재합니다. 이 때 Gram-Schmidt process를 이용합니다.)

Example

A=[41114872]A = \begin{bmatrix} 4 & 11 & 14 \\ 8 & 7 & -2 \end{bmatrix}

다음 AA matrix를 분해해보겠습니다.


  • AA의 singular value 구하기
ATA=[801004010017014040140200]A^TA = \begin{bmatrix} 80 & 100 & 40 \\ 100 & 170 & 140 \\ 40 & 140 & 200 \end{bmatrix}

를 이용하여 ATAA^TA의 eigenvalue를 구하면

det(ATAλI)=0λ=360, 90, 0\det(A^TA-\lambda I) = 0 \\ \lambda = 360, \ 90, \ 0

인 것을 알 수 있습니다. 따라서 AA의 singular value는

σ1=610, σ2=310\sigma_1 = 6\sqrt{10}, \ \sigma_2 = 3\sqrt{10}

가 됩니다.


  • Σ\Sigma 구하기

AA의 singular value를 이용하여 Σ\Sigma를 구할 수 있습니다.

Σ=[σ1000σ20]=[6100003100]\Sigma = \begin{bmatrix} \sigma_1 & 0 & 0 \\ 0 & \sigma_2 & 0 \end{bmatrix} =\begin{bmatrix} 6\sqrt{10} & 0 & 0 \\ 0 & 3\sqrt{10} & 0 \end{bmatrix}

  • ATAA^TA의 eigenvector 구하기

λ1=360\lambda_1=360일 때

ATAx=360xA^TA\boldsymbol x =360 x

를 만족하는 크기 1의 eigenvector v1\boldsymbol v_1

v1=[132323]\boldsymbol v_1 = \begin{bmatrix}\frac{1}{3} \\ \frac{2}{3} \\ \frac{2}{3} \end{bmatrix}

가 되고,

λ2=90, λ3=0\lambda_2=90, \ \lambda_3=0일 때 eigenvector v2,v3\boldsymbol v_2, \boldsymbol v_3

v2=[231323], v3=[232313]\boldsymbol v_2 = \begin{bmatrix}-\frac{2}{3} \\ -\frac{1}{3} \\ \frac{2}{3} \end{bmatrix}, \ \boldsymbol v_3 = \begin{bmatrix}\frac{2}{3} \\ -\frac{2}{3} \\ \frac{1}{3} \end{bmatrix}

이 됩니다. 이를 이용하여

V=[v1v2v3]=[132323231323232313]V = \begin{bmatrix}\boldsymbol v_1 & \boldsymbol v_2 & \boldsymbol v_3\end{bmatrix} = \begin{bmatrix}\frac{1}{3} & -\frac{2}{3} & \frac{2}{3}\\ \frac{2}{3} & -\frac{1}{3} & -\frac{2}{3} \\ \frac{2}{3} & \frac{2}{3} & \frac{1}{3} \end{bmatrix}

VV를 구할 수 있습니다.


  • u1,...,ur\boldsymbol u_1, ..., \boldsymbol u_r 구하기

ui=1σiAvi\boldsymbol u_i = \frac{1}{\sigma_i}A\boldsymbol v_i임을 이용하여 u1,u2\boldsymbol u_1, \boldsymbol u_2를 구합니다.

u1=[310110], u2=[110310]\boldsymbol u_1 = \begin{bmatrix}\frac{3}{\sqrt{10}} \\ \frac{1}{\sqrt{10}}\end{bmatrix}, \ \boldsymbol u_2 = \begin{bmatrix}\frac{1}{\sqrt{10}} \\ -\frac{3}{\sqrt{10}}\end{bmatrix}

  • UU 만들기

지금 UU2×22\times 2 matrix여야 하는데, u1,u2\boldsymbol u_1, \boldsymbol u_2만으로 충분히 UU를 만들 수 있습니다. (만약 이전 단계에서 구한 u\boldsymbol u의 개수가 부족하다면, Gram-Schmidt process를 통해 orthonormal한 u\boldsymbol u벡터를 찾아주면 됩니다.)

U=[u1u2]=[310110110310]U = \begin{bmatrix}\boldsymbol u_1 & \boldsymbol u_2 \end{bmatrix} = \begin{bmatrix} \frac{3}{\sqrt{10}} & \frac{1}{\sqrt{10}} \\ \frac{1}{\sqrt{10}} & -\frac{3}{\sqrt{10}}\end{bmatrix}

정리하면

A=UΣVTU=[310110110310], Σ=[6100003100], V=[132323231323232313]A = U\Sigma V^T \\ U=\begin{bmatrix} \frac{3}{\sqrt{10}} & \frac{1}{\sqrt{10}} \\ \frac{1}{\sqrt{10}} & -\frac{3}{\sqrt{10}}\end{bmatrix}, \ \Sigma = \begin{bmatrix} 6\sqrt{10} & 0 & 0 \\ 0 & 3\sqrt{10} & 0 \end{bmatrix}, \ V=\begin{bmatrix}\frac{1}{3} & -\frac{2}{3} & \frac{2}{3}\\ \frac{2}{3} & -\frac{1}{3} & -\frac{2}{3} \\ \frac{2}{3} & \frac{2}{3} & \frac{1}{3} \end{bmatrix}

가 됩니다.


Example

A=[112222]A = \begin{bmatrix} 1 & -1 \\ -2 & 2 \\ 2 & -2 \end{bmatrix}

다음 matrix를 분해해보겠습니다.


  • AA의 singular value구하기
ATA=[9999]A^TA = \begin{bmatrix}9 & -9 \\ -9 & 9\end{bmatrix}

임을 이용하면

det(ATAλI)=(9λ)281=0λ=18, 0\det(A^TA-\lambda I) = (9-\lambda)^2 -81 = 0 \\ \lambda = 18, \ 0

이므로 AA의 singular value는

σ1=32\sigma_1 = 3\sqrt 2

입니다.


  • Σ\Sigma 구하기

따라서, Σ\Sigma

Σ=[σ100000]=[3200000]\Sigma = \begin{bmatrix} \sigma_1 & 0 \\ 0 & 0 \\ 0 & 0 \end{bmatrix} = \begin{bmatrix} 3\sqrt 2 & 0 \\ 0 & 0 \\ 0 & 0 \end{bmatrix}

입니다.


  • ATAA^TA의 eigenvector 구하기

λ1=18,λ2=0\lambda_1 = 18, \lambda_2=0일 때의 크기 1인 eigenvector는

v1=[1212], v2=[1212]\boldsymbol v_1 = \begin{bmatrix}\frac{1}{\sqrt 2} \\ -\frac{1}{\sqrt 2} \end{bmatrix}, \ \boldsymbol v_2 = \begin{bmatrix}\frac{1}{\sqrt 2} \\ \frac{1}{\sqrt 2} \end{bmatrix}

입니다. 이를 이용하면

V=[12121212]V = \begin{bmatrix}\frac{1}{\sqrt 2} & \frac{1}{\sqrt 2} \\ -\frac{1}{\sqrt 2} & \frac{1}{\sqrt 2} \end{bmatrix}

을 구할 수 있습니다.


  • u1\boldsymbol u_1 구하기

u1\boldsymbol u_1

u1=1σ1Av1=[132323]\boldsymbol u_1 = \frac{1}{\sigma_1}A\boldsymbol v_1 = \begin{bmatrix}\frac{1}{3}\\-\frac{2}{3} \\\frac{2}{3} \end{bmatrix}

으로 구할 수 있습니다.


  • UU 구하기

UU3×33\times 3 matrix여야 하는데, 지금 이전 단계에서 u1\boldsymbol u_1밖에 구하지 못했습니다. 이 후 나머지 벡터 u2,u3\boldsymbol u_2, \boldsymbol u_3u1,u2,u3\boldsymbol u_1, \boldsymbol u_2, \boldsymbol u_3가 orthogonormal하도록 만들어주면 됩니다.

u1w=13w123w2+23w3=0w12w2+2w3=0w=w2[210]+w2[201]\boldsymbol u_1 \cdot \boldsymbol w = \frac{1}{3}w_{1} -\frac{2}{3}w_{2} + \frac{2}{3}w_{3} = 0 \\ w_{1}-2w_{2}+2w_{3}= 0 \\ \boldsymbol w = w_2\begin{bmatrix}2 \\ 1 \\ 0\end{bmatrix} + w_2\begin{bmatrix}-2 \\ 0\\1\end{bmatrix}

여기서,

wSpan{[210],[201]}\boldsymbol w \in Span\{\begin{bmatrix}2 \\ 1 \\ 0\end{bmatrix}, \begin{bmatrix}-2 \\ 0\\1\end{bmatrix}\}

해당 조건을 만족하는 w\boldsymbol wu1\boldsymbol u_1과 orthogonal합니다. 여기서, u2,u3\boldsymbol u_2, \boldsymbol u_3가 서로 orthogonal하도록 만들어주면 됩니다.

w1=[210], w2=[201]\boldsymbol w_1 = \begin{bmatrix}2 \\ 1 \\ 0\end{bmatrix}, \ \boldsymbol w_2 = \begin{bmatrix}-2 \\ 0\\1\end{bmatrix} \\

으로 지정하면, w3\boldsymbol w_3는 위의 subspace에 속하면서 w1\boldsymbol w_1과 orthogonal해야 합니다. Gram-Schmidt process를 이용하면

w3=w2w1w2w1w1w1=w245w1=[25451]\boldsymbol w_3 = \boldsymbol w_2 - \frac{\boldsymbol w_1 \cdot \boldsymbol w_2}{\boldsymbol w_1 \cdot \boldsymbol w_1 }\boldsymbol w_1 = \boldsymbol w_2 - \frac{-4}{5}\boldsymbol w_1 = \begin{bmatrix}-\frac{2}{5}\\\frac{4}{5}\\1\end{bmatrix}

가 나와

u2=1w1w1=[25150]u3=1w3w3=[245445545]\boldsymbol u_2 = \frac{1}{\|\boldsymbol w_1\|}\boldsymbol w_1 = \begin{bmatrix}\frac{2}{\sqrt 5} \\ \frac{1}{\sqrt 5} \\ 0\end{bmatrix} \\ \boldsymbol u_3 = \frac{1}{\|\boldsymbol w_3\|}\boldsymbol w_3 = \begin{bmatrix}-\frac{2}{\sqrt {45}} \\ \frac{4}{\sqrt {45}} \\ \frac{5}{\sqrt{45}}\end{bmatrix} \\

를 구할 수 있습니다. 따라서,

U=[u1u2u3]=[13252452315445230545]U = \begin{bmatrix}\boldsymbol u_1 & \boldsymbol u_2 & \boldsymbol u_3 \end{bmatrix} = \begin{bmatrix}\frac{1}{3} & \frac{2}{\sqrt 5} & -\frac{\sqrt{2}}{\sqrt{45}}\\-\frac{2}{3} & \frac{1}{\sqrt 5} & \frac{\sqrt 4}{\sqrt{45}} \\ \frac{2}{3} &0 &\frac{5}{\sqrt{45}} \end{bmatrix}

가 되고,

A=UΣVTV=[12121212], Σ=[3200000], U=[13252452315445230545]A = U\Sigma V^T \\ V = \begin{bmatrix}\frac{1}{\sqrt 2} & \frac{1}{\sqrt 2} \\ -\frac{1}{\sqrt 2} & \frac{1}{\sqrt 2} \end{bmatrix}, \ \Sigma = \begin{bmatrix} 3\sqrt 2 & 0 \\ 0 & 0 \\ 0 & 0 \end{bmatrix}, \ U = \begin{bmatrix}\frac{1}{3} & \frac{2}{\sqrt 5} & -\frac{\sqrt{2}}{\sqrt{45}}\\-\frac{2}{3} & \frac{1}{\sqrt 5} & \frac{\sqrt 4}{\sqrt{45}} \\ \frac{2}{3} &0 &\frac{5}{\sqrt{45}} \end{bmatrix}

가 됩니다.


지금까지 Singular Value Decomposition에 대해 알아보았습니다. 다음 포스트에서는 Singular Value Decomposition를 이용한 다양한 matrix의 성질에 대해 다루어보겠습니다. 질문이나 오류 있으면 댓글 남겨주세요! 감사합니다!


Appendix : Proof of Theorem


Theorem

Suppose {v1,...,vn}\{\boldsymbol v_1, ..., \boldsymbol v_n\} is an orthonormal basis of Rn\mathbb R^n consisting of eigenvectors fo ATAA^TA, arranged so that the corresponding eigenvalues of ATAA^TA satisfy λ1λ2λn\lambda_1\geq \lambda_2 \geq \cdots \geq \lambda_n, and suppose AA has rr nonzero singular values. Then {Av1,...,Avr}\{A\boldsymbol v_1, ..., A\boldsymbol v_r\} is an orthogonal basis for ColAColA, and rankA=rrankA = r


  • Proof

{v1,...,vn}\{\boldsymbol v_1, ..., \boldsymbol v_n\}

ATAA^TA의 eigenvector이고, 각각의 eigenvectors에 해당하는 eigenvalue가

λ1λ2λn\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_n

입니다. 여기서 λ1,...,λr0\lambda_1, ..., \lambda_r\geq 0이고, 이 후의 λr+1,...,λn=0\lambda_{r+1}, ..., \lambda_{n}=0입니다. 먼저

{Av1,...,Avr}\{A\boldsymbol v_1, ..., A\boldsymbol v_r\}

가 orthogonal한 것을 먼저 보이겠습니다. iji\neq j에 대해서

AviAvj=vjATAvi=λivjvi=0A\boldsymbol v_i \cdot A\boldsymbol v_j = \boldsymbol v_jA^TA\boldsymbol v_i = \lambda_i \boldsymbol v_j \cdot \boldsymbol v_i = 0

을 만족합니다. 이는 ATAA^TA는 symmetric matrix이므로, ATAA^TA의 서로 다른 eigenvalue에 해당하는 eigenvector는 orthogonal하기 때문입니다. (만약 eigenvalue가 같다면, eigenspace의 dimension과 해당 eigenvalue의 중복도가 같으므로, 해당 eigenspace에서 orthogonal한 벡터를 중복도만큼 만들 수 있습니다.)

두 번째로

{Av1,...,Avr}\{A\boldsymbol v_1, ..., A\boldsymbol v_r\}

ColAColA의 basis인 것을 보이겠습니다. 먼저

{Av1,...,Avr}ColA\{A\boldsymbol v_1, ..., A\boldsymbol v_r\} \subset ColA

입니다. AviA\boldsymbol v_iAA의 column의 linear combination이기 때문입니다. 현재 linear independence는 만족하였으므로(orthogonal하므로), 위 집합을 이용하여 span하였을 때 column space가 되는지만 확인하면 됩니다. 이를 확인하기 위해

{v1,...,vn}\{\boldsymbol v_1, ..., \boldsymbol v_n\}

를 생각해봅시다. 해당 벡터들은 orthogonal하고, Rn\mathbb R^n에 속해있습니다. 따라서 해당 집합은 Rn\mathbb R^n의 basis가 됩니다. 한편

yColAy=Ax,  xRn\boldsymbol y \in Col A \\ \Rightarrow \boldsymbol y = A\boldsymbol x, \ \ \boldsymbol x \in \mathbb R^n

이 성립됩니다. 여기서, xRn\boldsymbol x \in \mathbb R^n이므로

x=c1v1++cnvn\boldsymbol x = c_1\boldsymbol v_1 +\cdots + c_n \boldsymbol v_n

이 되고

y=c1Av1++cnAvn\boldsymbol y = c_1A\boldsymbol v_1 + \cdots + c_nA\boldsymbol v_n

가 됩니다. 즉,

Span{Av1,...,Avn}=ColASpan\{A\boldsymbol v_1, ..., A\boldsymbol v_n\} = ColA

를 만족합니다. 그런데, i>ri>r부터의 ATAA^TA의 eigenvalue는 0이므로, Avi=0A\boldsymbol v_i = 0 또한 0이 됩니다. 즉 위의 식이

Span{Av1,...,Avr,0}=ColASpan\{A\boldsymbol v_1, ..., A\boldsymbol v_r, 0\} = ColA

을 만족하게 되죠. 위의 식에서 00을 제외하더라도

Span{Av1,...,Avr}=ColASpan\{A\boldsymbol v_1, ..., A\boldsymbol v_r\} = ColA

가 성립합니다. 따라서

{Av1,...,Avr}\{A\boldsymbol v_1, ..., A\boldsymbol v_r\}

ColAColA의 basis가 되고, rankA=rrankA = r이 성립합니다.

profile
데이터 분석가 새싹

0개의 댓글