
pos_weight [medium]v1 BCE 는 양/음성 샘플을 동등 취급. 클래스 불균형 (ex. 이상 탐지: 양성 1%) 에서는 양성을 놓치는 비용이 훨씬 큼. pos_weight 로 양성 항을 증폭:
BCEWithLogitsLoss(pos_weight=...) 내장.기본 BCE 처럼 clip 필요 (log(0) 방지):
p = np.clip(p, eps, 1 - eps)
bce_per_sample = -(w * y * np.log(p) + (1 - y) * np.log(1 - p))
return bce_per_sample.mean()
함수 weighted_bce(p, y, pos_weight) 를 완성하세요.
p, y shape (N,), 스칼라 pos_weight.float.eps = 1e-7 로 clip.| # | 이름 | 검증 |
|---|---|---|
| 1 | float 반환 | |
| 2 | pos_weight=1 → v1 BCE 와 동일 | |
| 3 | 완벽 예측 → ~0 | |
| 4 | pos_weight 클수록 양성 오분류 페널티 ↑ | |
| 5 | pos_weight 는 음성 loss 는 안 건드림 | |
| 6 | clip → log(0) 방지 | p=0, y=1 이어도 finite |
코드를 작성하고 Run 을 눌러보세요.