§ 13.4~13.6 — EM 알고리즘·조건부 분해·Coagulation 재조명

Gelman BDA Ch.13 심화 — 식 (13.5) log-posterior 분해, E/M-step 완전 유도, 단조 증가 증명, ECM·ECME·AECM 확장, 조건부 근사 식 (13.9)(13.10), Coagulation stepwise ascent 수렴 표

Ch.13 § 13.1~13.3 이 joint mode + Laplace 였다면, § 13.4~13.6 은 주변 mode + 조건부 분해 — 잠재 변수 · 고차원 모형에서 더 강력. § 13.4 의 EM 알고리즘 유도: 식 (13.5) 의 log p(φ|y) = E_old[log p(γ,φ|y)] - E_old[log p(γ|φ,y)] 분해, \(Q\) 함수 정의, E-step 과 M-step 의 명시적 수식, 각 반복에서 주변 사후 단조 증가 증명 (두 번째 항이 φ=φ^old 에서 최대), GEM (generalized EM) 의 완화 조건, 정규 평균·분산 예제에서 E_old(1/σ²) 의 scaled inverse-χ² 공액으로부터의 계산, M-step 의 정규 공액 업데이트 식 (13.8)(13.9), ECM/ECME/AECM 확장의 수렴 이점, SEM 의 asymptotic variance \(V = V_{\mathrm{joint}} + V_{\mathrm{joint}} D_M (I-D_M)^{-1}\) 추출법, PX-EM 의 parameter expansion 효과. § 13.5 의 조건부 분해 트릭 식 (13.9) \(p_{\mathrm{approx}}(\phi|y) = p(\gamma, \phi|y) / p_{\mathrm{approx}}(\gamma|\phi,y)\) 의 Savage-style trick, 정규 근사 특수 케이스 식 (13.10) \(p_{\mathrm{approx}}(\phi|y) \propto p(\widehat{\gamma}, \phi|y) |V_\gamma(\phi)|^{1/2}\), importance resampling 보정. § 13.6 의 Coagulation 계층 정규 재조명: stepwise ascent 3 반복 수렴 표, joint mode vs marginal mode 비교 — 각 수식 옆에 “왜 이 단계가 필요한가” 를 붙여 전개한다.

Statistics
Bayesian
저자

Kwangmin Kim

공개

2026년 04월 23일

1 개요 — 세 절의 공통 주제

Ch.13 § 13.4~13.6 은 고차원 사후의 분해 전략.

초점
13.4 주변 mode 찾기 (EM)
13.5 조건부·주변 근사 결합
13.6 Coagulation 예제에서 실증

공통 전략: \(\theta = (\gamma, \phi)\) 분해. \(\gamma\) 는 적분·최대화로 제거, \(\phi\) 는 주변 최빈값. 공액 구조 활용.

Overview (02-13-0), § 13.1~13.3 심화 (02-13-1) 의 joint mode + Laplace 를 계층·잠재 모형에 확장.

2 § 13.4 — EM 알고리즘

2.1 문제 설정

잠재 변수 또는 보조 모수 \(\gamma\) 가 있는 모형. 관심은 \(\phi\) 의 주변 사후:

\[ p(\phi \mid y) = \int p(\gamma, \phi \mid y) d\gamma \]

직접 최대화 어려움: 적분 포함. 그러나 조건부는 쉬움.

2.2 예제 시나리오

  1. 결측 데이터: \(\gamma\) = 결측 관측값, \(\phi\) = 모수.
  2. 혼합 모형: \(\gamma\) = 성분 지시자, \(\phi\) = 혼합 가중치·성분 모수.
  3. 계층 모형: \(\gamma\) = 그룹별 효과, \(\phi\) = hyperparameter.
  4. 변동 계수: \(\gamma\) = random effects, \(\phi\) = 분산 모수.

EM 은 이 구조의 주변 mode 를 iterative 하게 찾는다.

2.3 Log-Posterior 분해 — 식 (13.5)

핵심 아이덴티티 (조건부 확률 정의):

