PCA에 대해 이해하기 위해 공부하며 정리한 글.
개인적인 이해이므로 정확하지 않을 가능성이 다분...
우리말로 주성분분석이라 불리는 PCA 는 특징값의 차원을 낮추고 중요한 정보들은 보존하기 위한 방법으로
Feature Space를 변환하여 특징값을 중요도 순으로 구한뒤 이중 일부만을 선택함으로써 차원은 낮추며 정보손실은 최소화 하는 것을 기본 전제로 한다.
이해하기 쉽도록 2차원의 데이터를 가지고 시작.
PCA의 목적이 정보의 손실을 최소화 하면서 차원을 낮추는 것이라 하였으니 2차원의 데이터를 1차원으로 낮춰야 한다.
2차원의 데이터가 1차원으로 낮아지기 위해서는 projection 을 이용한다.
2차원 상의 데이터를 임의의 한 축으로 projection 하면 2차원의 데이터가 1차원의 데이터로 선형변환 된다.
이때 우리가 알고싶은 것은 선형변환하기위한 무수히 많은 축들 중에서 어떤 축이 기존 특징의 정보를 가장 적게 손실하는가 가 된다.
아래의 그림에서 볼 수 있듯이 여러 축으로 projection이 가능하지만 그 결과는 모두 같지 않다.
두 projection 결과중 왼쪽의 것은 특징값이 일부 overlap 되면서 그만큼 특징값의 정보를 손실했다고 볼 수있다.
반면 오른쪽의 것은 왼쪽의 것에 비해 정보의 손실없이 차원이 낮아진 것을 볼 수있다.
위에서 볼 수 있듯이 정보의 손실이 가장 적은 축은 데이터의 분산이 가장 큰 방향의 벡터값이라고 할 수 있을 것이다.
분산이 가장 큰 방향을 찾기 위해서는 covariance(공분산) 과 eigenvector(고유벡터) 를 이용한다.
원 데이터의 covariance 를 구하고 이들의 eigenvalue에 해당하는 eigenvector를 찾아서 matrix를 구성하면
이 matrix가 데이터를 projection 하는 변환행렬이 된다.
이때 eigenvalue 는 원 정보의 차원만큼 구할 수 있고 eigenvalue의 값이 클수록 원 정보의 대표적인 정보를 가지고 있는
더 중요한 값이고 값이 작아질수록 덜중요한 혹은 노이즈 성분이 될 수 있다.
이러한 이유로 모든 eigenvector 를 이용하면 역변환을 통해 원본 정보를 그대로 복원이 가능하고, 중요하다고 판단되는 상위 일부의 정보만을 이용하면 정보의 손실을 최소화 하면서 차원을 줄일 수 있게 된다.
==============================================================================================
아직 PCA에 대한 이해도가 낮아 너무 개념적인 내용밖에 파악하지 못한 상태...
조금더 살펴 보는 걸로 하자.
'전공관련 > Algorithm' 카테고리의 다른 글
배경 근사화를 이용한 조명 제거 및 이진화 (0) | 2016.05.17 |
---|---|
Bagging vs Boosting 비슷한듯 비슷하지 않은 개념. (3) | 2014.12.24 |
Local Patch Descriptor - Ferns Feature (0) | 2014.11.20 |
K-Mean Clustering (0) | 2013.08.13 |
Hidden Markov Model ( HMM ) (0) | 2013.08.06 |