
하이퍼볼릭 탄젠트 (Tanh)
시그모이드(6번) 의 사촌. 출력 범위가 (−1,1) 이라 0 중심. 그래서 입력이 0 근처일 때 그래디언트가 더 커서, 히든 레이어 활성화로 시그모이드보다 자주 선호됐습니다 (ReLU 이전 시대).
tanh(z)=ez+e−zez−e−z=1+e−2z1−e−2z
시그모이드와의 관계:
tanh(z)=2σ(2z)−1
성질
- tanh(0)=0
- tanh(+∞)=1, tanh(−∞)=−1
- 홀함수: tanh(−z)=−tanh(z)
- 미분: tanh′(z)=1−tanh2(z)
과제
함수 tanh(z) 를 완성하세요.
- 스칼라 또는 NumPy 배열 입력.
np.tanh 를 직접 쓰지 말고, np.exp 로 수식 구현.
- 반환: 같은 shape, 값 범위 (−1,1).
테스트 케이스
| # | 이름 | 입력 | 기대 |
|---|
| 1 | tanh(0) = 0 | 0 | 0 |
| 2 | 큰 양수 → 1 | 10 | ≈ 1.0 |
| 3 | 큰 음수 → -1 | -10 | ≈ -1.0 |
| 4 | 홀함수 | tanh(-z) = -tanh(z) | 성립 |
| 5 | 벡터 입력 | [-1, 0, 1] | [-0.7616, 0, 0.7616] |
| 6 | np.tanh 사용 금지 | 소스에 np.tanh 없음 | |