Gaussian Mixture가 무엇인가?
Gaussian Mixture Model을 이해하기 위해서는, 먼저 Gaussian Mixture이 무엇인지부터 알아야 한다.
Gaussian Mixture은, 주어진 데이터들의 분포가 여러 Gaussian 분포의 합으로 나타낼 수 있다는 가정에서 출발하게 된다. 즉, 다음과 같은 상황을 고려할 수 있을 것이다.
위의 그림은 데이터가 3개의 Gaussian 분포의 합산으로 나타낸다는 가정을 이해하기 위한 그림이다.
데이터의 분포를 올바르게 추론하기 위해서는, 다음을 알아야 할 것이다.
(1) 각 분포별로 평균과 분산이 어느정도 인가?
(2) 주어진 데이터가, 각 gaussian 분포에 속할 확률
즉, 각 분포별로 속할 확률이 높은 데이터들끼리 군집을 묶어주게 된다.
우선, Python Example
그런데 원리는?
이것이 어떻게 성립될 수 있을지에 대해 (내가 이해한 만큼) 간단하게 정리하고자 한다.
우선 결론적으로 풀고 싶은 문제는, 주어진 데이터의 분포를 가장 잘 설명하는 가우시안 분포 조합을 찾는 것이다.
+ 분포별로 나올 확률까지 모두.
다시 말해, 가우시안 분포들의 모수를 추정하는 문제로 넘어가게 된다. 수식으로 다시 이해해보면 다음과 같다.
각, Gaussian 분포별로 x가 나올 정도에, 어떤 Gaussian 분포에 속할지 weight를 부여하게 된다.
분류는 어떻게 하는 것일까?
각 데이터가, 어떤 카테고리에 속하는가를 알려주면 되고, 이는 조건부 확률을 통해 계산할 수 있다.
이 값을, responsibility라고 한다.
즉, 각 데이터별로 특정 분포에 속학 확률을 뱉게 된다. 위에서 추정한 모수들을 활용하여 식을 다시 쓰면 다음과 같다.
EM-Algorithm
이제 각 가우시안 분포별로 확률, 분산을 추정해야 하고, 가우시안 분포가 나올 확률도 추정해야 한다.
E단계 = Log Likelihood의 기댓값을 계산하는 과정
M단계 = 이 기댓값을 최대화하는 모수 추정값들을 구하는 과정
즉, E단계에서는 우리가 알고 있는 모수를 바탕으로 responsibility를 추정하고, M단게계에서는 반대로 responsibility를 가지고 모수를 다시 추정하는 과정을 반복하게 된다.
자세한 설명은 다음 링크를 참조하자.
https://datascienceschool.net/03%20machine%20learning/18.01%20%EA%B0%80%EC%9A%B0%EC%8B%9C%EC%95%88%20%ED%98%BC%ED%95%A9%EB%AA%A8%ED%98%95%EA%B3%BC%20EM%20%EB%B0%A9%EB%B2%95.html#id4
이 모델의 단점은?
애초에, 데이터가 여러 Gaussian 분포의 합산으로 나타낼 수 있다는 부분에서 가정에 위배될 경우, 올바른 군집화에 실패할 수도 있다는 단점을 가지고 있다. 다시말해 각 유형별로 분포가 정규분포가 아닐 경우, 군집화의 결과가 옳지 않을 수 있다.
'Archive > 데이터 분석 관련' 카테고리의 다른 글
[Data] 이상탐지 문제 소개 (0) | 2022.03.27 |
---|---|
[Data] Imbalanced Data 다루는 Technique 정리 (0) | 2022.03.20 |
[Data] Shapely Value 간단하게 알아보기 (0) | 2022.03.17 |
[Data] 회귀진단이란 무엇일까? (0) | 2022.03.14 |
[Data] Topic Modeling - LDA (0) | 2022.03.11 |