← 문제 목록/하이퍼볼릭 탄젠트 (tanh)

하이퍼볼릭 탄젠트 (tanh)

분류 기초 · easy

preview

하이퍼볼릭 탄젠트 (Tanh)

시그모이드(6번) 의 사촌. 출력 범위가 (1,1)(-1, 1) 이라 0 중심. 그래서 입력이 0 근처일 때 그래디언트가 더 커서, 히든 레이어 활성화로 시그모이드보다 자주 선호됐습니다 (ReLU 이전 시대).

tanh(z)=ezezez+ez=1e2z1+e2z\tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}} = \frac{1 - e^{-2z}}{1 + e^{-2z}}

시그모이드와의 관계:

tanh(z)=2σ(2z)1\tanh(z) = 2\,\sigma(2z) - 1

성질

  • tanh(0)=0\tanh(0) = 0
  • tanh(+)=1\tanh(+\infty) = 1, tanh()=1\tanh(-\infty) = -1
  • 홀함수: tanh(z)=tanh(z)\tanh(-z) = -\tanh(z)
  • 미분: tanh(z)=1tanh2(z)\tanh'(z) = 1 - \tanh^2(z)

과제

함수 tanh(z) 를 완성하세요.

  • 스칼라 또는 NumPy 배열 입력.
  • np.tanh 를 직접 쓰지 말고, np.exp 로 수식 구현.
  • 반환: 같은 shape, 값 범위 (1,1)(-1, 1).

테스트 케이스

#이름입력기대
1tanh(0) = 000
2큰 양수 → 110≈ 1.0
3큰 음수 → -1-10≈ -1.0
4홀함수tanh(-z) = -tanh(z)성립
5벡터 입력[-1, 0, 1][-0.7616, 0, 0.7616]
6np.tanh 사용 금지소스에 np.tanh 없음
Loading...

코드를 작성하고 Run 을 눌러보세요.