본문 바로가기
머신러닝

[머신러닝] GMM(Gaussian Mixture Model) 군집화

by 하응 2021. 8. 19.

GMM(Gaussian Mixture Model) 군집화 알고리즘 : 


데이터가 여러 다른 모양의 가우시안 분포(Gaussian Distribution)로 결합되어 있다는 가정 하에 
개별 데이터를 동일한 가우시안 분포별로 묶어주는 비지도 학습 알고리즘이다. 

  • 기하학적인 모양의 군집, 서로 겹치는 군집에 대해서도 클러스터링이 잘 수행된다.
    (K-Means 군집화 알고리즘의 한계점을 보완) 
  • 개별 데이터 포인트에 대해 각 정규 분포(가우시안 분포)에 속할 확률을 계산하여 할당하고, 최대 우도 추정법으로 개별 정규 분포의 평균과 분산 추정을 반복하며 학습이 진행된다. 

 

이 시간에는 GMM 알고리즘 수행 단계를 정리해보고자 한다. 👀 


GMM 알고리즘 수행 단계

GMM 알고리즘은 '예측(Expectation)''최대화(Maximization)' 이렇게 크게 2단계로 구분된다.
*보통 줄여서 EM방법이라고 부른다.

 

1. 예측(Expectation)

개별 데이터 포인트가 각 정규 분포로부터 생성되었을 가능도(likelihood)를 계산하여, 가장 높은 확률을 가진 정규 분포에 할당한다. 
* 처음에는 각 정규분포에 데이터 포인트를 임의로 배정한다. 

군집화 대상이 되는 데이터 분포가 위처럼 정규 분포 3개의 결합이라고 가정한다면,  

 

위 그림처럼 빨간 색으로 표시된 각 데이터 포인트에 대해 각 정규 분포에 속할 확률을 계산한 후, 가장 큰 확률을 갖는 정규 분포로 할당한다. 파란색 정규 분포에 5개의 데이터 포인트가, 주황색 정규 분포에 3개의 데이터 포인트가, 초록색 정규 분포에 5개의 데이터 포인트가 할당되는 것을 확인할 수 있다. 

 

반응형

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

 

 

2. 최대화(Maximization)

위 1번 단계에서 개별 데이터 포인트를 모두 할당한 후, 각 그룹의 데이터 포인트를 이용하여 Maximum Likelihood Estimation(최대 우도 추정)으로 모분포의 모평균과 모분산을 추정한다. 

 

개별 데이터 포인트를 할당한 모습

 

 

개별 데이터 포인트로 각 정규 분포의 모수를 추정한다. 위 그림에서 정규 분포의 평균과 분산이 변경된 것을 확인할 수 있다. 개별 데이터들의 소속과 정규 분포의 모수(평균과 분산)가 변하지 않을 때까지 1,2 단계를 반복 수행한다.

 

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

 

 

개별 데이터 포인트를 특정 그룹에 먼저 할당하고, 그룹에 속한 데이터들로 기준 값을 다시 계산한다는 점에서, GMM 알고리즘은 K-Means 알고리즘 수행 방식과 유사한 것을 확인할 수 있다. K-Means 군집화에서는 개별 데이터 포인트들을 Centroid에 할당하고, 할당된 데이터 포인트로 다시 Centroid를 계산한다. 

2021.05.30 - [머신러닝] - [머신러닝] K-Means 군집화

 

[머신러닝] K-Means 군집화

K-Means 알고리즘 :  데이터 포인트들을 비슷한 속성의 그룹으로 묶어주는 비지도학습 알고리즘 중 하나이다. 'Centroid'라는 클러스터(군집)의 중심점 개념이 사용된다. 데이터 포인트들과 Centroid들

studying-haeung.tistory.com

 

 


 

GMM 알고리즘의 장점 

  • 데이터가 기하학적 모양의 군집을 갖는 경우, K-Means 알고리즘보다 성능이 좋다. 
  • Mixture Model 중에서는 학습 속도가 빠른 편이다. 

 

GMM 알고리즘의 단점 

  • 군집 개수를 의미하는 가우시안 분포의 개수를 사용자가 지정해야 한다.
    * 하지만 BIC(Bayesian Information Criterion) 방식으로 최적화 개수를 찾을 수는 있으며, scikit-learn 패키지에서도 해당 기능을 제공하고 있다.
  • 가우시안 분포마다 충분한 데이터 포인트들이 있어야, 모수 추정이 잘 이뤄진다. 
  • 계산량이 많은 편이다. 

 

 

 

참고자료 

 


 

 

GMM 알고리즘을 정리하며, 통계 공부를 더 열심히 해야겠다는 생각이 들었다. 💦
꾸준히 해보쟈 🚀

반응형

댓글