데이터 반출 없는 다기관 연합 인공지능 학습 플랫폼

데이터 분석/군집화

마르코프 체인 -> 깁스 샘플링 -> 결합분포

FedTensor 2026. 8. 5. 17:04

이 세 가지는 처음 접하면 굉장히 추상적으로 느껴지는데, 사실은 다음 한 문장으로 요약할 수 있습니다.

"깁스 샘플링은 원하는 확률분포를 직접 뽑기 어려울 때, 변수들을 하나씩 번갈아 업데이트하는 마르코프 체인을 만들고, 그 체인을 오래 돌리면 결국 우리가 원하는 결합분포를 따르게 되는 방법이다."

 

아래 순서대로 이해해 보겠습니다.

1. 마르코프 체인이란 무엇인가?

가장 직관적인 예는 방을 이동하는 사람입니다. 방이 3개 있다고 하겠습니다.

  • A방
  • B방
  • C방

사람은 매 분마다 방을 옮깁니다. 규칙은 다음과 같습니다.

현재 A방이면

  • 70% 확률로 A
  • 30% 확률로 B

현재 B방이면

  • 50% 확률로 A
  • 50% 확률로 C

현재 C방이면

  • 100% 확률로 B

여기서 중요한 점은

다음 위치를 결정할 때 현재 위치만 사용한다.

 

는 것입니다. 예를 들어

A → B → C → B

까지 왔다고 합시다. 다음 위치를 결정할 때는

현재 B에 있다

만 중요합니다. 그 전에

A에 있었는지
C에 있었는지

는 중요하지 않습니다. 이것이 바로 마르코프 성질입니다. 즉

미래는 현재만 알면 결정된다.

 

수식으로는

P(다음 상태 | 현재 상태, 과거 상태들)
=
P(다음 상태 | 현재 상태)

입니다.

상태(state)란?

위 예에서는

A방
B방
C방

이 상태입니다.

 

깁스 샘플링에서는 상태가 훨씬 큽니다. 예를 들어 변수 두 개

X
Y

가 있으면 현재 상태는

(X,Y)

라는 점 하나입니다.

예:

(3,7)

또는

(10,2)

같은 것이 상태입니다.

2. 왜 깁스 샘플링이 마르코프 체인인가?

이제 우리가 얻고 싶은 분포가

P(X,Y)

라고 하겠습니다. 그런데 직접 샘플링하기가 어렵습니다. 대신 다음 규칙을 만듭니다.

Step 1

현재 상태가

(X=3,Y=7)

이라고 합시다. 먼저 Y는 고정합니다.

Y=7

 

그리고

P(X|Y=7)

에서 새로운 X를 뽑습니다. 예를 들어

X=5

가 나왔습니다. 상태는

(5,7)

이 됩니다.

Step 2

이번에는 X를 고정합니다.

X=5

 

 

그리고

P(Y|X=5)

에서 새로운 Y를 뽑습니다. 예를 들어

Y=2

가 나왔습니다. 상태는

(5,2)

가 됩니다. 그러면

(3,7)
→
(5,7)
→
(5,2)
→
(8,2)
→
(8,9)
→
...

같이 이동하게 됩니다. 여기서 다음 상태를 결정하는 데 필요한 정보는 오직

현재 상태 (X,Y)

뿐입니다. 예를 들어

(5,2)

에 있다면 다음에 어디로 갈지는

(3,7)

에서 왔는지

(100,200)

에서 왔는지 전혀 중요하지 않습니다. 현재 상태만 중요합니다. 즉

P(다음 상태 | 현재 상태, 과거)
=
P(다음 상태 | 현재 상태)

입니다. 따라서 깁스 샘플링은 

상태=(X,Y)인 마르코프 체인

입니다.

3. 왜 불변 분포가 원하는 결합분포인가?

여기가 가장 중요한 부분입니다. 먼저 불변 분포(stationary distribution)란 체인을 한 번 더 움직여도 분포가 변하지 않는 분포입니다.

 

예를 들어 현재 상태들이

π

라는 분포를 따르고 있다고 합시다. 한 번 이동한 뒤에도

π

가 그대로라면

π

는 불변 분포입니다.

직관적인 비유

큰 쇼핑몰 안을 사람들이 돌아다닌다고 생각해 봅시다. 어떤 이동 규칙을 정해 놓았습니다. 처음에는 사람들이 한쪽에 몰려 있을 수 있습니다. 하지만 충분히 오래 지나면 사람들의 밀집도가 안정됩니다.

식당가 40%
영화관 30%
서점 30%

처럼요. 그 상태에 도달하면 사람들이 계속 움직여도 전체 비율은 유지됩니다. 이것이 불변 분포입니다.

깁스 샘플링에서는?

우리는

P(X,Y)

를 목표로 하고 있습니다. 깁스 샘플링은 일부러

P(X|Y)

P(Y|X)

를 사용해서 체인을 만듭니다.

가정:

현재 상태들이 이미

P(X,Y)

를 따른다고 해봅시다.

 

첫 번째 업데이트:

X ~ P(X|Y)

로 다시 뽑습니다. Y는 그대로 둡니다. 그러면 새로운 분포는 어떻게 될까요? 고정된 Y에 대해 X를 정확히

P(X|Y)

에서 뽑았으므로 전체 분포는 여전히

P(X,Y)

입니다. 왜냐하면 결합분포 자체가

P(X,Y)
=
P(X|Y)P(Y)

이기 때문입니다. 다음 단계도 마찬가지입니다.

Y ~ P(Y|X)

로 업데이트하면 분포는 다시

P(X,Y)

로 유지됩니다. 즉

P(X,Y)

상태에서 시작하면 한 번 업데이트 후에도

P(X,Y)

두 번 업데이트 후에도

P(X,Y)

입니다.

 

따라서

P(X,Y)는 깁스 체인의 불변 분포이다.

한 문장으로 직관적으로 이해하기

깁스 샘플링은

  1. 현재 상태에서 변수 하나만 바꾼다.
  2. 그 변수는 정확한 조건부 분포에서 뽑는다.
  3. 그래서 목표 결합분포를 절대로 깨뜨리지 않는다.
  4. 따라서 목표 결합분포가 체인의 불변 분포가 된다.
  5. 체인을 충분히 오래 돌리면 상태들이 그 불변 분포를 따르게 된다.

즉,

"결합분포를 직접 샘플링할 수 없으니, 조건부 분포들만 이용해 상태를 조금씩 움직이는 마르코프 체인을 만들고, 그 체인이 결국 원하는 결합분포에 머물도록 설계한 것이 깁스 샘플링이다."

 

라고 이해하면 됩니다.

 

그리고 이것을 한 단계 더 발전시키면 자연스럽게 Metropolis-Hastings → MCMC → Gibbs Sampling → DPMM의 collapsed Gibbs Sampling으로 이어집니다. DPMM에서 왜 군집 할당을 하나씩 다시 뽑아도 전체 사후분포를 따르게 되는지까지 같은 논리로 연결됩니다.