Computer Science/선형대수학 및 기타 수학

[선형대수학] PCA & PPCA

꾸준희 2018. 2. 6. 23:45
728x90
반응형


논문 읽다가 PPCA Model 이라는 개념이 나와 정리해보고자 한다. 


간단히 말하자면 PPCA는 Probablistic PCA(Principal Component Analysis) 이다. 

영문에서도 알 수 있듯이 확률적으로 주성분 분석을 하겠다는 것이다. 

PPCA 를 위해 PCA 개념부터 차근차근 설명해보도록 한다.



1. 데이터 분석에서 차원 감소(Dimensionality Reduction)가 필요한 이유


데이터 분석과 관련된 학문에서는 차원의 저주 라는 문제가 있다. 차원의 저주는 관측한 데이터의 벡터 공간 차원이 엄청나게 크지만, 실제로 필요한 True Data는 작은 차원의 공간으로 표현해도 충분한 경우에 사용되는 용어이다. 


차원의 저주는 데이터 과학에서는 차원이 증가함에 따라 차원 내의 부피도 증가하게 되는데, 데이터가 해당 공간 내에 놓일 수 있는 위치는 한정되게 되어있고, 빈 공간이 많아지기 때문에 발생한다. 관찰한 데이터의 차원이 증가 할 수록 공간의 Volume의 크기는 기하급수적으로 증가하게 되고, 빈 공간도 많이 차지하게 된다. 


즉, 불필요한 데이터가 남아있게 되는 것이다. 이러한 큰 차원의 데이터를 다룰 때, 어떻게 하면 데이터의 전반적인 구조는 바꾸지 않고 중복적인 정보를 가지는 차원을 감소시켜 공간 낭비를 해결할 수 있을까? 




2. 차원을 감소하는 방법 


차원을 효율적으로 감소하기 위해서는 추출한 데이터에서 적은 수의 특징만을 가지고 특정한 현상을 설명할 수 있어야 한다. 이 때, 최대한 데이터의 구조는 보존되어야 한다. 데이터 차원 감소의 방법으로는 크게 두가지를 뽑을 수 있다 .


1) Feature Selection

특징 선택 방법은 d개의 차원을 가지는 원소들 중 m개만 뽑아서 쓰는 방법이다. 이 때, 어떤 방법으로 d개를 선택할 지는 여러가지 방법이 있다.


2) Feature Extraction

데이터로부터 특징을 추출하는 방법은 주성분 분석(Principal Component Analysis)이 있다. 이는 d차원 벡터를 입력으로 하고, m차원 벡터를 출력으로 하는 선형 함수를 생성하는 것이다. (m<d)




3. 주 성분 벡터 (PCV)


우선 주성분 분석을 설명하기 위해서, 주성분 벡터라는 것을 숙지할 필요가 있다. 원래 데이터 차원이 d라고 했을 때, PC1, PC2, ... , PCd 라고 하면 데이터 분포에서 변위가 큰 순서대로의 방향 벡터(주성분 벡터)를 의미한다. 




4. 주 성분 분석 (PCA)


주성분 분석은 서로 상관성이 높은 여러 변수들의 선형 조합으로 만든 새로운 변수들로 요약 및 축약하는 기법이며, 설명된 바와 같이 차원의 저주 문제를 해결할 수 있다. 


주성분 분석은 고차원 데이터에서 최대 분산의 방향을 찾아, 새로운 부분 공간에 원래보다 작은 차원으로 투영하는 것이고, 이 때 PCA는 데이터 각각에 대한 성분을 분석하는 것이 아니라, 여러 데이터들이 모여 하나의 분포를 이룰 때 이 분포의 주 성분을 분석해주는 방법이다. 


아래 그림과 같이 데이터들의 주성분을 찾기 위해서 2차원 좌표 평면에 n개의 점 데이터 (x1, y1), (x2, y2), ... , (xn, yn) 들이 타원형으로 분포되어 있을 때, 이 데이터들의 분포 특성을 2개의 벡터로 가장 잘 설명할 수 있는 방법은 무엇일까? 그것은 바로 그림에서와 같이 PC1과 PC2 두개의 벡터로 데이터 분포를 설명하는 것이다. PC1의 방향과 크기, 그리고 PC2의 방향과 크기를 알 수 있다면 이 데이터 분포가 어떤 형태인지를 가장 단순하면서도 효과적으로 파악 할 수 있다. 


(그림 1) 2차원에서의 PCA



즉, 분포를 나타내는 주 성분을 분석해주는 방법이다. 

여기서의 주성분은 그 방향으로 데이터들의 분산이 가장 큰 방향벡터를 의미한다. 


그림에서는 PC1 방향을 따라 데이터들의 분산(흩어진 정도)이 가장 크다. 그리고 그 다음으로 데이터들의 분산이 가장 큰 방향은 PC2이다. 


PCA는 2차원 데이터 집합에 대해 PCA를 수행하면 2개의 서로 수직인 주성분 벡터를 반환하고, 3차원 점들에 대해 PCA를 수행하면 3개의 서로 수직인 주성분 벡터들을 반환한다. 





5. 확률적 주 성분 분석 (PPCA)

PPCA는 확률적인 모델을 이용하여 PCA를 수행하는 것이다. 주어진 데이터 x가 있을 때 해당 데이터의 차원을 줄이고 싶다면 줄어 들 공간(또는 데이터)을 y라고 했을 때 이를 매핑 해주는 W를 찾는 것이다. 




* W는 latent space와 data space 사이의 선형적 관계를 나타내는 행렬


데이터와 latent 변수 사이의 관계를 다음과 같이 나타낼 수 있다.





여기서 nun은 데이터를 축소 시키면서 생기는 오차를 의미한다.

이 오차가 평균은 0, 분산은 인 가우시안 분포를 가진다고 할 수 있다.










출처 1 : https://wikidocs.net/7646

출처 2 : http://yamalab.tistory.com/32

출처 3 : http://darkpgmr.tistory.com/110

출처 4 : http://enginius.tistory.com/471

출처 5 : http://hackos.egloos.com/v/157867


728x90
반응형
1 2 3 4 5 6 7