Q

PRIVATE NAVIGATION MODE

ML4T 탭 잠금 해제

패스워드를 확인하면 이 브라우저에서 ML4T 탭과 검색 결과를 표시합니다.

STUDY SEARCH

학습 자료 검색

제목과 설명, 키워드, 학습 본문에서 찾습니다.

검색 범위

검색어를 입력해 주세요.

SEARCH THE NOTEBOOK

찾고 싶은 금융·통계·전략 개념을 입력해 보세요.

MODELS / GMM / CLUSTERING BASICS

겹치는 데이터를 소속 확률로 나누는 GMM

서로 겹치는 두 종 모양 분포가 한 관측값을 설명하는 몫을 비교하며 GMM의 소속 확률, EM 반복과 K-Means와의 차이를 익힙니다.

Gaussian Mixture Model(가우시안 혼합 모델, GMM)초급 학습 노트

겹치는 데이터를 소속 확률로 나누기

이름표가 없는 데이터를 비슷한 무리로 나누되, 경계에 있는 값을 억지로 한쪽에만 넣지 않는 것이 이 페이지의 목표다.

이름표가 사라진 부품을 어떻게 나눌까

두 기계가 같은 종류의 부품을 만든다고 생각해 보자. 첫 번째 기계는 대체로 짧은 부품을, 두 번째 기계는 대체로 긴 부품을 만든다. 그런데 완성된 부품에서 기계 이름표가 떨어졌다. 우리에게 남은 정보는 각 부품의 길이뿐이다.

길이가 비슷한 부품끼리 모으면 두 무리가 보일 수 있다. 이렇게 서로 비슷한 값이 모인 무리를 Cluster(군집)라고 부른다. 문제는 두 기계 모두 중간 길이의 부품을 만들 수 있다는 점이다. 중간에 있는 부품을 어느 한쪽에만 넣으면 확실하지 않은 판단을 확실한 것처럼 보이게 된다.

여러 종 모양을 겹쳐 전체 데이터를 설명한다

한 기계에서 만든 부품의 길이는 어떤 중심 주변에 많이 모이고, 중심에서 멀어질수록 드물어진다고 가정해 보자. 그러면 각 기계의 부품 길이를 하나의 종 모양 곡선으로 나타낼 수 있다. 이 곡선을 Gaussian distribution(가우시안 분포, 정규분포)이라고 한다.

Gaussian Mixture Model(가우시안 혼합 모델, GMM)은 이런 종 모양 곡선을 여러 개 겹쳐 전체 데이터를 설명한다. 각 곡선은 하나의 숨은 군집을 나타낸다. GMM이 알아내려는 것은 다음 세 가지다.

  • 군집의 중심은 어디인가
  • 군집은 중심 주변에 얼마나 넓게 퍼져 있는가
  • 전체 데이터에서 각 군집이 차지하는 비율은 얼마인가

먼저 아래 도구에서 군집 사이 거리를 줄여 보자. 두 곡선이 겹칠수록 가운데 부품의 소속은 더 모호해진다. 살펴볼 부품 길이를 한쪽 중심으로 옮기면 그 군집의 소속 확률이 커진다.

INTERACTIVE STUDY TOOLGMM 군집 겹침 탐색기두 군집의 중심을 가깝게 또는 멀게 놓고, 한 부품의 길이를 바꾸면서 소속 확률이 어떻게 달라지는지 살펴봅니다.
24 mm
50 mm
군집 A 중심
38 mm
군집 B 중심
62 mm
각 군집의 폭·비중
9 mm · 50%

선택한 부품 길이50 mm

군집 A50.0%
군집 B50.0%

두 군집이 거의 같은 정도로 이 값을 설명합니다.

군집 A군집 B두 군집을 합친 분포
두 가우시안 군집과 선택한 부품 길이군집 A의 중심은 38밀리미터, 군집 B의 중심은 62밀리미터입니다. 선택한 50밀리미터 값의 소속 확률은 군집 A 50.0%, 군집 B 50.0%입니다.105090부품 길이 (mm)

