Branch Log · Open in interactive viewer →

13 Matrix Factorization


13.1 Matrix vs. Linear Transformation

다음은 (x,y)(ax+by,cx+dy) 의 새로운 공간으로 보내는 mapping 예시다.

mapping

이러한 변환 행렬은 정사각형을 사다리꼴로 변형시키는 것을 볼 수 있다. 이외에도 Linear tranform은 회전 변환이나 stretching도 가능하다.

(abcd)(xy)=(XY) (cosθsinθsinθcosθ)(xy)=(XY) (sx00sy)(xy)=(XY)

mapping


13.2 Eigenvalues, Eigenvectors

다음은 여러 벡터에 linear transform를 적용한 전과 후를 비교한 그림이다.

(2112)(xy)=(XY)
변환 전 변환 후
linear transform example linear transform example

초록색빨간색 벡터는 변환 후 방향이 변하지 않았다. 이러한 벡터를 eigenvector라고 한다. 이때 바뀐 길이를 eigenvalue라고 한다.

A𝐱=λ𝐱

eigenvector는 모두 수직으로 만난다.

n

개의 eigenvalues가 있고, 대응하는 n

개의 (normalized) eigenvectors가 있다고 하자.

λ1v1=(v11v21vn1),λ2v2=(v12v22vn2),,λnvn=(v1nv2nvnn)

임의의 행렬(linear transform)에 대해 eigenvector, eigenvalue를 구할 것이다.

(2112)(xy)=λ(xy)

변환 후 벡터의 방향은 동일하고 길이만 바뀐다면, 수식은 다음과 같다.

(2112)(xy)λ·𝐈(xy)=0 (2λ112λ)(xy)=0

이러한 일차 연립방정식이 무한히 많은 해를 가지려면, determinant는 0이어야 한다.

det(2λ112λ)=(2λ)21=0 λ=3,(x,y)=(t,t) λ=1,(x,y)=(t,t)

eigenvector는 방향을 의미하기 때문에 (t,t) 과 같이 표기한다. (편의상 길이=1인 unit vector로 표현)

다음은 eigenvalue, eigenvector의 주요 성질이다.

  1. Eigenvector는 서로 직교한다.

  2. An×n 행렬이면, n 개의 eigenvalue와 eigenvector를 가진다. (이때 eigenvalue가 0일 수 있다.)

  3. A 가 대칭행렬(symmetric matrix)이면, 모든 eigenvalue는 non-negative이다.


13.3 Singular Value Decomposition (SVD)

다음은 n 개의 eigenvectors를 column으로 모은 S 행렬이다.

S=(v1v2vn)=[v11v12v1nv21v22v2nvn1vn2vnn]

따라서 S 벡터는 orthogonal matrix(직교 행렬)이다. ( STS=I )

이어서, 행렬 AS 벡터를 곱해보자.

AS=A(v1v2vn)=(Av1Av2Avn) =(λ1v1λ2v2λnvn) =(v1v2vn)(λ1000λ2000λn)=SΛ

이처럼 대각선으로만 eigenvalue λ 가 존재하는 Λ 행렬로 decomposition된다. ( AS=SΛ )

Notes: 이처럼 square matrix(정방 행렬)은 세 개의 행렬로 decomposition할 수 있다.

A=SΛS1

A=SΛST


13.3.1 SVD for Non-square Matrix

수학적 증명은 다소 복잡하기 때문에 직관적인 설명으로 살펴보자.

ATA=VΛ1VT,AAT=UΛ2UT

이에 대해 CTC 를 계산하면 다음과 같다.

CTC=(UΣVT)TUΣVT=VΣTUTUΣVT=VΣ2VT=VΛ1VT=ATA

정리하자면, 정방 행렬이 아닌 AUΣVT 형태로 분해할 수 있다.

Σ 행렬의 대각선 element를 singular value(특이값)라고 지칭한다.