목차
사전 지식
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) 전체 데이터를 고유벡터에 정사영 시킨다.
정리
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 |