-
GMM (Gaussian Mixture Models)기계학습이론과실습 2022. 6. 14. 08:03
GMM은 여러 개의 다변량 정규분포를 이용해서 데이터가 생성되었다고 가정한다.
여기서 분포의 개수 K는 사용자에 의해 설정되는 hyper-parameter이며 분포의 개수가 곧 군집의 개수이다.
독립변수의 수 = M, 찾고자 하는 군집의 수 = K라고 가정할 경우, 특정 관측치의 확률은 다음과 같다.
파이값은 mixing coefficient(weight)라고도 불리며 관측치 x_i가 k번째 정규분포를 이용해서 생성되었을 확률을 나타낸다.
이때, mixing coefficient를 나타내기 위해서 z라고 하는 잠재변수를 사용해서 표현한다.
z_i는 i번째 관측치가 생성될 때 사용된 분포를 나타내는 변수이다.
다변량 정규분포의 μ = (μ_1, μ_2, ..., μ_M)이며 Σ는 M개의 변수들에 대한 공분산 행렬이다.
GMM은 군집화를 위해 파이값을 사용하며, 파이값이 가장 높은 정규분포에 해당 관측치를 배정한다. 그렇다면 mixing coefficient는 어떻게 구할 수 있을까? Logistic Regression과 마찬가지로 MLE(Maximum Likelihood Estimation) 방법을 사용한다. Log-Likelihood를 구하면 다음과 같다.
이제, 우도를 최대화하는 파라미터 값을 구해야 한다. 그런데, 잠재변수 z의 존재로 인해서 일반적인 maximization 방법을 적용할 수 없다. 따라서 EM(Expectation Maximization) Algorithm 방법을 사용한다.
1. 무선적으로 pi, mu, sigma 값을 초기화한다. (pi_i,k의 값은 1/k로 초기화한다.)
2. 해당 파라미터 값을 이용해서 p(z_i = k) 값들을 업데이트한다.
3. 업데이트 된 x, pi, mu, sigma 값을 사용해서 Log-likelihood를 최대화하는 파라미터의 값을 계산한다.
4. 2-3번을 반복한다.
그런데, hyper-parameter K는 어떻게 결정할 수 있는가? 이전에는 Silhouette Coefficient를 사용했었다.
GMM에서 비슷한 역할을 해줄 수 있는 값으로 AIC(Akaike Information Criterion) 혹은 BIC(Bayesian Information Criterion)이 있다.
AIC = -2*log-likelihood + 2sBIC = -2*log-likelihood + ln(N)*s해당 값을 최소화하는 s=k의 값을 선택할 수 있다.
'기계학습이론과실습' 카테고리의 다른 글
SVM (Support Vector Machines) (0) 2022.05.30 차원축소(Dimension Reduction) (0) 2022.05.16 Ensemble methods (0) 2022.05.11 Decision Tree (0) 2022.05.04 Clustering (0) 2022.05.04