본문 바로가기

STUDY/인공지능

[ML 책] 특이값 분해

728x90

머신러닝에 필요한 기초적인 수학 공부를 하기 위해  "선형대수와 통계학으로 배우는 머신러닝 with 파이썬" 이라는 책을 읽고 블로그에 요약해보고자 합니다. 오직 제 개인적인 공부 공간으로 사용할 목적으로 포스팅을 할 예정이니 자세한 내용이 궁금하신 분들은 아래 표지 책을 구매하여 공부하시길 바랍니다.

책 표지를 누르면 저자의 깃헙으로 이동됩니다:)

이전 포스팅  >>>>> [STUDY/인공지능] - [ML 책] 고유값, 고유벡터, 고유값분해

 

[ML 책] 고유값, 고유벡터, 고유값분해

머신러닝에 필요한 기초적인 수학 공부를 하기 위해 "선형대수와 통계학으로 배우는 머신러닝 with 파이썬" 이라는 책을 읽고 블로그에 요약해보고자 합니다. 오직 제 개인적인 공부 공간으로 사

chaeso-coding.tistory.com


[특이값 분해 Singular Value Decomposition]

  • 정사각 행렬 대상(고유값 분해)이 아닌 $m \times n$행렬로 일반화 시킨 것
  • 행렬의 차원 축소를 위한 도구로 쓰임
  • PCA같은 차원 축소 분야에서 많이 쓰임
차원 축소?
1. 데이터 전체 공간의 차원보다 낮은 차원으로 적합시킬 수 있는 기존 행렬의 차원보다 낮은 차원의 공간을 찾는 것
2. 행렬 $A$가 $p$차원이라 했을 때, $A$를 $d$차원 $(p>d)$로 축소한 행렬을 $B$라고 하면, 특이값 분해는 차원 축소 행렬 $B$를 찾는데 사용하며 $d$차원은 직접 정할 수 있음

 

  • 행렬 $A$의 크기가 $n \times p$라면 $p$차원에 $n$개의 점 존재한다고 생각할 수 있음
  • 행렬 $A$에 대한 차원 축소란 $n$개의 점을 표현할 수 있는 기존 $p$보다 작은 차원인 $d$차원 부분 공간 subspace를 찾는 문제임
  • 이를 어떻게 구하냐? data와 subspace로부터 수직거리를 최소화하여 구함
  • 직선거리의 최소화? 제곱합 $A^{T}A$, $AA^{T}$ 을 최소화하는 것

 

  • 특이값 분해는 원본 행렬 $A$보다 $A^{T}A$, $AA^{T}$를 다루는 것
특이값 이란?
$n \times p$ 행렬 $A$에 대해 $A^{T}A$의 고유값을  $\lambda_{1}, ... ,\lambda_{p}$라고 할 때, $\sigma_{1}= \sqrt{\lambda_{1}} , \sigma_{2}= \sqrt{\lambda_{2}} , ... , \sigma_{p}= \sqrt{\lambda_{p}} $를 행렬 $A$의 특이값 Singular value라고 함

따라서, 행렬 $A$의 특이값은 행렬 $A$를 제곱한 행렬의 고유값에 루트 씌운 값임

 

  • 특이값 분해  공식 : $A = U \Sigma V^{T}$

교재 p49 특이값 분해

  • 행렬 $U$의 열벡터 : $AA^{T}$의 고유벡터로 구성됨 left singular vector
  • 행렬 $V$의 열벡터 : $A^{T}A$의 고유벡터로 구성됨 right singular vector
  • $\Sigma$의 대각원소 : 행렬 $A$의 특이값

 

교재 p50  특이값 분해 시각화

  • 위 시각화를 보면 선형변환 $A$는 $U,\Sigma,V^{T}$ 총 3 단계의 변환을 거침
  • $U, V^{T}$ : 고유벡터로 기존의 행렬을 회전하는 것
  • $\Sigma$ 대각원소 : 고유값에 해당되므로 해당 영역을 늘리거나 줄이는 데 사용
728x90