본문 바로가기

Study/Hands-On Machine Learning

[Book] 8. 차원 축소

Book Title : Hands-On Machine Learning with Scikit-Learn, Keras & TF

지은이 : 오렐리아 제롱

옮긴이 : 박해선 출판사 : 

한빛미디어

코드 출처

https://github.com/rickiepark/handson-ml2

 

GitHub - rickiepark/handson-ml2: 핸즈온 머신러닝 2/E의 주피터 노트북

핸즈온 머신러닝 2/E의 주피터 노트북. Contribute to rickiepark/handson-ml2 development by creating an account on GitHub.

github.com

8. 차원 축소

  • 차원이 높아지면(설명변수가 많아짐) 반응 변수와 관련 있는 신호 변수가 아닌 관련 없는 잡음 변수가 추가될 수 있음
  • 많은 특성(높은 차원)은 훈련을 느리게 할뿐만 아니라 좋은 설루션을 찾기 어렵게 하며, 이것을 차원의 저주라고 함

차원을 감소시키는 두 가지 접근법

  1. 투영
  2. 매니폴드
투영
  • 대부분 실전 문제는 훈련 샘플이 모든 차원에 걸쳐 균일하게 퍼져있지 않고 많은 특성은 거의 변화가 없거나 몇몇 특성은 서로 강하게 연결되어 있음. 즉, 모든 훈련 샘플이 고차원 공간 안의 저 차원 부분 공간에 놓여 있음
  • 따라서 투영 방식이란, 고차원 공간에 있는 데이터를 저차원 부분 공간에 수직으로(즉 , 샘플과 가장 가까운 거리)에 투영해서 데이터셋을 얻음.
  • (이해가 안되는 경우 그냥 공간에 있는 데이터를 평면에 수직으로 떨궈서 평면 데이터?로 만드는 느낌이라고 생각할 것)
매니폴드 학습
  • 매니 폴드 : 고차원 공간에서 휘어지거나 뒤틀린 ND 모양
  • 매니 폴드 학습 : 많은 차원 축소 알고리즘이 훈련 샘플이 놓여있는 매니폴드를 모델링 하는 방식
  • 매니 폴드 학습은 매니폴드 가정/가설에 근거함
매니 폴드 가정/가설
대부분 실제 고차원 데이터셋이 더 낮은 저차원 매니폴드에 가깝게 놓여있다

PCA

  • principal component analysis
  • 데이터에 가장 가까운 초평면을 정의하고 이 평면에 투영하는 방식
  • pca 방법은 분산이 최대인 축을 찾고 첫 번째 축에 직교하고 남은 분산을 최대한 보존하는 두 번째 축을 찾고.. 4번째 5번째... n 번째 축응ㄹ 찾는다. 이 n번째 축을 주성분이라고 부름

분산이 최대인 축을 왜찾냐?

  • 투영했을 때 정보의 손실을 최소화하기 위함
  • (분산이 높을수록 축은 넓게 퍼지는데, 이것을 땅으로 비유하면 넓은 땅에(분산이 최대인 축)에 여기저기 퍼져있는 사람들을 투영했을 때 땅이 넓을수록 많은 사람이 들어올 수 있음(가능한 많은 정보를 담을 수 있음)

점진적 PCA(IPCA, Incremental PCA)

  • PCA 구현의 문제는 SVD 알고리즘을 실행하기 위해 전체 훈련 세트를 메모리에 올려야 하는 것인데 이를 해결하기 위해 점진적 PCA 알고리즘이 개발됨
  • 훈련 세트를 미니 배치로 나눈 뒤 IPCA알고리즘에 한 번에 하나씩 주입
  • 훈련 세트가 클 때 유용하고 온라인(즉, 새로운 데이터가 준비되는 대로, 실시간으로) PCA를 적용할 수 있음

LLE(locally linear embedding)

  • 지역 선형 임베딩은 강력한 비선형 차원 축소 기술임
  • 먼저 각 훈련 샘플이 가장 가까운 이웃에 얼마나 선형적으로 연관되어 있는지 측정하고 그런 다음 국부적인 관계가 가장 잘 보존되는 훈련 세트의 저 차원 표현을 찾음

Random projection

랜덤 한 선형 투영을 사용해 데이터를 저 차원 공간으로 투영함

MDS(Multidimensional scaling)

  • 다차원 스케일링
  • 샘플 간의 거리를 보존하면서 차원 축소

Isomap

  • 각 샘플을 가장 가까운 이웃과 연결하는 식으로 그래프를 만들고, 다음 샘플 간의 지오 데식 거리(geodesic distance)를 유지하면서 차원을 축소

t-SNE(t-distributed stochastic neighbor embedding)

  • 비슷한 샘플은 가까이, 비슷하지 않은 샘플은 멀리 떨어지도록 하면서 차원을 축소함
  • 주로 시각화에 많이 사용되며 특히 고차원 공간에 있는 샘플을 군집 시각화할 때 사용

Q. 데이터셋 차원을 축소하는 주요 목적이 뭔가? 그에 따른 단점은?

훈련 알고리즘의 속도를 높이고 데이터를 시각화하고 가장 중요한 특성에 대한 통찰을 얻기 위해 사용함.
또 메모리 공간을 절약하기 위함이지만 일부 정보를 잃어버려 훈련 알고리즘의 성능을 감소시키며 계산 비용이 높음. 그리고 변환된 데이터에 대한 이해가 어려우며 머신러닝 파이프라인 복잡도를 증가시킴