가우시안 혼합 모델 (Gaussian Mixture Models): EM 알고리즘을 이용한 소프트 클러스터링 (Soft Clustering)
요약
가우시안 혼합 모델(GMM)의 원리와 EM 알고리즘을 통한 소프트 클러스터링 과정을 설명합니다. K-Means의 한계를 넘어 데이터의 확률적 분포와 타원형 클러스터를 표현하는 방법을 다룹니다.
핵심 포인트
- GMM은 데이터가 여러 가우시안 분포의 혼합으로 생성되었다고 가정함
- EM 알고리즘을 통해 책임도(Responsibility)를 계산하고 파라미터를 반복 업데이트함
- K-Means와 달리 데이터 포인트에 확률적 멤버십을 부여하는 소프트 할당 가능
- 로그 가능도(Log-likelihood)를 기반으로 모델의 수렴을 확인하며 최적화함
K-Means는 누구나 가장 먼저 배우는 클러스터링 (Clustering) 알고리즘입니다. 하지만 이 알고리즘은 두 가지 강력한 가정을 합니다: 모든 데이터 포인트가 정확히 하나의 클러스터에 완전히 속하며 (하드 할당 (Hard assignment)), 클러스터는 둥근 덩어리 형태라는 점입니다. 실제 데이터는 이 두 가지 모두를 위반합니다. **가우시안 혼합 모델 (Gaussian Mixture Models, GMMs)**은 이를 완화합니다. 즉, 타원형 클러스터와 확률적인 소프트 멤버십 (Soft probabilistic membership)을 허용하며, 우아한 **EM 알고리즘 (EM algorithm)**을 통해 모델을 적합 (Fitting) 시킵니다.
가우시안의 혼합으로서의 데이터
GMM은 데이터가 여러 개의 가우시안 (Gaussian) "종 모양 곡선 (Bell curves)"이 서로 섞여 생성되었다고 가정합니다. 각 성분 (Component)은 평균 (Mean, 중심), 공분산 행렬 (Covariance matrix, 형태 — 너비, 높이, 기울기), 그리고 혼합 가중치 (Mixing weight, 해당 성분이 데이터의 어느 비율을 설명하는지)를 가집니다. 모델을 적합시킨다는 것은 바로 이 값들을 찾아내는 것을 의미합니다.
닭과 달걀의 문제
가우시안을 배치하려면 어떤 포인트가 어떤 클러스터에 속하는지 알아야 하지만, 포인트를 할당하려면 가우시안을 알아야 합니다. EM은 이 루프를 깨뜨립니다: 추측하고, 소프트하게 할당하고, 재추정하고, 반복합니다.
E-step: 책임도 (Responsibilities)
각 포인트와 클러스터에 대해 가중치 × 가우시안 밀도 (Gaussian density)를 계산한 다음, 포인트의 수치 합이 1이 되도록 정규화 (Normalise) 합니다. 이것이 바로 책임도 (Responsibilities) — 즉, 소프트 할당 (Soft assignments)입니다. 한 클러스터의 깊숙한 곳에 있는 포인트는 ~[1,0,0]을 얻고, 두 클러스터 사이에 있는 포인트는 [0.5, 0.5, 0]을 얻습니다.
const r = model.map(k => k.weight * gauss(p, k.mean, k.cov));
const s = r.reduce((a,b)=>a+b, 0);
const resp = r.map(v => v / s); // 합계가 1이 됨
M-step: 각 가우시안 재적합
책임도를 소프트 카운트 (Soft counts)로 취급하여 각 가우시안을 재추정합니다: 새로운 평균은 포인트들의 책임도 가중 평균 (Responsibility-weighted average)이며, 새로운 공분산은 그 주변의 가중 분산 (Weighted spread)입니다 (이것이 타원을 늘리거나 기울일 수 있게 해줍니다). 새로운 가중치는 전체 책임도 중 해당 성분이 차지하는 몫입니다.
로그 가능도 (Log-likelihood)가 항상 상승하는 이유
EM은 아름다운 보증을 제공합니다. 즉, 각 전체 E+M 반복(iteration) 과정에서 데이터의 로그 가능도 (log-likelihood)는 절대 감소하지 않습니다. 로그 가능도는 상승하다가 정체기에 도달하므로, 수렴 (convergence)을 감지하기 위해 이를 관찰하십시오. 무작위 시작 지점에 따라 지역 최적해 (local optimum)에 안착할 수 있으므로, 사람들은 알고리즘을 여러 번 실행한 후 가장 좋은 결과를 유지하곤 합니다.
GMM vs K-Means
K-Means는 사실 GMM의 특수한 사례입니다 (구형 (spherical) 형태 강제, 동일한 공분산 (covariances), 그리고 하드 할당 (hard assignments)을 사용하는 경우). GMM은 엄격하게 더 표현력이 높습니다 — 타원형 (elliptical), 서로 다른 크기, 중첩되는 클러스터 (clusters), 그리고 불확실성에 대한 척도를 제공합니다. 여전히 K 값은 직접 선택해야 하며, 비교를 위해 BIC 또는 AIC를 사용하십시오.
타원형이 2D 데이터에 맞춰 커지는 모습과 클러스터가 중첩되는 지점에서 점들의 색상이 섞이는 모습을 확인해 보세요:
https://dev48v.infy.uk/ml/day22-gmm-em.html
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기