본문 바로가기
ML (Hands-On Machine Learning)/Dimensionality Reduction

Chapter 8. Dimensionality Reduction

by xangmin 2020. 4. 27.
반응형

 본격적인 이야기에 앞서 왜 차원 축소(Dimensionality Reduction)를 하는 것일까? 고차원이 되었을 때 문제가 발생한다. 차원이 증가하면 그것을 표현하기 위한 데이터 양이 기하급수적으로 증가한다. 심지어 일정 차원을 넘으면 분류기의 성능은 점점 0으로 수렴하게 된다. 그렇게 때문에 너무 고차원의 데이터들은 의미를 제대로 표현하기가 어렵다. 이러한 이유로 데이터들을 우리는 차원 축소를 하여 다루게 된다.

 

* Dimensionality Reduction?

 데이터의 의미를 제대로 표현하는 특징을 추려내는 것이다. 대부분의 상황에서 차원의 크기는 특징의 개수를 나타내고 특징(feature)이 너무 많기 때문에 학습이 어렵고 더 좋은 특징만 가지고 사용하겠다는 것이다. 그렇다면 이러한 특징은 어떻게 뽑아내는 것일까? 여러가지 방식이 있지만 기본적인 PCA(Principal Component Analysis)가 있다.

 

The Curse of Dimensionality

 

< Figure 8-1. Point, segment, square, cube, and tesseract (0D to 4D hypercubes) >

 

Main Approaches for Dimensionality Reduction

  Dimensionality Reduction의 두 가지 주요 approache가 있다. Projection과 Manifold Learning이다.

 

Projection

< Figure 8-2. A 3D dataset lying close to a 2D subspace >

 대부분의 실제 환경에서 training instance는 모든 차원에 걸쳐 균일하게 분산되어있지 않는다. 그래서 모든 training instance는 고차원 공간의 훨씬 낮은 차원의 부분 공간내에 있다. 3D data set를 2D data set으로 줄이는 모습이다. 

 

< Figure 8-3. The new 2D dataset after projection >

 그러나 Projection이 Dimensionality Reduction에 가장 적합한 방법은 아니다. 대부분의 경우 < Figure 8-4 >에 표시된 유명한 스위스 롤 장난감 데이터 세트에서와 같이 하위 공간이 비틀리고 회전할 수 있다.

 

 

< Figure 8-4. Swiss roll dataset >

 평면에 projection하면 < Figure 8-5 >의 왼쪽같이 스위스 롤의 여러 레이어가 함께 스쿼시 된다. 실제로 원하는 것은 < Figure 8-5 >의 오른쪽에서 스위스 롤을 풀어 2D data를 얻는 것이다. 

 

< Figure 8-5. Squashing by projecting onto a plane (left) versus unrolling the Swiss roll (right) >

 

Manifold Learning

 Manifold Learning은 비선형(non-linear) 구조를 고려한다. 보통 비선형 구조를 가지며, 특ㄱ점 점을 중심으로 인근만 살피면 선형 구조에 가깝다. 

 

< Figure 8-6. The decision boundary may not always be simpler with lower dimensions >

 

PCA

 PCA (Principal Component Analysis)는 가장 널리 사용되는 Dimensionality Reduction Algorithm이다. 먼저 데이터에 가장 가까운 평면을 식별한 다음 < figure 8-2 >와 같이 데이터를 projection한다.

 

Preserving the Variance

< Figure 8-7. Selecting the subspace to project on >

 training set를 평면에 projection하기 전에 right한 평면을 선택해야 한다. < Figure 8-7 >에서 오른쪽은 각 축에 데이터 셋을 투형한 결과이다. 실선으로 projection은 최대 분산을 유지하는 반면, 점선으로의 projection은 작은 분산을 유지하고 있다.

 

 최대 분산량을 유지하는 축을 선택하는 것이 합리적이다. 다른 예측보다 정보가 덜 손실될 가능성이 높다.  원래 데이터 집합과 해당 축에 대한 투양 간의 평균 제곱 거리를 최소화하는 축이 결국 최대 분산량을 유지하는 축이된다.

 

Principal Components

 PCA는 다음과 같은 단계로 이루어진다.

  • 학습 데이터셋에서 분산이 최대인 축(axis)을 찾는다.

  • 이렇게 찾은 첫번째 축과 직교(orthogonal)하면서 분산이 최대인 두 번째 축을 찾는다.

  • 첫 번째 축과 두 번째 축에 직교하고 분산을 최대한 보존하는 세 번째 축을 찾는다.

  • 1~3과 같은 방법으로 데이터셋의 차원(특성 수)만큼의 축을 찾는다.

 이렇게 ​i-번째 축을 정의하는 단위 벡터(unit vector)를 ​i-번째 주성분(PC, Principal Component)이라고 한다.

예를들어, 위의 그림에서는 2차원 데이터셋이므로 PCA는 분산을 최대로 보존하는 단위벡터 ​c1이 구성하는 축과 이 축에 직교하는 c2가 구성하는 축을 찾게 된다.

 

 

PCA 구하는 과정

1. 공분산 (Covariance)

더보기

공분산이란?

각 확률변수들이 어떻게 퍼져있는지를 나타내는 것이 공분산(Covariance)이다. 두 확률변수 X와 Y가 어떤 모양으로 퍼져있는지

즉, X가 커지면 Y도 커지거나 혹은 작아지거나 아니면 별 상관 없거나 등을 나타내어 주는 것이다.

< 두 확률변수의 상관관계 >

 먼저, 주성분(PC)를 구하기 위해서는 공분산에 대해 알아야 한다. 공분산(covariance)은 2개의 특성(또는 변수)간의 상관정도를 나타낸 값이다. 예를들어, 아래의 그림과 같이 두 개의 특성에 대해 공분산을 구하면 다음과 같다.

-X, Y에 대한 각 기대값

더보기

기대값이란? 

확률론에서, 확률 변수의 기댓값(期待값, 영어: expected value)은 각 사건이 벌어졌을 때의 이득과 그 사건이 벌어질 확률을 곱한 것을 전체 사건에 대해 합한 값이다. 이것은 어떤 확률적 사건에 대한 평균의 의미로 생각할 수 있다.

Example)

주사위 하나를 던졌을 때 각 값이 나올 확률이 1/6이라고 한다면 주사위의 기대값은 각 눈의 값에 각 확률을 곱한 값의 합이다.

 

-공분산 cov(X, Y)는 다음과 같이 나타낼 수 있다.

 

-위의 공분산 식을 벡터로 나타내면 다음과 같다.

 

 

 

 

 

 

 

 

 

 

 

 


출처: https://excelsior-cjh.tistory.com/167 [EXCELSIOR]

반응형

댓글