무직 백수 라이프 살아남기

gibb 본문

카테고리 없음

gibb

발등에 메테오 떨어짐 2024. 11. 8. 19:38

Gibbs Sampling은 다변량 분포에서 샘플을 생성하는 데 사용되는 MCMC 알고리즘입니다. 특히, 각 변수의 조건부 분포를 알고 있을 때 유용합니다. 전체 결합 분포에서 직접 샘플링하는 것이 어려운 경우, Gibbs Sampling은 각 변수를 하나씩 순차적으로 샘플링하여 목표 분포에 수렴하는 샘플들을 생성합니다.

알고리즘:

$d$개의 변수를 가진 다변량 분포 $p(x_1, x_2, ..., x_d)$ 에서 샘플을 생성한다고 가정합니다. Gibbs Sampling 알고리즘은 다음과 같습니다.

  1. 초기값 설정: 각 변수에 초기값 $x_1^{(0)}, x_2^{(0)}, ..., x_d^{(0)}$을 할당합니다.

  2. 반복: $t = 1, 2, ..., T$ (원하는 샘플 수)까지 다음 단계를 반복합니다.

    • $x_1^{(t)}$ 를 조건부 분포 $p(x_1 | x_2^{(t-1)}, x_3^{(t-1)}, ..., x_d^{(t-1)})$ 에서 샘플링합니다.
    • $x_2^{(t)}$ 를 조건부 분포 $p(x_2 | x_1^{(t)}, x_3^{(t-1)}, ..., x_d^{(t-1)})$ 에서 샘플링합니다.
    • ...
    • $x_d^{(t)}$ 를 조건부 분포 $p(x_d | x_1^{(t)}, x_2^{(t)}, ..., x_{d-1}^{(t)})$ 에서 샘플링합니다.
  3. 샘플 수집: 충분한 반복 후, $(x_1^{(t)}, x_2^{(t)}, ..., x_d^{(t)})$ 는 목표 분포 $p(x_1, x_2, ..., x_d)$ 에서의 샘플로 간주할 수 있습니다.

수식:

$i$번째 변수 $x_i$에 대한 업데이트 단계는 다음과 같이 표현할 수 있습니다.

$x_i^{(t)} \sim p(x_i | x_1^{(t)}, ..., x_{i-1}^{(t)}, x_{i+1}^{(t-1)}, ..., x_d^{(t-1)})$

이 수식은 $x_i$를 제외한 모든 변수의 현재 값이 주어졌을 때, $x_i$의 조건부 분포에서 샘플링한다는 것을 의미합니다. $i$번째 변수까지는 $t$번째 반복에서의 값을 사용하고, $i+1$번째 변수부터는 이전 반복인 $t-1$번째 값을 사용합니다.

장점:

  • 각 변수의 조건부 분포에서 샘플링하는 것이 전체 결합 분포에서 직접 샘플링하는 것보다 쉬운 경우가 많습니다.
  • Metropolis-Hastings 알고리즘과 달리, 제안 분포를 설계하고 수락/거부 단계를 거칠 필요가 없습니다. 모든 제안은 수락됩니다.

단점:

  • 모든 조건부 분포에서 샘플링할 수 있어야 합니다.
  • 변수 간의 상관관계가 높으면 수렴 속도가 느려질 수 있습니다.

예시:

2차원 정규분포에서 Gibbs Sampling을 사용하는 경우, 각 변수의 조건부 분포는 다음과 같습니다.

  • $p(x_1 | x_2) = \mathcal{N}(\mu_1 + \rho \frac{\sigma_1}{\sigma_2}(x_2 - \mu_2), \sigma_1^2(1-\rho^2))$
  • $p(x_2 | x_1) = \mathcal{N}(\mu_2 + \rho \frac{\sigma_2}{\sigma_1}(x_1 - \mu_1), \sigma_2^2(1-\rho^2))$

여기서 $\mu_1$, $\mu_2$는 각 변수의 평균, $\sigma_1$, $\sigma_2$는 각 변수의 표준편차, $\rho$는 두 변수의 상관계수입니다. 이 조건부 분포들을 사용하여 Gibbs Sampling을 수행할 수 있습니다.

Gibbs Sampling은 베이지안 추론, 이미지 처리, 그리고 머신 러닝 등 다양한 분야에서 널리 사용됩니다. 특히, 복잡한 모델에서 사후 분포를 추정하는 데 유용하게 활용됩니다.