ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 + 2s
    BIC = -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

    댓글

Designed by Tistory.