
Softmax Jacobian [medium]
v1 소프트맥스 는 forward. 역전파에서 필요한 건 Jacobian Jij=∂xj∂pi:
∂xj∂pi=pi(δij−pj)={pi(1−pi)−pipji=ji=j
행렬 형태:
J=diag(p)−pp⊤
- 대각: pi−pi2=pi(1−pi)
- 비대각: −pipj
성질
- 대칭: J=J⊤.
- 행/열 합 = 0: 확률 합이 1 로 제약된 결과 — any probability conservation identity.
- 양의 준정부호: J 의 eigenvalue 는 모두 ≥0 — softmax가 convex potential 의 그래디언트이기 때문.
과제
함수 softmax_jacobian(x) 를 완성하세요.
테스트 케이스
| # | 이름 | 검증 |
|---|
| 1 | shape (n, n) | |
| 2 | 대칭 | J == J.T |
| 3 | 행 합 = 0 | probability conservation |
| 4 | 대각 = p(1-p) | |
| 5 | 비대각 = -p_i p_j | |
| 6 | 균등 logits → 대각 균일 | |
| 7 | 수치 안정 (큰 logits 에서 finite) | |