\[ \log p(\phi \mid y) = \log p(\gamma, \phi \mid y) - \log p(\gamma \mid \phi, y) \]

양변을 \(\gamma \sim p(\gamma \mid \phi^{\mathrm{old}}, y)\) 기대값.

좌변: \(\gamma\) 무관 → 기대값은 \(\log p(\phi \mid y)\) 그대로.

우변:

\[ \log p(\phi \mid y) = \underbrace{\mathbb{E}_{\mathrm{old}}[\log p(\gamma, \phi \mid y)]}_{Q(\phi \mid \phi^{\mathrm{old}})} - \underbrace{\mathbb{E}_{\mathrm{old}}[\log p(\gamma \mid \phi, y)]}_{H(\phi \mid \phi^{\mathrm{old}})} \tag{13.5} \]

\(\mathbb{E}_{\mathrm{old}}\) = expectation under \(p(\gamma \mid \phi^{\mathrm{old}}, y)\).

2.4 \(Q\)\(H\) 의 역할

  • \(Q(\phi \mid \phi^{\mathrm{old}})\): “expected complete-data log-likelihood”. EM 의 핵심 양.
  • \(H(\phi \mid \phi^{\mathrm{old}})\): 엔트로피-유사 항. Gibbs’ 부등식으로 \(\phi = \phi^{\mathrm{old}}\) 에서 최대.

2.5 \(H\) 의 최대값 성질

Gibbs’ 부등식: 어떤 밀도 \(q, p\) 에 대해 \(\mathrm{KL}(q \| p) \ge 0\), 등호는 \(q = p\).

\(\mathbb{E}_{q}[\log p] \le \mathbb{E}_{q}[\log q]\) (KL 정의).

\(q = p(\gamma \mid \phi^{\mathrm{old}}, y)\), \(p = p(\gamma \mid \phi, y)\) 대입:

\[ H(\phi \mid \phi^{\mathrm{old}}) = \mathbb{E}_{\mathrm{old}}[\log p(\gamma \mid \phi, y)] \le \mathbb{E}_{\mathrm{old}}[\log p(\gamma \mid \phi^{\mathrm{old}}, y)] = H(\phi^{\mathrm{old}} \mid \phi^{\mathrm{old}}) \]

\(H\)\(\phi = \phi^{\mathrm{old}}\) 에서 최대. 다른 \(\phi\) 에선 감소.

2.6 단조 증가 증명

\(\phi^{\mathrm{new}}\)\(Q(\phi \mid \phi^{\mathrm{old}})\) 를 증가시키도록 선택. 즉:

\[ Q(\phi^{\mathrm{new}} \mid \phi^{\mathrm{old}}) > Q(\phi^{\mathrm{old}} \mid \phi^{\mathrm{old}}) \]

식 (13.5) 에서 \(\phi^{\mathrm{new}}\) 대입:

\[ \log p(\phi^{\mathrm{new}} \mid y) = Q(\phi^{\mathrm{new}} \mid \phi^{\mathrm{old}}) - H(\phi^{\mathrm{new}} \mid \phi^{\mathrm{old}}) \]

\(Q\) 증가, \(H\) 감소 (또는 같음) → 전체 \(\log p\) 증가:

\[ \log p(\phi^{\mathrm{new}} \mid y) > \log p(\phi^{\mathrm{old}} \mid y) \]

각 반복에서 주변 사후 단조 증가 — EM 의 핵심 성질. \(\square\)

2.7 EM 알고리즘 공식화

Iteration \(t = 1, 2, \ldots\):

E-step: 현재 \(\phi^{(t-1)}\)\(Q\) 함수 계산.

\[ Q(\phi \mid \phi^{(t-1)}) = \int p(\gamma \mid \phi^{(t-1)}, y) \log p(\gamma, \phi \mid y) d\gamma \]

M-step: \(Q\)\(\phi\) 에 대해 최대화.

\[ \phi^{(t)} = \arg\max_\phi Q(\phi \mid \phi^{(t-1)}) \]

