
91번 log-softmax-v1 의 자연스러운 다음 단계. 분류 문제에서 정답 클래스의 확률에 음의 로그 를 취한 것이 손실:
p[i, y_i].수치 안정을 위해 log(softmax-v1) 를 직접 쓰지 않고 logits → log_softmax-v1 → gather 한 번에:
이게 PyTorch F.cross_entropy-v1 의 실제 내부 구현.
함수 nll_loss(logits, y) 를 완성하세요.
logits shape (N, C), y shape (N,) 정수 [0, C).float (배치 평균).m = logits.max(axis=1, keepdims=True) 안정화.lse = m.squeeze() + np.log(np.exp(logits - m).sum(axis=1)).log_p_y = logits[np.arange(N), y] - lse.return -log_p_y.mean().| # | 이름 | 검증 |
|---|---|---|
| 1 | 완벽 예측 → ~0 | 정답 logit ≫ 나머지 |
| 2 | 균등 logits → log(C) | |
| 3 | Python float 반환 | |
| 4 | 큰 logit 에서 finite (log-sum-exp trick) | |
| 5 | 손계산 일치 |
코드를 작성하고 Run 을 눌러보세요.