[선형대수학] SVD를 위한 기초

권규보·2023년 11월 22일
0

0. 흐름

SVD 하기 전에 대각화를 알아야 되고 대각화를 알기 전에 고유값(eigen value)과 고유 벡터(eigen vector)에 대해 알아야 한다.. 맨날 까먹어서 정리한다.

1. 고유값과 고유 벡터

그 의미를 적진 않겠다. 바로 시작해보자.
A는 n x n square matrix이다.

Ax=λxAx = \lambda x

를 만족하는 0이 아닌 열 벡터 x를 고유벡터라고 하고 λ\lambda를 고유값이라 한다.

A가 꼭 square matrix 여야 한다.
square matrix라고 고유값-고유벡터가 항상 존재하는 것은 아니다.
ex) [0110]\begin{bmatrix}0&1\\-1&0\\ \end{bmatrix}, λ=i,i\lambda = i, -i
어떤 행렬은 1개만 존재할 수도 있고 최대 n개까지 존재한다. (복소수까지 센다면 항상 n개)
ex) [0010],λ=0,v=[01]\begin{bmatrix}0&0\\1&0\\ \end{bmatrix}, \lambda = 0, v= \begin{bmatrix}0\\1\\ \end{bmatrix} (삼각행렬의 특성이다.)

그렇다면

Ax=λxAx = \lambda x

λ\lambda를 어떻게 구할 수 있을까? 왼쪽으로 이항한다.

(AλI)x=0(A-\lambda I)x =0

0이 아닌 벡터 x가 있기 위한 필요충분 조건은

det(AλI)=0det(A-\lambda I) = 0

성질 1. 모든 고유값의 합은 trace와 같다.

det(AλI)det(A-\lambda I)를 Big formula방식으로 계산했다고 생각해보자.
a11λa1nan1annλ=(a11λ)(a22λ)(annλ)R(λ)=0\begin{vmatrix} \begin{array}{ccc} a_{11}-{\lambda}& \cdots &a_{1n} \\ \vdots& \ddots &\vdots \\ a_{n1} &\cdots & a_{nn}-{\lambda} \end{array} \end{vmatrix} \\= (a_{11}-\lambda)(a_{22}-\lambda)\cdots(a_{nn}-\lambda)-R(\lambda)=0
R(λ)R(\lambda)에서 가장 높은 차수는 n2n-2임을 알 수 있다. λn\lambda^{n}λn1\lambda^{n-1}은 모두 앞 항에서 만들어진다. λn\lambda^{n}의 계수는 (1)n(-1)^{n}, λn1\lambda^{n-1}의 계수는 (1)n1×tr(A)(-1)^{n-1} \times tr(A)이므로
근과 계수와의 관계에 의해서

tr(A)=λ1+λ2++λntr(A) = \lambda_{1} + \lambda_{2} + \cdots+ \lambda_{n}

성질 2. 모든 고유값의 곱은 det(A)와 같다.

(a11λ)(a22λ)(annλ)R(λ)=(λ1λ)(λ2λ)(λnλ)(a_{11}-\lambda)(a_{22}-\lambda)\cdots(a_{nn}-\lambda)-R(\lambda) \\= (\lambda_{1}-\lambda)(\lambda_{2}-\lambda)\cdots(\lambda_{n}-\lambda)
λ=0\lambda=0을 대입하면 얻을 수 있다.

성질 3. 역행렬의 고유값은 원래 행렬의 고유값의 역수이다. (고유벡터는 동일)

성질 4. 고유값과 고유벡터의 관계 : 서로 다른 고유값에 대한 고유 벡터는 선형 독립이다.

성질 5. 대칭 행렬과 고유값 : 대칭행렬의 고유값은 실수이다. (허미션 행렬의 고유값은 실수이다.)

성질 6. 서로 다른 고유값을 가진 대칭행렬의 고유벡터는 서로 직교한다.