2.8 GEM — Generalized EM

M-step 을 증가 로 완화:

\[ Q(\phi^{(t)} \mid \phi^{(t-1)}) \ge Q(\phi^{(t-1)} \mid \phi^{(t-1)}) \]

최대화 불필요. 단조 증가 유지.

용도: M-step 이 해석적으로 어려울 때. Newton step 1 회 등.

단점: local mode 수렴 보장 안 됨 (증가만 해서 극대점에 안 갈 수 있음). EM 은 수렴, GEM 은 개별 확인.

직관 — EM 의 “증강” 아이디어

원 목표: \(p(\phi \mid y)\) 를 최대화. 어려움 이유 = \(\gamma\) 에 대한 적분.

EM 의 천재적 아이디어: “현재 \(\phi^{(t-1)}\) 하에서 \(\gamma\) 의 분포를 안다 고 가정”. 그 분포 하에서 expected log joint 를 최적화.

이게 실제 목표보다 쉬운 이유: \(\log p(\gamma, \phi \mid y)\)\(\gamma\)\(\phi\) 에 동시 의존이지만, \(\gamma\)기댓값** 을 대입하면 \(\phi\) 만의 함수**. Iterate 로 \(\gamma\) 분포를 정교화.

부부 의사 소통 비유 (overview): E-step = 한 사람이 “현재 상황” 파악, M-step = 다른 사람이 “그 상황 하 최적” 제시. 반복하면 균형점.

수학적으로는 variational perspective: \(q(\gamma) = p(\gamma \mid \phi^{\mathrm{old}}, y)\) 로 고정하고 ELBO 최대화. § 13.7 의 VI 와 동일 구조 — EM 은 VI 의 특수 경우.

2.9 예제 — 정규 모형

\(n\) 관측 \(y_i \sim \mathrm{N}(\mu, \sigma^2)\). Prior: \(\mu \sim \mathrm{N}(\mu_0, \tau_0^2)\), \(p(\log \sigma) \propto 1\).

Partially conjugate. Joint posterior:

\[ \log p(\mu, \sigma \mid y) = -\frac{(\mu - \mu_0)^2}{2 \tau_0^2} - (n+1) \log \sigma - \frac{1}{2\sigma^2} \sum (y_i - \mu)^2 + \text{const} \tag{13.6} \]

관심: \(\mu\) 의 주변 mode. \(\sigma\) 는 nuisance — 적분해 없앰.

2.10 E-step 유도

\(\mathbb{E}_{\mathrm{old}}[\log p(\mu, \sigma \mid y)]\)\(\sigma\) 에 대한 조건부 기대.

\(\sigma\) 에 관한 조건부 사후 (given \(\mu\)): \(\sigma^2 \mid \mu, y \sim \mathrm{Inv}\text{-}\chi^2(n, s^2_\mu)\) where \(s^2_\mu = \frac{1}{n} \sum (y_i - \mu)^2\).

필요한 기댓값:

\[ \mathbb{E}_{\mathrm{old}}[1/\sigma^2] = \frac{1}{s^2_{\mu^{\mathrm{old}}}} = \left(\frac{1}{n} \sum (y_i - \mu^{\mathrm{old}})^2\right)^{-1} \]

\(\mathbb{E}_{\mathrm{old}}[\log \sigma]\)\(\mu\) 에 의존 안 함 → M-step 에서 무시.

결과:

\[ Q(\mu \mid \mu^{\mathrm{old}}) = -\frac{(\mu - \mu_0)^2}{2\tau_0^2} - \frac{1}{2 s^2_{\mu^{\mathrm{old}}}} \sum (y_i - \mu)^2 + \text{const} \tag{13.8} \]

2.11 M-step 유도

(13.8) 는 정규 posterior 의 log 형식. \(\mu\) 에 관한 2차식. 미분 0 에서 해:

\[ \mu^{\mathrm{new}} = \frac{\frac{\mu_0}{\tau_0^2} + \frac{n}{s^2_{\mu^{\mathrm{old}}}} \bar{y}}{\frac{1}{\tau_0^2} + \frac{n}{s^2_{\mu^{\mathrm{old}}}}} \]

