[선형대수] Lecture 29: Singular value decomposition

이재호·2025년 3월 25일

선형대수

목록 보기
28/31

https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/video_galleries/video-lectures/

이번 강의에서는 다음과 같은 내용을 다룬다.

  • Singular Value Decomposition ( SVD )
  • A=uΣvTA=u\Sigma v^T
    • u,vu, v : orthogonal
    • Σ\Sigma : diagonal

지난 강의에서 A=QΛQTA=Q\Lambda Q^T 를 배운 적이 있다.

  • 대칭(Symmetric) 행렬 AA 는 항상 직교(Orthogonal) 행렬 QQ 와 대각 행렬 Λ\Lambda 로 분해될 수 있다.
  • 만약 AA 가 positive definite matrix 라면, Λ\Lambda 의 모든 대각 성분(고유값)이 양수가 된다.

A=uΣvTA=u\Sigma v^T 를 확인하기 위해 다음 예시를 보자.

A=[4433]A= \begin{bmatrix} 4 & 4 \\ -3 & 3 \\ \end{bmatrix}
v1,v2R2(rowspace)v_1,v_2 \in \R^2(rowspace)
u1,u2R2(columnspace)u_1,u_2 \in \R^2(columnspace)
u,v:orthonormal vectoru,v:orthonormal \ vector
Av1=σ1u1Av_1=\sigma_1 u_1
Av2=σ2u2Av_2=\sigma_2 u_2

따라서 다음과 같이 표현할 수가 있다.

Av=uΣ (Σ=[σ100σ2])Av=u\Sigma~ (\Sigma=\begin{bmatrix}\sigma_1 & 0 \\ 0 & \sigma_2\end{bmatrix})
A=uΣv1=uΣvT (v:orthonormalv1=vT)\to A=u\Sigma v^{-1}=u\Sigma v^T ~ (v:orthonormal\to v^{-1}=v^T)

이제 A=uΣvTA=u\Sigma v^T 식이 어떻게 나왔는지 알았다. 이어서 보자.

ATA=vΣTuTuΣvT=vΣTΣvT=v[σ1200σ22]vTA^TA=v\Sigma^Tu^Tu\Sigma v^T = v\Sigma^T\Sigma v^T = v\begin{bmatrix}\sigma_1^2 & 0 \\ 0 & \sigma_2^2\end{bmatrix}v^T

위에서 ATAA^TA 수식을 봤을 때, eigenvalue σ2\sigma^2 와 eigenvector 를 구할 수가 있다.

ATA=[4343][4433]=[257725]A^TA= \begin{bmatrix} 4 & -3 \\ 4 & 3 \\ \end{bmatrix} \begin{bmatrix} 4 & 4 \\ -3 & 3 \\ \end{bmatrix} = \begin{bmatrix} 25 & 7 \\ 7 & 25 \\ \end{bmatrix}
  • ATA=32[11]A^TA=32\begin{bmatrix} 1 \\ 1 \end{bmatrix}
  • ATA=18[11]A^TA=18\begin{bmatrix} -1 \\ 1 \end{bmatrix}

위에서 구한 걸 A=uΣvTA=u\Sigma v^T 에 적용해보자.

A=uΣvTA=u\Sigma v^T
[4433]=u[320018][1/21/21/21/2]\begin{bmatrix} 4 & 4 \\ -3 & 3 \\ \end{bmatrix} = u \begin{bmatrix} \sqrt{32} & 0 \\ 0 & \sqrt{18} \\ \end{bmatrix} \begin{bmatrix} 1/\sqrt2 & 1/\sqrt2 \\ -1/\sqrt2 & 1/\sqrt2 \end{bmatrix}

이제 AATAA^T를 통해 uu 를 구해보자.

AAT=uΣvTvΣTuT=uΣΣTuTAA^T=u\Sigma v^T v\Sigma^T u^T = u \Sigma \Sigma^T u^T
AAT=[4433][4343]=[320018]=ΣΣTAA^T=\begin{bmatrix} 4 & 4 \\ -3 & 3 \\ \end{bmatrix} \begin{bmatrix} 4 & -3 \\ 4 & 3 \\ \end{bmatrix} = \begin{bmatrix} 32 & 0 \\ 0 & 18 \\ \end{bmatrix} = \Sigma \Sigma^T
u=[1001]\therefore u= \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ \end{bmatrix}

