본문 바로가기

데이터 과학/딥러닝(Deep Learning)

PCA(주성분 분석) 정리

목차

사전 지식

PCA 의미

계산 방법

정리

PCA 단점


사전 지식

공분산

 

- x와 y의 공분산은 모든 데이터에 대해 (x데이터 - x의 평균) * (y데이터 - y의 평균)의 평균을 뜻한다.

- 각 확률 변수(X, Y)의 평균으로 부터 거리를 곱한 값의 기댓 값

 

- 공분산 행렬은 i번째 좌표 성분과, j번째 좌표 성분의 공분산 값을 행렬의 원소 (i, j)로 하는 행렬이다.

 

 

 

e.g.

2차원 데이터 (x1, y1) ... (xn, yn)에 대한 공분산 행렬 계산

 

 

 

 

 

※ 주 성분은 '데이터 공분산 행렬'의 고유값 분해(PCA) 혹은 '데이터 행렬'의 SVD(특이값 분해) 로 계산될 수 있다.

※ 특징 : $ Cov[Ax] = ACov[x]A^T $


PCA의 의미

- 데이터 분석(주성분 분석), 데이터 압축(차원 축소), 노이즈 제거 등에 활용한다.

- 입력 데이터들의 공분산 행렬(Covariance Matrix)에 대한 고유값 분해(EigenValue Decomposition)로 볼 수 있다.

계산 방법

- 다변량 데이터 분포에서 각 변수 차원에 대해 공분산 행렬을 구하고, 고유값 분해를 수행하여 각 변수들을 잘 설명하는 축을 찾는다. 

1) N * N의 공분산 행렬을 계산한다.

   - e.g. x의 분산은 평균을 중심으로 얼마나 흩어져 있는지를 나타내고,

           x, y의 분산은 서로 흩어진 정도가 얼마나 상관관계를 가지고 흩어졌는지를 나타낸다.

2) 공분산 행렬을 고유값 분해를 수행하여, 고유값(Eigenvalue)과 직교 고유 벡터(Orthogonal Eigenvector)를 구한다.

   - 각 직교 공유 벡터를 단위 벡터로 만들기 위해 정규화 한다.

3) 전체 데이터를 고유벡터에 정사영 시킨다.

 

(예시) 데이터의 분포를 잘 설명하는 고유 벡터(e1, e2)

정리

 

1) 데이터 각 차원끼리 공분산을 구해 공분산 행렬을 구한다.

 

2) Eigenvalue Decomposition을 수행한다.

   - e1(EigenVector)은 분산이 가장 큰 방향

   - e2는 e1에 수직이면서, 다음으로 분산이

     가장 큰 방향

   - Lambda1, 2는 해당 분산의 크기를

      나타낸다.

 

 

 

 

PCA 단점

PCA는 Linear Hyperplane에 분포된 데이터들을 Projection(투영) 하기 때문에 Non-Linear Hyperplane에 분포된 데이터들은 잘 분리(?) 하지 못한다.

※ 참고로, Non-Linear Hyperplane(비선형 초평면)을 Disentangle 하기 위한 방법으로는 Autoencoder, LLE, IsoMap 등이 있다.

 

답변해야 할 질문

1) 공분산은 어떤 의미를 지니는가?

 - 각 확률변수(X, Y)의 평균으로 부터 거리를 곱한 값의 기대 값

 - 데이터 간의 관계(Trend)를 나타낸다. 

 - 회귀(Regression)에서 기울기(m)의  분자, 상관 관계, PCA 계산에 사용된다. 

 - 그 자체로는 해석하기 난해하다. 

 - 정리 링크

 

2) 공분산 행렬은 어떤 의미를 지니는가?

 

3) 공분산 행렬을 고유값 분해한 것이 어떻게 주성분(Principle Component)를 찾는다고 할수 있는가?

 

4) 고유값 분해는 어떤 의미를 지니는가?


en.wikipedia.org/wiki/Principal_component_analysis

darkpgmr.tistory.com/110?category=460967

www.youtube.com/watch?v=_UVHneBUBW0

www.astroml.org/book_figures/chapter7/fig_S_manifold_PCA.html

 

반응형

'데이터 과학 > 딥러닝(Deep Learning)' 카테고리의 다른 글

LSTM Autoencoder 설명  (0) 2021.05.28
공분산(Covariance) 정리  (0) 2021.02.12
Autoencoder 설명  (0) 2021.02.06
Sigmoid 함수 vs Softmax 함수  (0) 2021.02.01
Transformer 설명  (0) 2021.01.14