정밀도 가중 평균 — prior 평균 \(\mu_0\) 와 sample 평균 \(\bar{y}\) 의 가중 평균. 가중치 = 각 정밀도.

반복하면 \(\mu\) 가 주변 사후 mode 로 수렴.

2.12 ECM — Expectation Conditional Maximization

M-step 을 여러 conditional maximization 으로 분해.

\(\phi = (\phi_1, \ldots, \phi_S)\) 분할. 각 단계:

\[ \phi_s^{(t+s/S)} = \arg\max_{\phi_s} Q(\phi \mid \phi^{\mathrm{old}}) \bigg|_{\phi_j = \phi_j^{(t + (s-1)/S)}, j \ne s} \]

GEM 의 특수 경우. 각 CM-step 이 \(Q\) 증가 → 주변 사후 단조 증가.

장점: 전체 최대화 어려울 때 조건부 최대화로 대체. Gibbs 스타일 구조.

2.13 ECME — Expectation / Conditional Maximization Either

ECM 의 일부 CM-step 을 actual 주변 log-posterior 최대화로 대체.

\(\log p(\phi \mid y)\) 의 일부 모수를 Newton step 으로 최대화 → 훨씬 빠른 수렴.

Trade-off: 주변 사후 계산 가능해야 함.

2.14 AECM

ECME 를 일반화: 각 CM-step 에서 \(\gamma\) 의 다른 정의 사용 가능. 결측 데이터 모형에서 유연.

2.15 SEM — Supplemented EM

EM 의 약점: 점 추정만. 사후 분산 없음.

SEM 이 이를 보완. EM mapping \(\phi^{(t+1)} = M(\phi^{(t)})\) 의 Jacobian \(D_M\) 을 수치 추정:

\[ V_\phi = V_{\mathrm{joint}} + V_{\mathrm{joint}} D_M (I - D_M)^{-1} \]

  • \(V_{\mathrm{joint}}\): joint log-posterior 의 Hessian 역수 (해석적).
  • \(D_M\): EM 수렴 속도 행렬 (수치적).

해석: \(D_M\) 이 크면 missing information 많음 → \(V_\phi \gg V_{\mathrm{joint}}\). 정보 손실 보정.

2.16 세부 수치 계산 — \(D_M\)

\(\widehat{\phi}_i\) 를 제외한 \(\widehat{\phi}\) 에서 EM 한 번 실행 → 변화 측정:

\[ r_{ij}^{(t)} = \frac{\phi_j^{(t+1)}(i) - \widehat{\phi}_j}{\phi_i^{(t)} - \widehat{\phi}_i} \]

수렴 시 \(r_{ij}\)\(D_M\)\((i, j)\) 원소.

2.17 PX-EM — Parameter Expansion EM

§ 12.1 의 parameter expansion 을 EM 에 적용. \(t\) 분포 모형에서:

  1. 보조 변수 \(V_i\) 도입 (정규 혼합).
  2. 추가 스케일 \(\alpha\) 도입.
  3. E-step: \(V_i \mid \mu, \sigma^2, y\) 기댓값.
  4. M-step: \((\mu, \sigma^2, \alpha)\) 최대화.

\(\sigma\) 0 근처 stuck 문제 해소. Gibbs 의 PX 와 동일 원리.

직관 — EM 의 “missing information” 개념

\(V_{\mathrm{joint}}\) 는 “모든 정보가 관측됐다고 가정했을 때” 의 공분산. \(\gamma\) 가 관측되면 \(\phi\) 를 정밀 추정 가능.

실제로 \(\gamma\) 는 관측 안 됨 → 정보 손실. \(D_M\) 가 이 손실 정량화.

Missing information fraction: \(D_M\) 의 eigenvalue. 1 에 가까우면 정보 손실 심각 → EM 수렴 매우 느림.