회색 점은 이름표가 없는 가상 관측값입니다. 이 도구는 한 가지 측정값과 두 군집만 보여 주지만, 실제 GMM은 여러 특성과 여러 군집을 함께 다룰 수 있습니다.

한 점을 잘라 나누지 않고 비율로 나눈다

가운데에 있는 부품은 군집 A일 수도 있고 군집 B일 수도 있다. GMM은 이 부품을 바로 한쪽에 넣지 않고, 각 군집이 그 값을 얼마나 잘 설명하는지 비교한다. 예를 들어 군집 A 70%, 군집 B 30%처럼 나타낸다.

이처럼 한 관측값이 여러 군집에 속할 가능성을 함께 남기는 방법을 Soft clustering(연성 군집화)이라고 한다. 각 군집이 한 관측값을 설명하는 몫을 Responsibility(책임도)라고 부른다. 어려운 이름이지만, 여기서는 “이 점의 소속 확률”이라고 읽으면 된다.

먼저 여러 곡선을 합쳐 전체 밀도를 만드는 식을 보자.

p(x)=k=1KπkN ⁣(xμk,σk2)p(x) = \sum_{k=1}^{K} \pi_k \mathcal{N}\!\left(x \mid \mu_k, \sigma_k^2\right)
p(x)p(x)
관측값 xx 주변에 전체 데이터가 모이는 정도를 나타내는 혼합밀도
단위: mm1\text{mm}^{-1}
xx
어느 군집에서 왔는지 살펴볼 부품 길이
단위: mm\text{mm}
KK
모델에 넣은 전체 군집 수
단위: \text{개}
kk
여러 군집 가운데 현재 계산하는 군집의 번호
단위: 없음
πk\pi_k
kk번째 군집이 전체에서 차지하는 Mixture weight(혼합 비율)
단위: 없음
N(xμk,σk2)\mathcal{N}(x \mid \mu_k, \sigma_k^2)
평균 μk\mu_k와 분산 σk2\sigma_k^2을 가진 kk번째 가우시안 곡선이 xx를 받치는 높이
단위: mm1\text{mm}^{-1}
μk\mu_k
kk번째 군집의 중심인 평균
단위: mm\text{mm}
σk\sigma_k
kk번째 군집이 중심 주변에 퍼진 폭인 표준편차
단위: mm\text{mm}

각 군집의 곡선 높이에 그 군집의 혼합 비율을 곱한 뒤 모두 더한 값이 전체 혼합밀도다. 따라서 큰 군집은 같은 곡선 높이에서도 더 큰 몫을 가질 수 있다.

이제 kk번째 군집의 책임도를 계산한다.

rk(x)=πkN ⁣(xμk,σk2)j=1KπjN ⁣(xμj,σj2)r_k(x) = \frac{ \pi_k \mathcal{N}\!\left(x \mid \mu_k, \sigma_k^2\right) }{ \sum_{j=1}^{K} \pi_j \mathcal{N}\!\left(x \mid \mu_j, \sigma_j^2\right) }
rk(x)r_k(x)
관측값 xxkk번째 군집에 속한다고 모델이 계산한 Responsibility(책임도)
단위: 없음
xx
소속 확률을 계산할 부품 길이
단위: mm\text{mm}
kk
책임도를 구하려는 군집의 번호
단위: 없음
jj
분모에서 모든 군집을 차례로 더할 때 사용하는 번호
단위: 없음
KK
모델에 넣은 전체 군집 수
단위: \text{개}
πk\pi_k
kk번째 군집이 전체에서 차지하는 혼합 비율
단위: 없음
N(xμk,σk2)\mathcal{N}(x \mid \mu_k, \sigma_k^2)
kk번째 가우시안 곡선이 관측값 xx를 받치는 높이
단위: mm1\text{mm}^{-1}
μk\mu_k
kk번째 군집의 평균
단위: mm\text{mm}
σk\sigma_k
kk번째 군집의 표준편차
단위: mm\text{mm}

분자는 한 군집이 관측값을 설명하는 몫이고, 분모는 모든 군집의 몫을 더한 값이다. 그래서 한 관측값에 대한 모든 책임도를 더하면 1, 즉 100%가 된다.

