
v1 tanh 은 직관적 공식:
하지만 이면 np.exp(z) = inf → inf/inf = NaN 폭발. 실제 신경망은 gradient clipping 이 풀리면 이런 값이 나올 수 있음 (혹은 fp16 에선 만 돼도 터짐).
부호에 따라 지수가 양수가 되는 쪽을 피함:
exp(-2z) 는 exp(2z) 는 두 형태 모두 지수의 인수가 항상 음수 이라 overflow 없음.
함수 tanh_stable(z) 를 완성하세요.
np.tanh 금지 (채점).NaN, inf 없이 반환.np.where 또는 np.sign(z) 로 두 브랜치 선택.| # | 이름 | 검증 |
|---|---|---|
| 1 | tanh_stable(0) = 0 | |
| 2 | 일반 범위 (-5~5) 에서 np.tanh 와 일치 | |
| 3 | z = 1000 → 1.0, finite | overflow 회피 |
| 4 | z = -1000 → -1.0, finite | |
| 5 | 홀함수: (극단값 포함) | |
| 6 | 2D 배열 처리 | |
| 7 | 극단 범위 [-800, 800] 에서 finite + 단조 + [-1,1] |
코드를 작성하고 Run 을 눌러보세요.