실무 진단: EM 이 느리면 \(D_M\) 큰 eigenvalue 확인 → 모형 재매개변수화 (PX-EM) 또는 MCMC.

3 § 13.5 — 조건부·주변 분해

3.1 기본 아이디어

\(\theta = (\gamma, \phi)\) 분해. \(\gamma\) 의 조건부는 쉬움, \(\phi\) 의 주변은 어려움.

전략:

  1. \(p(\gamma \mid \phi, y) \approx p_{\mathrm{approx}}(\gamma \mid \phi, y)\) 해석적 근사.
  2. 이로부터 \(p(\phi \mid y)\) 유도.

3.2 식 (13.9) — Savage-style Trick

\(\phi\) 의 주변 밀도는 다음과 같이 쓸 수 있다:

\[ p(\phi \mid y) = \frac{p(\gamma, \phi \mid y)}{p(\gamma \mid \phi, y)} \]

좌변은 \(\gamma\) 무관. \(\gamma\) 아무 값이어도 성립. 이 identity 의 핵심.

근사에 적용:

\[ p_{\mathrm{approx}}(\phi \mid y) = \frac{p(\gamma, \phi \mid y)}{p_{\mathrm{approx}}(\gamma \mid \phi, y)} \tag{13.9} \]

\(\gamma\) 선택: 조건부 근사의 중심 (예: 정규 근사의 평균 \(\widehat{\gamma}(\phi)\)).

3.3 왜 이게 작동하는가

\(p_{\mathrm{approx}}(\gamma \mid \phi, y)\)정확한 조건부 라면 분자·분모의 \(\gamma\) 항 상쇄 → 정확한 주변.

근사가 정확하지 않아도, 분모의 \(\gamma\) 선택이 조건부의 “중심” 이면 근사 양호. 분모가 \(\gamma\) 에 weakly 의존하기 때문.

Ch.5.4 의 8 학교 normal model 에서 이 트릭이 정확히 — 조건부가 정규 공액이므로.

3.4 식 (13.10) — 정규 근사 특수 케이스

조건부가 \(p_{\mathrm{approx}}(\gamma \mid \phi, y) = \mathrm{N}(\widehat{\gamma}(\phi), V_\gamma(\phi))\) 형태.

정규 밀도 식:

\[ p_{\mathrm{approx}}(\widehat{\gamma}(\phi) \mid \phi, y) = (2\pi)^{-d/2} |V_\gamma(\phi)|^{-1/2} \]

식 (13.9) 에 대입 (\(\gamma = \widehat{\gamma}(\phi)\)):

\[ p_{\mathrm{approx}}(\phi \mid y) \propto p(\widehat{\gamma}(\phi), \phi \mid y) \cdot |V_\gamma(\phi)|^{1/2} \tag{13.10} \]

결과:

  • Joint posterior at the conditional mode → peak height.
  • \(|V_\gamma|^{1/2}\)Laplace volume factor (마지널화 효과).

3.5 Importance Sampling 개선

식 (13.9) 근사가 부정확하면 Importance sampling 보정:

\[ p(\phi \mid y) = \mathbb{E}_{p_{\mathrm{approx}}(\gamma \mid \phi, y)} \left[\frac{p(\gamma, \phi \mid y)}{p_{\mathrm{approx}}(\gamma \mid \phi, y)}\right] \tag{13.11} \]

\(p_{\mathrm{approx}}\) 에서 \(\gamma^{(s)}\) 추출 → 가중 평균.

Ch.10.4 의 IS 와 같은 구조. \(p_{\mathrm{approx}}\)\(p\) 에 가까우면 정확.

직관 — “조건부 → 주변” 의 일반 원칙

대부분의 계층·잠재 모형: “쉬운 부분 \(\gamma\) + 어려운 부분 \(\phi\). 이 분해를 활용한 두 단계:

  1. \(\gamma\) 를 해석적으로 처리 (공액이면 정확).
  2. \(\phi\) 만 수치 최적화 / 샘플링.

