tak's data blog
가우시안 혼합 모델과 EM알고리즘(Gaussian Mixture Model & Expectation-Maximization) 본문
가우시안 혼합 모델과 EM알고리즘(Gaussian Mixture Model & Expectation-Maximization)
hyuntaek 2024. 6. 30. 14:56
GMM 개념
GMM은 데이터 포인트가 평균과 분산이 다른 여러 가우시안 분포의 혼합에서 생성된다고 가정합니다. 가우시안 분포를 사용하여 클러스터링 함으로써 Kmeans 모델을 확장시키고, 군집의 평균뿐만 아니라 공분산도 고려하며 타원체 모양을 모델링할 수 있습니다. 특히 이러한 특징으로 이상탐지 분야에서 많이 활용되고 있습니다.
*학습내용에 대한 출처: https://www.youtube.com/watch?v=NNwkDi-2xVQ
위와 같은 방식은 GMM에서 모수 추정이라고 하는데, 모수 추정은 대표적으로 2가지를 추정합니다.
- 개별 정규분포의 평균과 분산
- 각 데이터가 어떤 정규분포에 해당되는지의 확률
이러한 모수 추정을 위해 GMM은 EM알고리즘 방법을 사용합니다.
이러한 과정을 진행하기 전에 우리는 다음과 같은 문제에 직면합니다.
위와 같이 두 라벨로 구별할 수 있는 데이터가 있다면, 아래와 같이 두 라벨의 확률 분포를 추정할 수 있습니다. (MLE를 통해)
그러나 그림 1과 같은 라벨이 주어지지 않는다면 어떻게 해야할까?에서 문제가 시작됩니다. (그림 3)
라벨이 있으려면 분포가 있어야 하고, 분포를 얻으려면 라벨이 필요합니다. (분포 추정이 힘들다.)
추정을 위해서는 라벨이나 분포나 둘 중 하나를 주어야 합니다.
이를 해결하기 위해 GMM모델은 분포를 랜덤하게 설정하고 시작합니다.
그림 4는 각 분포에 대한 모수가(평균과 표준편차) 주어졌을 때의 예상 분포입니다. 이처럼 라벨을 주고 모수를 추정하는 과정을 반복하면 원하는 분포로 수렴할 것이다.가 아이디어의 기조입니다.
즉,
1) 랜덤하게 분포를 제안하고
2) likelihood 비교로 라벨링
3) 그룹별 모수 추정
4) 추정된 모수 이용한 그룹별 분포 확인
의 과정을 거칩니다.
EM 알고리즘
이 과정에서 EM알고리즘이 활용됩니다.
EM(Expectation-Maximization) 알고리즘이란 두 과정을 반복적으로 수행하는 알고리즘으로 쉽게 말해 라벨을 부여하고 모수를 계산하고 이 두과정을 반복해주는 알고리즘입니다.
- Expectation: 각 데이터에 라벨을 부여하는 과정
- Maximization: 각 그룹의 모수를 재 계산하는 과정
수식 또한 두 과정을 뜻합니다.
E-step
각 파라미터를 기반으로 i번째 데이터가 j번 그룹에 들어갈 확률을 계산합니다.
오른쪽과 같은 예시로 계산합니다.
여기서 사용되는 것이 베이즈 정리입니다. 사전확률과 사후확률을 고려한 방식으로 각각을 분해해서 보면
데이터 포인트들을 기반으로 각 분포에서 어떤 곳에 속할지를 계산하는 likelihood (그림 8)
각 그룹(분포)에 속할 사전확률 (그림 9)
로 라벨을 부여하기 위한 과정이라고 볼 수 있습니다.
M-step
M-step에서는 MLE를 이용해 모수를 계산해주는 과정입니다. (그림 10)
이러한 과정들이 모두 반복하면서 결국 수렴한다. 라는 것이 GMM 모델의 방법입니다. 처음엔 이게 뭔가하고 이해하기 어려웠는데, 차근차근 강의를 통해 정리하고 공부해보니 이해할 수 있었습니다.
해당 강의를 제공해주신 분께 감사드리고 앞으로 1) GMM 모델링을 이해하기 위한 최대우도법에 대한 정리와 2) GMM을 활용한 분포 추정을 진행해볼 예정입니다. 간략하게 정리하느라 이해하기 어려운 부분도 있을텐데 그 때는 위의 유튜브 출처를 통해 확인해주시면 이해가 더욱 쉬울 것입니다.
'머신러닝' 카테고리의 다른 글
추천시스템(Recommendation system) 유사도(similarity) (0) | 2021.03.26 |
---|---|
추천시스템(Recommendation system) (1) | 2021.03.26 |
Decision Tree(의사결정나무) (0) | 2021.03.02 |
Model training(모델 훈련) (0) | 2021.02.10 |
classification(분류) (0) | 2021.02.02 |