따라서 최종적으로 A=uΣvTA=u\Sigma v^T를 증명할 수가 있다.

A=uΣvTA=u\Sigma v^T
[4433]=[1001][320018][1/21/21/21/2]\begin{bmatrix} 4 & 4 \\ -3 & 3 \\ \end{bmatrix}=\begin{bmatrix} 1 & 0 \\ 0 & 1 \\ \end{bmatrix} \begin{bmatrix} \sqrt{32} & 0 \\ 0 & \sqrt{18} \\ \end{bmatrix} \begin{bmatrix} 1/\sqrt2 & 1/\sqrt2 \\ -1/\sqrt2 & 1/\sqrt2 \end{bmatrix}

새로운 예시를 들어보자.

A=[4386]A=\begin{bmatrix} 4 & 3 \\ 8 & 6 \\ \end{bmatrix}

보다시피 AA 는 singular matrix 이다.
그리고 다음과 같은 해석이 가능하다.

  • row space in [43]\begin{bmatrix}4 \\ 3\end{bmatrix}
    • v1=[4/53/5],v2=[3/54/5]v_1=\begin{bmatrix}4/5 \\ 3/5\end{bmatrix}, v_2=\begin{bmatrix}-3/5 \\ 4/5\end{bmatrix}
  • column space in [12]\begin{bmatrix}1 \\ 2\end{bmatrix}
    • u1=[1/52/5],u2=[2/51/5]u_1=\begin{bmatrix}1/\sqrt5 \\ 2/\sqrt5\end{bmatrix}, u_2=\begin{bmatrix}-2/\sqrt5 \\ 1/\sqrt5\end{bmatrix}

이어서 과정을 진행해보자.

ATA=[4836][4386]=[80606045]A^TA= \begin{bmatrix} 4 & 8 \\ 3 & 6 \\ \end{bmatrix} \begin{bmatrix} 4 & 3 \\ 8 & 6 \\ \end{bmatrix} = \begin{bmatrix} 80 & 60 \\ 60 & 45 \\ \end{bmatrix}

ATAA^TA는 singular matrix 이므로 λ=0,125\lambda=0,125 가 나올 것이다.
따라서 σ1=125\sigma_1=\sqrt{125} 임을 알 수 있다.
이제 이어서 진행해보자.

A=uΣvTA=u\Sigma v^T
[4836]=[1/52/52/51/5][125000][4/53/53/54/5]\begin{bmatrix} 4 & 8 \\ 3 & 6 \\ \end{bmatrix} = \begin{bmatrix} 1/\sqrt5 & -2/\sqrt5 \\ 2/\sqrt5 & 1/\sqrt5 \\ \end{bmatrix} \begin{bmatrix} \sqrt{125} & 0 \\ 0 & 0 \\ \end{bmatrix} \begin{bmatrix} 4/5 & 3/5 \\ -3/5 & 4/5 \\ \end{bmatrix}

이처럼 singular matrix 에 대해서도 A=uΣvTA=u\Sigma v^T 를 적용할 수 있다.


즉, SVD 를 최종적으로 정리하면 다음과 같다.

v1,...,vr:orthonormal basis for rowspacev_1,...,v_r : \text{orthonormal basis for rowspace}
u1,...,ur:orthonormal basis for columnspaceu_1,...,u_r : \text{orthonormal basis for columnspace}
vr+1,...,vn:orthonormal basis for nullspacev_{r+1},...,v_n : \text{orthonormal basis for nullspace}
ur+1,...,un:orthonormal basis for N(AT)u_{r+1},...,u_n : \text{orthonormal basis for $N(A^T)$}
Avi=σiuiAv_i=\sigma_i u_i
profile
천천히, 그리고 꾸준히.

0개의 댓글