
Product of Experts (기하 평균 앙상블)
55번 Soft Voting 은 확률의 산술 평균 으로 앙상블. Product of Experts (PoE) 는 기하 평균:
pˉc∝(∏m=1Mpm,c)1/M
정규화 (∑cpˉc=1) 후 argmax.
산술 평균 vs 기하 평균
- Arithmetic (soft vote): 한 분류기가 아주 낮은 확률 줘도, 다른 분류기가 높으면 평균은 살아남음 → OR 같은 합의.
- Geometric (PoE): 하나라도 0에 가깝게 두면 전체 0 → AND 같은 합의. 한 분류기의 veto 가 강하게 반영.
→ PoE 는 "모든 전문가가 동의해야" 높은 점수. 에너지 기반 모델(EBM), 언어 모델 앙상블에서 자주 쓰임.
로그 공간 구현 팁
언더플로우 방지: 로그 공간에서 평균 후 softmax-v1.
logpˉc=M1∑mlogpm,c−logsumexpc(⋅)
과제
함수 poe_vote(probs) 를 완성하세요.
probs shape (M, N, C), 각 엔트리 ∈(0,1].
- 반환:
(N,) 정수 argmax.
- 힌트:
log(probs).mean(axis=0) → argmax(axis=1). (argmax는 정규화 불필요)
테스트 케이스
| # | 이름 | 검증 |
|---|
| 1 | shape | (N,) |
| 2 | M=1 → argmax | |
| 3 | 한 전문가 veto → PoE ≠ soft | AND 성질 |
| 4 | 모두 동일 분포 → 그대로 | |
| 5 | 손계산 일치 | toy 예제 |