곡선의 위치와 폭은 번갈아 고친다

처음에는 어느 점이 어느 기계에서 왔는지 모른다. 그래서 임시 곡선을 놓고, 소속 확률과 곡선 모양을 번갈아 다시 계산한다. 이 반복 방법을 Expectation-Maximization Algorithm(기댓값-최대화 알고리즘, EM)이라고 한다.

  1. 데이터 위에 임시 가우시안 곡선을 놓는다.
  2. 각 점에 대해 모든 군집의 책임도를 계산한다.
  3. 책임도가 큰 점이 더 많이 영향을 주도록 각 군집의 중심·폭·혼합 비율을 다시 계산한다.
  4. 곡선이 거의 움직이지 않을 때까지 2번과 3번을 반복한다.

점의 이름표를 먼저 확정하지 않는 것이 핵심이다. 한 점이 군집 A에 60%, 군집 B에 40% 속해 보인다면 다음 중심을 계산할 때도 두 군집에 각각 그만큼 영향을 준다.

K-Means와 무엇이 다를까

비교 항목K-MeansGMM
한 점의 결과가장 가까운 중심 하나에 넣는다.모든 군집의 소속 확률을 남긴다.
군집 모양중심까지의 거리로 나누므로 둥글고 크기가 비슷한 군집에 잘 맞는다.군집마다 폭과 방향을 다르게 배울 수 있다.
경계의 점아주 작은 차이로도 한쪽에만 들어간다.50%와 50%처럼 모호함을 그대로 보여 줄 수 있다.
잘 맞는 상황빠르고 단순한 묶음이 필요할 때군집이 겹치거나 소속의 불확실성이 중요할 때

GMM이 언제나 더 좋은 것은 아니다. 군집이 뚜렷하고 속도가 중요하면 K-Means의 단순함이 장점이 될 수 있다.

소속 확률을 정답 확률로 오해하지 않는다

  • 군집 수 KK는 먼저 정해야 한다. 데이터에 맞는 군집 수를 비교하는 방법은 별도의 모델 선택 문제다.
  • 각 군집이 가우시안 모양이라는 가정이 크게 틀리면 결과도 어색해질 수 있다.
  • 측정 단위가 크게 다른 특성을 그대로 넣으면 숫자가 큰 특성이 거리를 지배할 수 있으므로 Scale(척도)을 맞춰야 한다.
  • 아주 멀리 떨어진 이상치는 군집의 중심과 폭을 끌어당길 수 있다.
  • 처음 곡선을 어디에 놓았는지에 따라 서로 다른 결과에 멈출 수 있다. 여러 초기값을 시험하는 이유다.
  • 책임도 80%는 모델의 가정과 현재 파라미터 아래에서 계산한 값이다. 실제 기계 이름이 80% 확률로 맞는다는 보증은 아니다.

핵심만 다시 정리하기

GMM은 데이터를 칼로 자르듯 나누지 않는다. 여러 종 모양 분포가 각 점을 얼마나 잘 설명하는지 비교하고, 그 몫을 소속 확률로 남긴다. 그래서 서로 겹치는 군집과 애매한 경계를 표현할 수 있다.

두 군집의 한가운데에 있는 점은 왜 50%와 50%에 가까운가?

두 군집의 폭과 혼합 비율이 같고 점이 두 중심에서 같은 거리에 있다면, 두 곡선이 그 점을 받치는 높이도 같다. 전체 몫을 똑같이 나누므로 책임도가 각각 50%가 된다.

GMM의 소속 확률이 높으면 실제 이름표도 확실한가?

아니다. 소속 확률은 현재 선택한 군집 수와 가우시안 가정 아래에서 모델이 계산한 값이다. 실제 정답을 보증하지 않는다.

모든 군집이 종 모양이 아니면 어떻게 되는가?

한 개의 가우시안 곡선으로 굽은 모양이나 아주 긴 꼬리를 정확히 설명하기 어렵다. 여러 성분을 쓰거나 데이터 모양에 더 잘 맞는 다른 군집 방법을 검토해야 한다.