이 전략이 Ch.5 계층 모형의 \(\mu, \tau\) 격자 + \(\theta_j\) 조건부 패턴의 기원. Ch.13 의 EM 도 같은 원리 — E-step 이 “쉬운 \(\gamma\) 처리”, M-step 이 “\(\phi\) 업데이트”.

INLA (Rue, Martino, Chopin 2009) 가 이 원리를 계층 모형의 대규모 응용 으로 체계화. 현대 Bayesian spatial/GP 표준.

4 § 13.6 — Coagulation 계층 정규 재조명

4.1 모형 복습

§ 11.6 과 동일. \(J\) 그룹, 각 그룹 관측 \(y_{ij} \sim \mathrm{N}(\theta_j, \sigma^2)\). 계층: \(\theta_j \sim \mathrm{N}(\mu, \tau^2)\).

Prior: \(p(\mu, \log \sigma, \tau) \propto 1\) (또는 \(\log \tau\) 균등 시 \(\propto \tau\)).

§ 11.6: Gibbs 로 샘플링. § 13.6: 주변 mode 로 근사.

4.2 주변 사후 \(p(\mu, \log \sigma, \log \tau \mid y)\)

\(\theta_j\) 를 marginalize. 각 그룹 \(y_{ij}\)\(\mu\) 중심 정규 혼합:

\[ y_{ij} \mid \mu, \sigma, \tau \sim \mathrm{N}(\mu, \tau^2 + \sigma^2) \quad \text{(그룹 간 + 그룹 내 분산)} \]

그러나 같은 그룹의 관측들이 공분산 \(\tau^2\) 로 correlated. 정확히:

\[ y_j \mid \mu, \sigma, \tau \sim \mathrm{N}(\mu \mathbf{1}, \sigma^2 I + \tau^2 \mathbf{1} \mathbf{1}^\top) \]

3 차원 \((\mu, \log \sigma, \log \tau)\) 의 주변 log-posterior 를 Stepwise ascent 로 최대화.

4.3 Stepwise Ascent 수렴 (Table 13.1)

Coagulation 데이터 (\(J = 4\) diets, \(n = 24\)). Joint mode 찾기.

Parameter Crude Iter 1 Iter 2 Iter 3
\(\theta_1\) 61.00 61.28 61.29 61.29
\(\theta_2\) 66.00 65.87 65.87 65.87
\(\theta_3\) 68.00 67.74 67.73 67.73
\(\theta_4\) 61.00 61.15 61.15 61.15

3 번 반복에 수렴 — 조건부 공액이어서 각 업데이트가 해석적.

4.4 Joint Mode vs Marginal Mode

Joint mode: \((\mu, \theta, \sigma, \tau)\) 결합 최대. Marginal mode: \((\mu, \sigma, \tau)\) 의 주변 최대 (\(\theta_j\) 제거 후).

8 학교처럼 경계 문제: marginal \(\tau\) mode 가 0 일 수 있음. Joint 는 더 robust.

§ 13.4 의 EM 이 marginal mode 찾기. § 13.6 의 stepwise ascent 는 joint mode — 다른 용도.

4.5 정규 근사 구성

Mode \(\widehat{(\mu, \log\sigma, \log\tau)}\) 에서 Hessian 계산 → 정규 근사.

\(\theta_j\)\((\mu, \sigma, \tau)\) 조건부로 정규 공액 → 식 (13.9) 의 분해 활용.

전체 사후 근사:

\[ p(\theta, \mu, \sigma, \tau \mid y) \approx p_{\mathrm{approx}}(\mu, \sigma, \tau \mid y) \cdot \prod_j \mathrm{N}(\theta_j \mid \widehat{\theta}_j(\mu, \sigma, \tau), V_{\theta_j}(\mu, \sigma, \tau)) \]

3 차원 정규 근사 + 8 차원 조건부 공액 = 11 차원 전체 근사.

4.6 샘플링 비교

동일 데이터, 두 방법:

방법 장점 단점
§ 11.6 Gibbs 정확 수렴 확인 필요
§ 13.6 Mode + Laplace 빠름 경계·비정규 편향

