
97번 SiLU 는 . Mish (Misra 2019) 는 sigmoid-v1 대신 softplus + tanh 조합:
YOLOv4 가 채택하면서 유명해짐. 실험적으로 SiLU/GELU 와 성능 거의 동등하지만 계산이 약간 무거움.
log(1 + exp(x)) 는 큰 양수에서 overflow. 안정한 구현:
np.log1p(np.exp(-|x|)) 를 사용하면 정확.
함수 silu-swish-v2(x) 를 완성하세요.
sp = np.maximum(x, 0) + np.log1p(np.exp(-np.abs(x))) # stable softplus
return x * np.tanh(sp)
| # | 이름 | 검증 |
|---|---|---|
| 1 | shape 유지 | |
| 2 | silu-swish-v2(0) = 0 | |
| 3 | 큰 양수 → ≈ x | |
| 4 | 큰 음수 → ≈ 0 | |
| 5 | 수치 안정 (x=500) | inf/nan 없음 |
| 6 | 공식 일치 | naive x * tanh(log(1+exp(x))) 와 비교 (작은 x) |
코드를 작성하고 Run 을 눌러보세요.