GMM(Gaussian Mixture Model)

군집화 기법인 GMM의 원리에 대해 알아보자!
머신러닝군집화
avatar
2025.03.28
·
13 min read

K-Means 알고리즘은 특징 중심점을 기반으로 거리적으로 퍼져 있는 데이터 세트에 대해 효과적인 군집화를 수행할 수 있습니다. 하지만, 데이터가 이러한 분포를 따르지 않는 경우 K-Means의 한계가 드러날 수 있습니다. 예를 들어, 아래와 같은 데이터는 K-Means로 효과적으로 군집화할 수 있습니다.

4467

그러나 다음과 같은 데이터에서는 문제가 발생합니다. 세 개의 그룹이 명확히 보이지만, K-Means는 중심점을 기준으로 데이터를 거리 기반으로 나누기 때문에 원하는 형태로 군집화되지 않습니다. 이러한 경우, GMM(가우시안 혼합 모델)을 사용하면 데이터의 확률 분포를 기반으로 군집을 나누어 보다 적절한 결과를 얻을 수 있습니다.

4468

GMM은 군집화를 적용하고자하는 데이터가 여러개의 다른 가우시안 분포(정규 분포)를 가지는 모델로 가정하고 군집화를 수행하게 됩니다. 가령 1000개의 데이터 세트가 있다면, 이를 구성하는 여러 개의 정규 분포 곡선을 추출하고, 개별 데이터가 이 중 어떤 정규분포에 속하는지 결정하는 방식입니다.

4469

모수 추정

모수(parameter)는 어떤 확률 분포를 결정하는 숫자들입니다. 대표적으로 정규 분포는 평균분산이라는 두 모수를 적절히 조합해 다양한 정규분포를 표현할 수 있습니다.

모수 추정이란, 주어진 데이터를 기반으로 가장 적합한 모수를 찾는 과정입니다. 모수를 추정하는 여러 방법 중 하나가 최대우도법(MLE, Maximum Likelihood Estimation)입니다. 최대우도법은 주어진 데이터가 모수를 기준으로 가장 잘 설명될 확률을 찾는 것입니다. 즉, 모수가 주어졌을 때 데이터가 나올 확률(우도)를 구하고, 이를 최대화하는 최적의 모수를 찾는 것입니다.

정규분포 우도 함수

X={x1,x2,,xN}X = \{x_1, x_2, \dots, x_N\}
L(μ,σ2X)=i=1NN(xiμ,σ2)L(\mu, \sigma^2 \mid X) = \prod_{i=1}^{N} \mathcal{N}(x_i \mid \mu, \sigma^2)주어진 데이터 집합 XX에 대해 각 데이터 점 xix_i가 정규 분포 N(μ,σ2)N(μ,σ2)에서 나온 확률 밀도 함수 값을 모두 곱한 것입니다.

우리는 주어진 모수를 기준으로 데이터가 가장 잘 설명될 확률을 찾고자 합니다. 이를 위해 우도 함수의 최대값을 찾는 것이 목표입니다. 정규분포가 하나일 때, 우도 함수에 로그를 취한 후 미분하여, 이를 최대화하는 모수를 구할 수 있습니다.

GMM에서의 우도 함수

GMM과 같은 혼합 모델에서는 여러 개의 정규분포가 데이터를 구성합니다. 하지만 데이터를 똑같이 나누어 갖는 게 아니라, 어떤 정규분포는 데이터의 큰 부분을 차지하고, 어떤 정규분포는 작은 부분만 차지할 수 있습니다. 따라서 각 정규분포가 전체 데이터에서 차지하는 비율을 나타내는 Cluster Weight가 필요합니다. 이때, 모든 정규분포의 Cluster Weight을 합하면 1이 되어야 합니다.

GMM에서 우도함수는 다음과 같습니다. πkπ_kkk번째 정규분포의 Cluster Weight을 나타냅니다. N(xiμk,Σk)N(x_i | μ_k,Σ_k)kk번째 정규분포에서 데이터 xix_i가 나올 확률 밀도 함수입니다.

P(Xθ)=i=1Nk=1KπkN(xiμk,Σk)P(X \mid \theta) = \prod_{i=1}^{N} \sum_{k=1}^{K} \pi_k \mathcal{N}(x_i \mid \mu_k, \Sigma_k)일반적인 정규분포에서는 데이터가 특정 정규분포에서 생성되었음을 알고 있기 때문에 최대우도법(MLE, Maximum Likelihood Estimation)을 바로 적용하여 모수를 쉽게 추정할 수 있습니다.

하지만 GMM에서는 각 데이터가 어떤 정규분포에서 나왔는지 알 수 없기 때문에, 각 데이터가 어느 군집에 속하는지를 추정하는 추가적인 과정이 필요합니다. 이를 위해 EM (Expectation-Maximization) 알고리즘을 사용합니다.

4471

EM 알고리즘에서는 먼저 E-Step에서 각 데이터가 특정 정규분포에 속할 확률을 계산합니다. 처음에는 데이터를 임의로 정규분포에 배정한 뒤, M-Step에서 이 확률을 이용해 GMM의 모수를 업데이트합니다. 이 과정은 개별 데이터가 특정 정규분포에서 나올 가능성을 최대화하는 방향으로 진행됩니다.

이렇게 E-Step과 M-Step을 반복하면서 우도 함수의 값을 점점 키우고, 모수를 최적화해 나갑니다. 최종적으로 개별 정규분포의 평균과 분산이 더 이상 변하지 않고, 각 데이터가 속하는 군집이 더 이상 변경되지 않으면 군집화가 완료됩니다. 만약 변화가 계속된다면, Expectation과 Maximization 단계를 반복하여 최적의 결과를 찾아갑니다.







- 컬렉션 아티클