실무 선택:

  • 신속 탐색: § 13.6.
  • 최종 추론: § 11.6.
  • \(J\) (\(> 100\)) 에서 Gibbs 비쌀 때: § 13.6 이 유일 옵션.

5 세 절을 관통하는 직관 모음

5.1 “증강 + 마지널화” 의 보편 패턴

EM, conditional approximation, hierarchical decomposition 모두 같은 구조:

  1. 증강: 전체 \(p(\gamma, \phi \mid y)\) 고려.
  2. 마지널화: \(\gamma\) 를 해석적으로 (E-step) 또는 근사적으로 (식 13.9) 제거.
  3. 최적화: \(\phi\) 의 주변 양에 대해.

이 패턴이 Bayesian computation 의 근간. VI (§ 13.7) 도 같은 구조의 일반화.

5.2 Variational Perspective

EM 을 VI 의 특수 경우로 볼 수 있다.

\(q(\gamma)\) 를 free 로 두고 ELBO:

\[ \mathrm{ELBO}(q, \phi) = \mathbb{E}_q[\log p(\gamma, \phi \mid y) - \log q(\gamma)] \]

EM:

  • E-step: \(q(\gamma) = p(\gamma \mid \phi^{\mathrm{old}}, y)\) (ELBO 의 \(\gamma\) 최대화).
  • M-step: \(\phi\) 최대화 (ELBO 의 \(\phi\) 최대화).

둘 다 ELBO 증가 → 단조 증가 보장.

\(q(\gamma)\) 제약 없으면 EM = coordinate ascent VI.

5.3 왜 공액이 중요한가

E-step 이 해석적 이려면: \(p(\gamma \mid \phi, y)\) 가 표준 분포.

  • 정규 혼합 → 잠재 \(V_i\) 의 역감마 조건부.
  • 혼합 모형 → 이산 잠재의 다항.
  • 계층 정규 → \(\theta_j\) 의 정규 조건부.

이게 “partially conjugate” 모형 EM 의 위력. 비공액이면 E-step 자체가 수치 적분 → Monte Carlo EM.

6 코드 — 정규 모형 EM 구현

6.1 데이터

import numpy as np
rng = np.random.default_rng(132)

# 정규 관측
mu_true = 5.0
sigma_true = 2.0
n = 50
y = rng.normal(mu_true, sigma_true, n)
y_bar = y.mean()

# Prior: mu ~ N(0, 100), log sigma uniform
mu_0 = 0.0
tau_0_sq = 100.0

6.2 EM 구현

def em_normal(y, mu_0, tau_0_sq, n_iter=50, tol=1e-6):
    n = len(y)
    y_bar = y.mean()
    mu_old = y_bar  # 초기값 = 표본 평균
    history = [mu_old]

    for t in range(n_iter):
        # E-step: E_old(1/sigma^2) = 1 / s^2_mu_old
        s2_mu_old = ((y - mu_old)**2).mean()

        # M-step: precision-weighted mean
        prec_prior = 1 / tau_0_sq
        prec_data = n / s2_mu_old
        mu_new = (prec_prior * mu_0 + prec_data * y_bar) / (prec_prior + prec_data)

        history.append(mu_new)
        if abs(mu_new - mu_old) < tol:
            print(f"Converged at iter {t+1}")
            break
        mu_old = mu_new

    return mu_new, history

mu_hat, hist = em_normal(y, mu_0, tau_0_sq)
print(f"EM mu_hat: {mu_hat:.4f}")
print(f"True mu: {mu_true}")
print(f"Sample mean: {y_bar:.4f}")

기대 결과: \(\widehat{\mu}\) 가 표본 평균 근처. Prior 가 weakly informative 이므로.

6.3 주변 사후 단조 증가 검증

from scipy.special import gammaln