성질 7.더 나아가서, 대칭행렬의 고유벡터는 (고유값이 서로 다르지 않아도) 서로 수직이다.

2. 대각화

S1AS=ΛS^{-1} A S = \Lambda

AA의 n개의 선형독립인 고유벡터가 있다고 가정하자. 그리고 그 고유벡터를 열로 하는 matrix SS 가 있다고 생각해보자.
AS=A[x1x2xn]=[λ1x1λ2x2λnxn]=[x1x2xn][λ1λn]=SΛ\begin{aligned} AS &= A\begin{bmatrix} | & | & & |\\ x_1 & x_2 &\dotsm & x_n \\ | & | & & | \end{bmatrix}\\ &= \begin{bmatrix} | & | & & |\\ \lambda_1 x_1 & \lambda_2 x_2 &\dotsm & \lambda_n x_n \\ | & | & & | \end{bmatrix} \\&= \begin{bmatrix} | & | & & |\\ x_1 & x_2 &\dotsm & x_n \\ | & | & & | \end{bmatrix} \begin{bmatrix} \lambda_1 & & \\ & \ddots \\ & & \lambda_n \end{bmatrix} = S \Lambda \end{aligned}
S1S^{-1}를 왼쪽에 곱하면 대각화, 오른쪽에 곱하면 eigen-value decomposition이라 한다.

성질 1. diagonalizable과 필요충분조건 : 고유벡터 n개가 선형 독립이다.

성질 2. 스펙트럼 정리 : (실수)대칭행렬은 orthogonal matrix로 대각화가 가능하다.

A=QΛQTA = Q \Lambda Q^{T}

3. SVD

A=UΣVTinput:Any m×n Matrix AU:m×m Orthogonal MatrixΣ:m×n Diagonal MatrixV:n×n Orthogonal MatrixA = U \Sigma V^{T}\\ \\ input: Any \ m \times n \ Matrix \ A \\ U : m \times m \ Orthogonal \ Matrix\\ \Sigma : m \times n \ Diagonal \ Matrix\\ V : n \times n \ Orthogonal\ Matrix

기본 성질

  • The columns of UU are eigenvectors of AATAA^T
  • The columns of VV are eigenvectors of ATAA^TA
  • The rr singular values on the diagonal of Σ\Sigma are the square roots of the nonzero eigenvalues of both AATAA^T and ATAA^TA

다음과 같은 의문이 등장할 수 밖에 없다.

  1. AATAA^TAATAA^T의 모든 eigen value는 0 이상인가?
  2. AATAA^TAATAA^T의 nonzero eigenvalues가 같은가?

질문의 답은 모두 Yes 이다. 쉽게 증명 가능하다.
1. pf)AATv=λvvTAATv=λvTvATv=λvTvλ01.\ pf)\\ AA^Tv = \lambda v\\ v^TAA^Tv = \lambda v^Tv\\ ||A^Tv|| = \lambda ||v^Tv||\\ \therefore \lambda \geq0

ATAA^TA도 정확히 같은 방법으로 증명 가능

2. pf)AATv=λv2.\ pf)\\ AA^Tv = \lambda v라고 하자.
ATAATv=λATvA^TAA^Tv = \lambda A^T v, ATvA^T v가 0이 아니면 λ\lambdaATAA^TA의 고유값이다.
그런데 ATv=0A^T v=0이라면 AATv=0AA^Tv=0이고 λ=0\lambda = 0이어야 하므로 ATv0A^T v \neq 0
즉, AATAA^T의 nonzero eigen value는 ATAA^TA의 nonzero eigen value이다.
반대방향도 같은 방법으로 증명 가능.

어떤 matrix든 SVD가 가능하다는 것은 ATAA^TA, AATAA^T가 대칭행렬이므로 항상 orthogonal matrix로 대각화가 가능(대각화 성질 2.)하다는 것으로 알 수 있다.

** ATA,AATA^TA, AA^T 모두 PSD 행렬

profile
기록장

0개의 댓글