Hello Computer Vision

특이값 분해(Singular Vector Decomposition) 공부해보기 본문

선형대수

특이값 분해(Singular Vector Decomposition) 공부해보기

지웅쓰 2023. 4. 16. 15:45

특이값 분해란?

임의의 차원 m x n 차원의 행렬 A에 대하여 다음과 같이 행렬을 분해할 수 있다는 것이 특이값 분해이다.

 

A = U ∑ V ^T 

 

A: m x n matrix(정사각 매트릭스가 아니어도 된다)

U: orthogonal matrix, right singular vector

∑: diagonal matrix

V: orthogonal matrix, left singular vector

 

orthogonal matrix: U*U^T = I 를 만족하는 행렬이다 --> U^-1 = U^T, 각 열벡터들이 서로 직교한다(내적의 결과값이 0이다).

diagonal matrix: 대각 성분들을 제외하고 나머지 모든 원소값이 0인 matrix이다.

 

기하학적 의미

직교하는 벡터 집합에 대하여, 벡터들에 대해 선형변환을 가했을 때 크기는 변하지만 여전히 직교할 수 있는 집합이 존재하는가? 선형 변환후의 결과는 무엇인가? 예를 들어 직교하는 두 벡터에 대해 동일한 선형변환 A를 취한다 했을 때 직교하는 것을 보장할 수 없다.

 

분해 구성

선형 변환하는 A에 대한 분해는 A = ∑ V ^T  분해될 수 있다고 했는데 하나하나 구성요소를 살펴보자면

 

V : right singular vector

U : left singular vector

∑: singular value(scaling factor) 즉 실질적으로 크기를 늘리고 변환하는 선형변환을 해주는 행렬이라고 할 수 있다.

 

목적

선형변환을 해주는 임의 행렬 A에 대해 여러 개의 행렬로 분해해서 생각할 수 있는데, 이 행렬값이 크기들은 singular vector에 의해 결정된다. 즉 proportional 하게 여러개로 추가로 더 쪼갤 수 있다. 

 

 

가볍게 살펴보았고 추가로 더 활용되는 부분, 수식적으로 다룰 부분있으면 계속 추가할 예정


References

https://angeloyeo.github.io/2019/08/01/SVD.html