논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Singular Value Decomposition

Kirk Baker “Singular Value Decomposition Tutorial”, 2005

5년 전 글의 백업.

7. Singular Value Decomposition

SVD는 3가지 측면에서 살펴볼 수 있습니다.

  1. 서로 상관관계가 있는(correlated) 변수들을 분리하여 원래의 데이터가 갖는 특징을 더 잘 나타나도록 변환하기
  2. 데이터 포인트에서 가장 변화가 많이 일어나는 차원을 찾고 그 순서대로 나열하기
  3. 원래의 데이터보다 작은 차원을 사용하면서도 원래의 데이터를 가장 잘 표현하는 방법을 찾기

2와 3을 이용하면 원래의 데이터를 축약된 표현(reduced representation)을 하는 것이 가능합니다.

7.1 Example of singular value decomposition

행렬 A는 orthogonal matrix U와 diagonal matrix S, 또다른 orthogonal matrix V의 곱으로 분해할 수 있습니다.

$$A_{mn} = U_{mm} S_{mn} V_{nn}^T$$

U와 V의 컬럼은 각각 $ AA^T, A^TA $의 orthonormal eigenvector들입니다. S는 U나 V의 eigenvalue들의 제곱근을 큰 순서대로 나열한 것입니다.

계산하는 방법을 알아봅시다.

먼저 $AA^T$의 eigenvalue와 eigencector를 구하고, eigenvector를 컬럼백터로 하는 행렬에 Gram-Schmidt orthonormalization 방법을 적용합니다. 이것이 U가 됩니다.

마찬가지 방법으로 $ A^T A $에 에 대해서 동일한 방법을 사용하면 V를 구할 수 있습니다.

S는 U와 V의 0이 아닌 eigenvalue 중 큰 순서대로 diagonal의 위치가 꽉 찰 때까지 순서대로 넣어줍니다. 실제로는 U와 V의 eigenvalue는 같으므로 하나만 골라 계산하면 됩니다.

S의 diagonal 성분은 A의 singluar value이며, 이에 해당하는 U, V의 컬럼들은 각각 left singular vector, right singluar vector라고 합니다.


Add a Comment Trackback