← 문제 목록/Geometric Mean Voting (product-of-experts) [medium]
문제 해설

Geometric Mean Voting (product-of-experts) [medium]

앙상블 · medium

preview

Geometric Mean Voting [medium]

v1 산술평균 soft-vote 는 arithmetic mean. 하나가 p=0.0p = 0.0 을 주고 나머지가 p=1.0p = 1.0 이면 산술평균은 (M1)/M(M-1)/M → 여전히 "살짝 맞음". Geometric mean 은 한 분류기의 거부권 을 존중:

p^i,k=(m=1Mpi,k(m))1/M=exp ⁣(1Mmlogpi,k(m))\hat{p}_{i,k} = \left(\prod_{m=1}^{M} p^{(m)}_{i,k}\right)^{1/M} = \exp\!\left(\frac{1}{M} \sum_m \log p^{(m)}_{i,k}\right)

한 분류기라도 pk0p_k \approx 0 이면 전체 제곱근도 0 → 모두 동의할 때만 높음. "Product of experts" (Hinton 2002) 의 바탕.

장단점

ArithmeticGeometric
의견 충돌 시부드러운 타협보수적 (veto 효과)
오버컨피던트 한 분류기영향 중간강한 영향
수치 안정simple meanlog 공간 필요 (underflow)

구현

로그 공간에서 계산 → 정규화:

log_p = log(clip(probs, ε, 1))
log_avg = log_p.mean(axis=0)
avg = exp(log_avg)
pred = argmax(avg, axis=1)

정규화는 argmax 불변이라 필수 아님 (비용 절감).

과제

함수 geometric_vote(probs, epsilon=1e-12) 를 완성하세요.

  • probs shape (M, N, K), 확률 (합 1).
  • epsilon: log(0) 방지용 클리핑.
  • 반환: shape (N,) 예측 레이블.
  • 힌트: np.logmean(axis=0)argmax(axis=1).

테스트 케이스

#이름검증
1shape (N,)
2만장일치 → 그 클래스
3Veto 효과: 한 분류기 p=0p=0 → 그 클래스 선택 안 됨arithmetic 과 다름
4arithmetic mean 과의 결정 차이 케이스설계 예제
50 확률 clip → NaN 없음
61 분류기 case → argmax 와 동일
7레이블 ∈ [0, K)
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.