머신러닝 개발자의 러닝머신

[통계/수학] 주성분 분석, PCA : "기존 정보를 '잘' 유지하면서도 데이터 차원을 단순하게 하자!" 본문

ML.AI/선형대수,통계

[통계/수학] 주성분 분석, PCA : "기존 정보를 '잘' 유지하면서도 데이터 차원을 단순하게 하자!"

oongsong 2023. 7. 30. 17:06
반응형

 

안녕하세요🤓

 

오늘은 데이터 분석과 머신러닝에서 자주 등장하는 개념인

주성분 분석, PCA에 대해 알아보겠습니다. 

 

 

주성분 분석(Principal Componet Analysis)이란? 

 

주성분 분석에 대해 이해하려면 주성분이 무엇인지 알아야겠죠?

 

 

주성분이란 어떤 방향의 벡터가 가진 방향으로 데이터를 사영시켰을 때,

사영된 데이터들의 분산이 최대화되는 방향벡터를 의미합니다. 

 

 

이때, 분산은 데이터가 퍼진 정도를 표현하는 통계량으로

분산이 크면 데이터가 평균을 중심으로 흩어져 그 분포를 분석하기에 용이합니다. 

반대로, 분산이 작으면 데이터가 평균을 중심으로 밀접해있어 데이터의 중첩이 일어나 데이터의 개개 특징을 파악하기 비교적 어렵습니다. 

 

 

아래 그림처럼 특정 벡터에 내적한 데이터들(빨간 점)이 왼쪽보다 오른쪽에서 더 넓게 분포가 퍼져있으며 

기존 데이터의 구조를 더 잘 보존하고 있습니다. 

 

이미지 출처: https://gguguk.github.io/posts/PCA/

 

 

따라서, 주성분에서 데이터들의 분산이 최대화되는 지점을 구하는 것은 데이터 개개의 특징을 파악하기 용이하고

사영 후 변환된 데이터가 기존 구조를 과하게 왜곡하지 않고 최대한으로 잘 유지하기 때문입니다. 

 

 

다시 돌아와서, 

주성분 분석이란 , 기존 데이터를 가장 잘 설명하는 주성분을 찾는 과정인데, 

즉, 전체 데이터(변수들)의 분산을 가장 잘 설명하는 설명하는 새로운 변수를 찾아 새로운 공간으로 

데이터를 변환하는 것이라고 할 수 있습니다. 

이러한 새로운 변수는 데이터가 가진 기존 변수를 조합하여 구할 수 있으며, 주성분에 기존 변수를 내적하여 새로운 변수를 구합니다. 

 

 

기존 4개의 변수로 표현되던 데이터를 2개의 변수로도 그 분포를 충분히 설명할 수 있다면 

더 적은 변수의 갯수를 가지는 것이 해석과 분석에 유리하다는 것이 핵심입니다. 

 

주성분 분석의 목적 

 

주성분 분석의 목적은 데이터의 차원 축소를 통한 복잡성 감소를 통한 데이터의 해석을 용이하게 하기 위함입니다.

 

 

고차원(변수가 매우 많은)의 데이터를 우리가 쉽게 상상할 수 있는 2차원이나 3차원의 데이터로 표현함으로써 데이터에 대한 기하학적 해석이 보다 쉽게 가능해진다는 큰 의미를 가집니다.  

 

 

주성분 분석의 활용 

 

주성분 분석은 데이터 분석, 차원 축소뿐만 아니라 영상분석, 노이즈 제거 등 다양하게 활용되는 개념입니다. 

 

 

  •  PCA를 활용한 영상인식 - 얼굴 특성 인식

영상을 이루는 픽셀들을 일렬로 나열한 벡터로 생각하면,

픽셀의 갯수만큼의 차원인 데이터라고 생각할 수 있다. 이러한 데이터들에 PCA를 수행하여 주성분 벡터들을 얻을 수 있다. 이때, k개의 주성분 벡터로 영상 데이터를 표현하면 다음과 같이 표현된다. 

 

이미지 출처: https://darkpgmr.tistory.com/110

 

데이터의 차원(변수의 갯수)이 작아질수록, 위에서는 k값이 작아질수록, 개인의 얼굴 특성보다는 공통의 얼굴 특성이 두드러진다. 반면에, 데이터의 차원이 커질수록 각각의 다른 얼굴의 특성이 포함되어 표현됨을 알 수 있다. 이는 즉, 데이터의 차원이 커질수록 노이즈성 정보를 포함한다고 할 수 있다. 

 

이 외에도 노이즈 제거, 머신러닝 등과 같이 다양한 활용 예시가 존재합니다. 

 

 

주성분 분석의 의의 

 

1) 차원 감소(dimension reduction)

데이터에서 변수의 갯수가 차원의 수라고 할 수 있는데, n 차원의 데이터를 그보다 더 작은 k 차원으로 축소할 수 있다. 

k개의 새로운 변수를 좌표축으로 하는 공간에서 데이터를 표현한다는 의미를 갖습니다.  

 

 

2) 데이터 압축(compression)

데이터 압축의 의미는 n개의 변수를 사용해 그대로 저장하지 않고 k개의 변수를 사용하여 데이터를 저장해 

사용하는 메모리 용량을 크게 줄일 수 있습니다. 

 

 

3) 노이즈 제거 

k개의 주성분만을 이용해 데이터를 표현함으로써 의미없는 노이즈 부분을 제거할 수 있다는 의미를 갖습니다. 

 

 

 



 

오늘은 다양한 분야에서 활용되고 있는 

주성분 분석에 대해 알아봤습니다. 😄

 

 

인공지능 분야에서 수많은 데이터를 '잘' 핸들링하고 

의미를 도출하는 것이 더욱 중요합니다.

주성분 분석을 통해 데이터의 압축, 분석 등에 많은 도움이 

될 것이라고 생각합니다.✨

 

 

 

 

 

 

** References

https://darkpgmr.tistory.com/110 

https://m.blog.naver.com/brainphd5044/221764332915

https://gguguk.github.io/posts/PCA/ 

 

반응형