Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

Zorba blog

차원 축소 | 주성분 분석 PCA, 커널 PCA, 지역 선형 임베딩 LLE 본문

카테고리 없음

차원 축소 | 주성분 분석 PCA, 커널 PCA, 지역 선형 임베딩 LLE

Zorba blog 2022. 5. 3. 17:20

1. 차원의 저주

- 훈련 샘플이 수천 or 수백만 개의 특성을 가지고 있는 경우 훈련을 느리게 할 뿐만 아니라 좋은 솔루션을 찾기 힘듬.

- 고차원은 많은 공간을 가지고 있기 때문에 매우 희박할(Sparse) 위험이 있음.

- 이는 대부분의 훈련 데이터가 서로 멀리 떨어져 있다는 의미.

- 새로운 샘플도 훈련 샘플과 멀리 떨어져 있을 가능성 높음.

- 훈련 세트의 차원이 클수록 과대적합의 위험이 커짐.

- 이론적으로 차원의 저주를 해결하는 해결책 하나는 훈련 세트의 크기를 키우는 것.

- 그러니 차원 수가 커짐에 따라 필요한 훈련 샘플의 수는 기하급수적으로 늘어남.

 

 

2. 차원 축소를 위한 접근 방법

 차원을 감소시키는 두 가지 주요한 접근법인 투영과 매니폴드 학습

2.1 투영

- 훈련 샘플이 고차원 공간 안의 저차원 부분 공간에 놓여있음. (훈련 샘플이 거의 평면 형태로 놓여 있음)

출처 : https://excelsior-cjh.tistory.com/167?category=918734

- 스위스 롤 데이터의 경우 그냥 평면에 투영시키면 층이 서로 뭉개짐.

- 여기서 우리가 원하는 것은 스위스 롤을 펼쳐서 오른쪽 처럼 2D 데이터셋을 얻는 것.

2.2 매니폴드 학습

매니폴드란

 다양체(多樣體, 영어manifold 매니폴드[*])는 국소적으로 유클리드 공간과 닮은 위상 공간이다. 즉, 국소적으로는 유클리드 공간과 구별할 수 없으나, 대역적으로 독특한 위상수학적 구조를 가질 수 있다. 아래 원을 예로 들면 원은 모든 점에 대해서 국소적으로 직선과 같은 구조를 가지고 있다. 따라서, 원은 1차원 다양체이다. (출처: 위키피디아)

 즉, 매니폴드는 데이터가 있는 공간. 데이터는 다양한 차원에서 존재할 수 있는데, 이 차원을 축소시켜서 작은 차원으로 데이터를 보게 되면, 필요한 매개변수가 적어져 분류가 쉬워질 수 있다. 

 

- 스위스 롤은 2D 매니폴드의 한 예. (2D 매니폴드는 고차원 공간에서 휘어지거나 뒤틀린 2D 모양)

- d차원 매니폴드는 n차원 공간에서 d차원으로 말려있는 초평면

- 많은 차원 축소 알고리즘이 훈련 샘플이 놓여 있는 매니폴드를 모델링하는 식으로 작동.

- 고차원 데이터셋이 더 낮은 저차원 매니폴드에 가깝게 놓여 있다는 매니폴드 가정에 근거.

- 매니폴드 가정은 처리해야할 작업이 저차원의 매니폴드 공간에 표현되면 더 간단해질 것이라는 가정과 병행.

- 그러나 이런 가정이 항상 유효한 것은 아님. 두 번째 예시의 경우 3D 공간에서 결정 경계가 매우 단순하나 펼쳐진 매니폴드에서는 결정 경계가 더 복잡해짐.

- 모델을 훈련시키기 전에 차원을 감소시키면 훈련 속도는 빨라짐. but 항상 더 낫거나 간단한 솔루션이 되는 것은 아님.

 

3. 주성분 분석 (Principal Component Analysis, PCA)

- 주성분 분석은 가장 인기 있는 차원 축소 알고리즘.

- 데이터에 가장 가까운 초평면을 정의한 다음, 데이터를 이 평면에 투영시킴.

- 올바른 초평면을 선택하기 위해 분산을 최대로 보존하는 방향으로 축을 선택.(정보를 가장 적게 손실)

- 원본 데이터셋과 투영된 것 사이의 평균 제곱 거리를 최소화 하는 축

- 첫 번째 축에 직교하고 남은 분산을 최대한 보존하는 두 번째 축을 찾음.

- 훈련 세트의 주성분을 찾는 방법 : 특잇값 분해(Singular Value Decomposition, SVD)라는 표준 행렬 분해 기술을 사용.

 