def log_marginal_posterior(mu, y, mu_0, tau_0_sq):
    # p(mu|y) = int p(mu, sigma|y) d sigma
    # 주변화 결과: Student-t like
    n = len(y)
    S = ((y - mu)**2).sum()
    # p(mu|y) propto (S)^{-n/2} * exp(-(mu-mu_0)^2/(2 tau_0_sq))
    log_lik_marginal = -0.5 * n * np.log(S)
    log_prior = -0.5 * (mu - mu_0)**2 / tau_0_sq
    return log_lik_marginal + log_prior

log_posts = [log_marginal_posterior(m, y, mu_0, tau_0_sq) for m in hist]
print("\n주변 log-posterior 단조 증가 확인:")
for t, lp in enumerate(log_posts):
    print(f"  Iter {t}: mu = {hist[t]:.4f}, log p = {lp:.4f}")

\(\log p\) 가 매 반복 증가 또는 같음 확인 — EM 의 기본 성질.

6.4 MCMC 비교

# Metropolis 로 직접 샘플
from scipy.stats import norm as norm_dist

def log_full_joint(mu, log_sigma, y, mu_0, tau_0_sq):
    sigma = np.exp(log_sigma)
    log_lik = norm_dist.logpdf(y, mu, sigma).sum()
    log_prior = -0.5 * (mu - mu_0)**2 / tau_0_sq
    return log_lik + log_prior  # Jacobian for log sigma is 1

n_iter = 10_000
current = np.array([y_bar, np.log(y.std())])
samples = np.zeros((n_iter, 2))
for t in range(n_iter):
    proposal = current + rng.normal(0, [0.3, 0.3])
    log_r = log_full_joint(*proposal, y, mu_0, tau_0_sq) - log_full_joint(*current, y, mu_0, tau_0_sq)
    if np.log(rng.uniform()) < log_r:
        current = proposal
    samples[t] = current

burn = n_iter // 2
mu_mcmc = samples[burn:, 0]
print(f"\nMCMC 비교:")
print(f"  평균: {mu_mcmc.mean():.4f}")
print(f"  95% 구간: [{np.quantile(mu_mcmc, 0.025):.4f}, {np.quantile(mu_mcmc, 0.975):.4f}]")
print(f"  EM 점 추정: {mu_hat:.4f}")

EM 이 MCMC 평균에 근접. EM 은 점 추정, MCMC 는 분포 전체.

7 실전 체크리스트

§ 13.4~13.6 의 교훈을 실무 절차로:

  1. 잠재 변수 식별\(\gamma\) 를 marginalize 할 것인가.
  2. E-step 해석성 확인 — 공액이면 EM, 아니면 Monte Carlo EM.
  3. 단조 증가 디버깅 — 각 반복 \(\log p\) 감소하면 버그.
  4. 여러 시작점 — Local mode 회피.
  5. ECM 선호 — 고차원에서 M-step 분해.
  6. SEM 으로 분산 — 점 추정 + 불확실성.
  7. PX-EM — stuck 상태 탈출.
  8. 조건부 분해 활용 — 식 (13.9) 로 주변 근사.
  9. Importance 보정 — 정확성 필요 시.
  10. Gibbs/HMC 와 교차 검증 — 중요 결론.

8 관련 주제

선행 지식

Ch.13 후속

  • 02-13-3-* — § 13.7~13.8 심화 (VI·EP)
  • 02-13-4-* — § 13.10~13.12

후속 주제

  • Ch.18 Missing Data — EM 의 본격 응용
  • Ch.22 Finite Mixture Models — EM 의 고전 예제
  • Ch.15 Hierarchical Linear Models — Laplace 적용

관련 개념

  • Dempster, Laird, Rubin (1977) — EM 원저
  • Meng & Rubin (1993) — ECM
  • Liu & Rubin (1994) — ECME
  • Meng & Van Dyk (1997) — AECM
  • Meng & Rubin (1991) — SEM
  • Liu, Rubin, Wu (1998) — Parameter expansion EM
  • Wu (1983) — EM 수렴 조건
  • Rue, Martino, Chopin (2009) — INLA

Subscribe

Enjoy this blog? Get notified of new posts by email: