Zettelkasten

GMM은 정규분포 PDF들의 볼록결합으로 임의의 분포를 근사한다

·수정 1

요약

  • GMM(Gaussian Mixture Model) = 여러 정규분포 PDF의 가중합으로 복잡한 분포를 표현하는 모델
  • 단일 정규분포는 봉우리 1개짜리 분포만 표현 가능 → multimodal 분포 모델링이 필요해서 등장
  • "정규분포의 연산으로 분포를 만든다"는 직관은 맞지만 함정 있음: mixture(분포 단위 가중합)sum of RVs(샘플 단위 덧셈)

본문

정의

p(x)=k=1KπkN(xμk,Σk)p(x) = \sum_{k=1}^{K} \pi_k \cdot \mathcal{N}(x \mid \mu_k, \Sigma_k)

조건:

  • πk0\pi_k \geq 0, πk=1\sum \pi_k = 1convex combination (볼록결합)
  • 결과 p(x)p(x)도 PDF (적분하면 1)
  • 각 component마다 자기만의 평균/분산. K (component 수)는 사람이 정함

Mixture ≠ Sum of Random Variables

이 둘은 완전히 다른 연산이고, "정규분포 여러 개 더한다"는 표현이 양쪽 다로 읽힐 수 있어서 가장 먼저 박아둠.

Mixture (GMM) Sum of RVs
p(x)=0.5N(3,1)+0.5N(+3,1)p(x) = 0.5\,\mathcal{N}(-3,1) + 0.5\,\mathcal{N}(+3,1) Y=X1+X2Y = X_1 + X_2
결과 봉우리 2개 (multimodal) N(0,2)\mathcal{N}(0, 2) — 봉우리 1개
무엇을 더하나 분포(PDF) 자체를 가중합 샘플 값을 더함

GMM이 강력한 이유는 mixture라서 multimodal 분포를 만들 수 있다는 것. sum of RVs였으면 정규분포 여러 개 더해도 정규분포 하나라 의미 없음 (정규분포의 합은 정규분포).

Universal Approximator

KK를 충분히 크게 잡으면 어떤 연속 PDF도 임의 정밀도로 근사 가능.

같은 철학의 도구들:

  • Fourier series: 주기함수를 sin/cos의 가중합으로 분해
  • Taylor series: 매끄러운 함수를 다항식의 가중합으로 분해
  • GMM: 임의 PDF를 가우시안 PDF의 가중합으로 분해

→ "단순한 building block의 조합으로 복잡한 걸 표현"하는 패턴. 그래서 "연산으로 나타낸다"보다 "근사한다" 가 더 정확한 표현.

학습: 잠재변수와 EM 알고리즘

각 데이터 xix_i가 어느 component에서 나왔는지를 잠재변수 ziz_i로 둠 (관측 안 됨).

닭과 달걀 문제:

  • μk,σk,πk\mu_k, \sigma_k, \pi_k를 알면 → ziz_i 추정 가능 (Bayes posterior)
  • ziz_i를 알면 → μk,σk,πk\mu_k, \sigma_k, \pi_k 추정 가능 (그룹별 MLE)

→ 번갈아 추정 (EM 알고리즘):

E-step: responsibility 계산 (Bayes 정리 그대로 적용) γik=P(zi=kxi)=πkN(xiμk,σk)jπjN(xiμj,σj)\gamma_{ik} = P(z_i = k \mid x_i) = \frac{\pi_k\,\mathcal{N}(x_i \mid \mu_k, \sigma_k)}{\sum_j \pi_j\,\mathcal{N}(x_i \mid \mu_j, \sigma_j)}

M-step: γik\gamma_{ik}를 가중치로 한 MLE μk=iγikxiiγik,σk2=iγik(xiμk)2iγik,πk=iγikN\mu_k = \frac{\sum_i \gamma_{ik}\, x_i}{\sum_i \gamma_{ik}}, \quad \sigma_k^2 = \frac{\sum_i \gamma_{ik}(x_i - \mu_k)^2}{\sum_i \gamma_{ik}}, \quad \pi_k = \frac{\sum_i \gamma_{ik}}{N}

만약 ziz_i를 알았으면 γik{0,1}\gamma_{ik} \in \{0, 1\} → 그냥 그룹별 평균/분산. 모르니까 soft하게 가중치로 처리.

이론적으로 매 step마다 log-likelihood 단조증가 보장. 단점:

  • Local optimum에 빠질 수 있음 (초기값 의존)
  • KK는 사람이 정해야 함 (BIC, AIC로 선택 또는 도메인 지식)
  • 분산이 0으로 수렴하면 likelihood가 발산하는 degeneracy

왜 정규분포를 building block으로 쓰나

  1. CLT (중심극한정리): 많은 자연 현상이 정규분포에 수렴 → 적합한 가정
  2. 수학적 편의: 평균/분산 두 모수만 있으면 정의됨, 닫힌 형태의 연산 다수
  3. 로그 변환과 궁합: log-energy 같은 변환된 변수가 거의 가우시안이 됨 (분산 안정화)
  4. 표현력: 단독으론 약하지만 mixture로 묶으면 universal approximator가 됨

어디 쓰이나

  • Speaker recognition: 화자별 GMM 만들어 likelihood로 매칭
  • GMM-HMM: 딥러닝 이전 음성인식의 표준 (각 음소 상태별 GMM)
  • VAD (webrtcvad): speech GMM vs noise GMM의 log-likelihood ratio test로 음성/잡음 판정. band별로 사전학습된 mean/variance 테이블을 fixed-point로 박아두고, 평균만 online 적응
  • Background subtraction: CCTV 배경 픽셀 분포 모델링
  • Soft clustering: K-means의 soft 버전 (각 점이 여러 클러스터에 확률적으로 속함)

핵심 직관

"정규분포 여러 개 섞어서 임의의 분포를 흉내내는 도구"

가우시안이 너무 깔끔해서(평균/분산만으로 정의) 단독 표현력은 부족한데, mixture로 묶으면 universal approximator가 됨. 그래서 GMM은 "단일 가우시안의 한계를 극복하기 위한 가장 자연스러운 확장"이라고 볼 수 있음.

참고

이 문서를 참조하는 노트 (2)