- 주성분을 모두 추출해냈다면 처음 d개의 주성분으로 정의한 초평면에 투영하여 데이터셋의 차원을 d차원으로 축소시킬 수 있음.

- 초평면에 훈련 세트를 투영하고 d차원으로 축소된 데이터셋을 얻기 위해서는 행렬 X와 V의 첫 d열로 구성된 행렬 W를 행렬 곱셈하면 됨.

 

 

※ 설명된 분산의 비율(explained_variance_ratio)

- 각 주성분의 축을 따라 있는 데이터셋의 분산 비율을 나타냄.

- 보통 설명된 분산을 95% 정도로 유지하는데 필요한 최소한의 차원 수를 계산.

 

3.1 재구성 오차(Reconstruction Error)

- PCA를 통해 데이터를 압축할 수 있고, 이런 크기 축소는 분류 알고리즘의 속도를 크게 높일 수 있음.

- 또한 압축된 데이터셋에 PCA 투영의 변환을 반대로 적용하여 원본 데이터에 가깝게 돌릴 수 있음(투영에서 일정량의 정보를 읽어버렸기 때문에 완벽 복원은 어려움)

- 원본 데이터와 재구성된 데이터 사이의 평균 제곱 거리를 재구성 오차 라고 함.

재구성 오차
데이터 압축에 사용된 예

 

3.2 점진적 PCA(Incremental PCA)

- PCA의 문제점 중 하나는 전체 훈련 세트를 메모리에 올려야 한다는 것.

- 점진적 PCA 알고리즘을 사용하면 훈련 세트를 미니배치로 나눈 뒤 한 번에 하나씩 주입하여 PCA를 적용하기 때문에 메모리 부족 문제 해결 가능.

 

 

4. 커널 PCA(Kernal PCA, kPCA)

- 커널 트릭을 사용하면 샘플을 매우 높은 고차원으로 매핑하여 SVM의 비선형 분류와 회귀 가능.

- 해당 기법을 PCA에 적용하여 차원 축소를 위한 복잡한 비선형 투영 수행 가능.

- kPCA는 비지도 학습이기 때문에 좋은 커널과 하이퍼파라미터를 찾기위해 그리드 탐색을 사용.

  (커널은 어떤 함수로 할지, Gamma는 무엇으로 할지)

- kPCA -> 로지스틱회귀 처럼 분류 모델 파이프라인을 만들고 가장 높은 정확도를 보이는 하이퍼파라미터 사용.

 

5. 지역 선형 임베딩(Locally linear embedding, LLE)

- 지역 선형 임베딩은 또 다른 강력한 비선형 차원 축소 기술.(투영에 의존하지 않는 매니폴드 학습)

- 각 훈련 샘플이 가장 가까운 이웃에 얼마나 선형적으로 연관되어 있는지 측정.

LLE 작동 방식

1) 각 훈련 샘플X(i)에 대해 가장 가까운 k개의 샘플을 찾음.

2) X(i)와 W(i,j)X(j) 사이의 제곱 거리가 최소가 되는 W(i,j)를 찾아서 X(i)를 재구성.

( 1)에서 선택한 각 데이터 포인트와 가까운 k개의 이웃점들은 매니폴드의 locally linear patch 상에 있거나 가까이 있을 것이라 가정.)

3) 계산된 좌표로 매핑

 

6. 다른 차원 축소 기법

1) 랜덤 투영(Random Projection)

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

 

2) 다차원 스케일링(Multidimensional Scaling, MDS)

- 샘플 간의 거리를 보존하면서 차원을 축소.

 

3) Isomap

- 각 샘플을 가장 가까운 이웃과 연결하는 식으로 그래프를 만듬.

- 그 다음 샘플 간의 지오데식 거리를 유지하면서 차원 축소.

 

4) t-SNE(t-distributed stochastic neighbor embedding)

- 비슷한 샘플은 가까이, 비슷하지 않은 샘플은 멀리 떨어지도록 하면서 차원을 축소.

- 주로 시각화에 많이 사용되며 특히 고차원 공간에 있는 샘플의 군집을 시각화할 때 사용.

 

5) 선형 판별 분석(LDA)

- 분류 알고리즘이나 훈련 과정에서 클래스 사이를 가장 잘 구분하는 축을 학습.

- 이 축을 데이터가 투영되는 초평면을 정의하는 데 사용 가능.

- 투영을 통해 가능한 한 클래스를 멀리 떨어지게 유지시키므로 SVM 분류기 같은 다른 분류 알고리즘을 적용하기 전에 차원을 축소시키는 데 좋음.

 

 

 

Comments