0. 흐름
SVD 하기 전에 대각화를 알아야 되고 대각화를 알기 전에 고유값(eigen value)과 고유 벡터(eigen vector)에 대해 알아야 한다.. 맨날 까먹어서 정리한다.
1. 고유값과 고유 벡터
그 의미를 적진 않겠다. 바로 시작해보자.
A는 n x n square matrix
이다.
를 만족하는 0이 아닌 열 벡터 x를 고유벡터라고 하고 λ를 고유값이라 한다.
A가 꼭 square matrix 여야 한다.
square matrix라고 고유값-고유벡터가 항상 존재하는 것은 아니다.
ex) [0−110], λ=i,−i
어떤 행렬은 1개만 존재할 수도 있고 최대 n개까지 존재한다. (복소수까지 센다면 항상 n개)
ex) [0100],λ=0,v=[01] (삼각행렬의 특성이다.)
그렇다면
이 λ를 어떻게 구할 수 있을까? 왼쪽으로 이항한다.
(A−λI)x=0
0이 아닌 벡터 x가 있기 위한 필요충분 조건은
det(A−λI)=0
성질 1. 모든 고유값의 합은 trace와 같다.
det(A−λI)를 Big formula방식으로 계산했다고 생각해보자.
∣∣∣∣∣∣∣∣a11−λ⋮an1⋯⋱⋯a1n⋮ann−λ∣∣∣∣∣∣∣∣=(a11−λ)(a22−λ)⋯(ann−λ)−R(λ)=0
R(λ)에서 가장 높은 차수는 n−2임을 알 수 있다. λn과 λn−1은 모두 앞 항에서 만들어진다. λn의 계수는 (−1)n, λn−1의 계수는 (−1)n−1×tr(A)이므로
근과 계수와의 관계에 의해서
tr(A)=λ1+λ2+⋯+λn
성질 2. 모든 고유값의 곱은 det(A)와 같다.
(a11−λ)(a22−λ)⋯(ann−λ)−R(λ)=(λ1−λ)(λ2−λ)⋯(λn−λ)
에 λ=0을 대입하면 얻을 수 있다.
성질 3. 역행렬의 고유값은 원래 행렬의 고유값의 역수이다. (고유벡터는 동일)
성질 4. 고유값과 고유벡터의 관계 : 서로 다른 고유값에 대한 고유 벡터는 선형 독립이다.
성질 5. 대칭 행렬과 고유값 : 대칭행렬의 고유값은 실수이다. (허미션 행렬의 고유값은 실수이다.)
성질 6. 서로 다른 고유값을 가진 대칭행렬의 고유벡터는 서로 직교한다.
성질 7.더 나아가서, 대칭행렬의 고유벡터는 (고유값이 서로 다르지 않아도) 서로 수직이다.
2. 대각화
S−1AS=Λ
A의 n개의 선형독립인 고유벡터가 있다고 가정하자. 그리고 그 고유벡터를 열로 하는 matrix S 가 있다고 생각해보자.
AS=A⎣⎢⎡∣x1∣∣x2∣⋯∣xn∣⎦⎥⎤=⎣⎢⎡∣λ1x1∣∣λ2x2∣⋯∣λnxn∣⎦⎥⎤=⎣⎢⎡∣x1∣∣x2∣⋯∣xn∣⎦⎥⎤⎣⎢⎡λ1⋱λn⎦⎥⎤=SΛ
S−1를 왼쪽에 곱하면 대각화, 오른쪽에 곱하면 eigen-value decomposition이라 한다.
성질 1. diagonalizable과 필요충분조건 : 고유벡터 n개가 선형 독립이다.
성질 2. 스펙트럼 정리 : (실수)대칭행렬은 orthogonal matrix로 대각화가 가능하다.
A=QΛQT
3. SVD
A=UΣVTinput:Any m×n Matrix AU:m×m Orthogonal MatrixΣ:m×n Diagonal MatrixV:n×n Orthogonal Matrix
기본 성질
- The columns of U are eigenvectors of AAT
- The columns of V are eigenvectors of ATA
- The r singular values on the diagonal of Σ are the square roots of the nonzero eigenvalues of both AAT and ATA
다음과 같은 의문이 등장할 수 밖에 없다.
- AAT와 AAT의 모든 eigen value는 0 이상인가?
- AAT와 AAT의 nonzero eigenvalues가 같은가?
질문의 답은 모두 Yes 이다. 쉽게 증명 가능하다.
1. pf)AATv=λvvTAATv=λvTv∣∣ATv∣∣=λ∣∣vTv∣∣∴λ≥0
ATA도 정확히 같은 방법으로 증명 가능
2. pf)AATv=λv라고 하자.
ATAATv=λATv, ATv가 0이 아니면 λ는 ATA의 고유값이다.
그런데 ATv=0이라면 AATv=0이고 λ=0이어야 하므로 ATv=0
즉, AAT의 nonzero eigen value는 ATA의 nonzero eigen value이다.
반대방향도 같은 방법으로 증명 가능.
어떤 matrix든 SVD가 가능하다는 것은 ATA, AAT가 대칭행렬이므로 항상 orthogonal matrix로 대각화가 가능(대각화 성질 2.)하다는 것으로 알 수 있다.
** ATA,AAT 모두 PSD 행렬