본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

이론

선형차원축소, 중요한 정보만 추출한다: 특이값 분해 SVD, Singular Value Decomposition

SVD, Singular Value Decomposition

특이값 분해

하나의 행렬을 여러개의 작은 행렬로 분해해 데이터의 중요한 정보만 추출하는 선형대수 기법

 

원래 데이터가 1000개의 변수를 가지고있다하더라도 실제 중요한 정보는 100개 성분 안에 들어있는 경우가 대부분이다 .

데이터의 패턴정보, 중요도를 나타내는 특이값, 변수간 관계정보를 활용해 데이터크기도 감소하고, 노이즈제거를 통해 학습속도를 향상시키고 과적합까지 감소시킬수 있다. 

svd = TruncatedSVD(n_components=100)

 

 

머신러닝에서 활용하는 이유는 필요없는데이터가 있는 전체 데이터를 그대로 학습하면 계산량이 매우 커져 모델이 느려지기때문이다.

중요하지않는 데이터는 센서잡음, 압축오류, 불필요한 픽셀을 야기하기도한다.

변수가 너무 많으면 모델 학습데이터에 과도하게 맞춰져 과적합이 생기는것도 이유이다. 

 

 

 

이는 사람 눈으로는 거의 차이가 없으면서의 용럄 감소가 가능하다.

대표적으로 Netflix에서 사용자의 영화행렬을 확인해 SVD를 수행해 사용자 취향, 영화특징을 자동추출해 추천할 수 있다.

매일보는 애니메이션과 가끔 본 호러가있다면 호러를 굳이 왜 추천하겠는가. 또 학습에 왜 굳이 이용하는가.

아래는 100개의 중요한 성분만 유지하는 코드이다 .

 

 

SVD는 기존 차원축소 알고리즘 PCA와 밀접한 관계가 있다. 

실제로 PCA는 내부적으로 SVD를 이용하여 계산된다. 

https://standout.tistory.com/1781

 

선형차원축소, PCA Principal Component Analysis: 가장 기본적인 차원축소

입력변수 개수를 차원, 차원의 저주를 보완하기위해 혹은 시각화하기위한 과정을 차원축소라고 한다 .https://standout.tistory.com/1779 입력변수의 개수 차원 Dimension, 차원의 저주 Curse of Dimensionality 와

standout.tistory.com