Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Tanh (Hyperbolic Tangent)

Tanh는 입력을 0을 중심으로 하는 S자 곡선에서 −1과 1 사이의 값으로 매핑합니다. 수식, 그래디언트, RNN, GAN, 제어 분야에서의 활용, PyTorch 코드를 다룹니다.

쌍곡탄젠트 tanh(x) = (eˣ − e^(−x)) / (eˣ + e^(−x))는 모든 실수를 S자형 곡선을 따라 −1과 1 사이의 값으로 매핑하는 활성화 함수입니다. 이는 크기를 조정한 시그모이드인 tanh(x) = 2σ(2x) − 1이므로 시그모이드와 형태는 같지만, 음수 입력에는 음수 값을 반환하고 원점에서 기울기가 1입니다. tanh는 1990년대와 2000년대에 신경망의 표준 은닉층 활성화 함수였습니다. 오늘날에는 순환 신경망(RNN)의 은닉 상태를 구성하고, 이미지 생성기와 제어 정책의 출력을 제한하며, 더 큰 모델 안에서 값이 범위를 벗어나지 않도록 합니다.

수식 및 특성#

tanh는 tanh(−x) = −tanh(x)인 홀함수이며 tanh(0) = 0입니다. 0 근처에서는 거의 선형인 tanh(x) ≈ x의 형태를 보이고, 약 ±3을 넘으면 ±1에 가까워지며 평평해집니다. 도함수 1 − tanh²(x)는 원점에서 1로, 시그모이드의 최대값 0.25보다 네 배 크며, 곡선이 포화될수록 0에 가까워집니다. 아래 PyTorch 코드는 tanh와 그 기울기를 계산한 다음, 평균이 0인 입력에서 tanh와 시그모이드의 평균 출력을 비교합니다.

import torch

x = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0], requires_grad=True)
y = torch.tanh(x)

# The derivative of tanh is 1 - tanh(x)^2, which peaks at 1 when x = 0
y.sum().backward()
print(f"Tanh:     {[round(v, 3) for v in y.tolist()]}")
print(f"Gradient: {[round(v, 3) for v in x.grad.tolist()]}")

# For zero-mean inputs, tanh outputs average near 0 and sigmoid outputs near 0.5
torch.manual_seed(0)
z = torch.randn(100_000)
print(f"Mean output, tanh: {torch.tanh(z).mean():.3f}, sigmoid: {torch.sigmoid(z).mean():.3f}")

이 코드는 tanh 값 [-0.995, -0.762, 0.0, 0.762, 0.995]과 기울기 [0.01, 0.42, 1.0, 0.42, 0.01]을 출력하므로, ±3에서의 기울기는 0에서의 기울기의 100분의 1입니다. 표준 정규분포를 따르는 입력 100,000개에서 tanh 출력의 평균은 약 0.0이고 시그모이드 출력의 평균은 약 0.5입니다.

출력을 0 중심으로 두면 좋은 이유#

뉴런의 가중치 기울기는 입력에 비례합니다. 시그모이드 출력처럼 모든 입력이 양수이면 각 업데이트에서 뉴런의 모든 가중치 기울기가 같은 부호를 가지므로, 가중치가 함께 증가하거나 감소하고 지그재그로 움직여야 최적값에 도달합니다. tanh 출력은 대체로 같은 비율의 양수와 음수로 이루어지므로 각 가중치를 독립적으로 조정할 수 있고, 다음 층의 입력을 평균이 0에 가까운 상태로 유지하여 경사 하강법의 수렴을 빠르게 합니다. 이러한 이유로 Yann LeCun과 동료들은 1998년 가이드 "Efficient BackProp"에서 은닉층에 로지스틱 시그모이드보다 대칭 함수를 사용할 것을 권장했으며, 구체적으로 1.7159 · tanh(2x/3) 형태로 크기를 조정해 제시했습니다. tanh는 여전히 포화되며, tanh 층을 여러 개 쌓으면 역전파 중 기울기가 작아지는 기울기 소실 문제가 발생합니다.

tanh의 사용 사례#

  • 순환 네트워크: 단순 RNN은 hₜ = tanh(Wxₜ + Uhₜ₋₁ + b)와 같이 상태를 업데이트하며, tanh는 PyTorch의 nn.RNN에서 기본 비선형 함수입니다. LSTM 및 GRU 셀에서 tanh는 후보 콘텐츠를 생성하고, LSTM에서는 출력 전에 셀 상태를 압축합니다. 시그모이드 게이트는 그중 어느 정도를 사용할지 결정합니다. 값의 범위가 제한되므로 단계마다 다시 입력되는 상태가 무한히 커지지 않습니다.
  • GAN 생성기: DCGAN은 생성기의 마지막에 tanh를 적용하여 생성된 픽셀을 −1과 1 사이로 제한합니다. 이는 학습 이미지의 크기를 조정하는 범위이며, 이후의 여러 생성적 적대 신경망(GAN)도 이 방식을 따릅니다.
  • 제한된 동작: 강화 학습의 연속 제어 정책은 출력을 tanh에 통과시켜 모든 명령이 액추에이터 한계 안에 있도록 합니다. Soft Actor-Critic은 가우시안 정책에서 추출한 샘플을 이 방식으로 압축합니다.
  • 로짓 소프트 캡핑: Google의 Gemma 2 언어 모델은 cap · tanh(logits / cap)을 계산하며, 어텐션 로짓에는 50, 최종 로짓에는 30의 cap을 사용합니다. 작은 로짓은 거의 변하지 않고 통과하며, 큰 로짓도 cap을 초과할 수 없습니다.
  • GELU 근사: 0.5x(1 + tanh(√(2/π)(x + 0.044715x³)))는 GELU를 매우 가깝게 근사하며, 원본 GPT-2 및 BERT 코드는 이 방식으로 GELU를 계산합니다.
  • 정규화 흐름: RealNVP 계열 흐름은 각 스케일 네트워크의 마지막에 tanh를 적용하는 경우가 많습니다. 이에 따라 각 결합층은 입력을 e⁻¹과 e 사이의 계수로 스케일링하여 학습의 수치적 안정성을 유지합니다. YOLO26 포즈 추정 모델은 잔차 로그 가능도 추정 손실로 학습합니다. 이 손실의 6층 RealNVP 흐름은 모든 스케일 네트워크의 마지막에 tanh를 적용하며, 예측 키포인트가 정답에서 얼마나 벗어나는지 모델링합니다.
  • 시그모이드: tanh는 시그모이드의 범위를 −1부터 1까지 늘리고 가로 방향으로 두 배 압축한 함수이며, 최대 기울기를 0.25에서 1로 높입니다. 시그모이드의 0~1 범위는 확률과 게이트를 표현하기에 적합합니다.
  • Hardtanh: 입력을 [−1, 1]로 클리핑하는 구간별 선형 함수입니다. 계산 비용이 더 적으며, 해당 범위 밖의 기울기는 정확히 0입니다.
  • ReLU: max(0, x)는 양수 입력에서 포화되지 않고 비교 연산 한 번만 필요하므로, ReLU와 SiLU 같은 매끄러운 후속 함수가 심층 합성곱 신경망(CNN)과 트랜스포머의 은닉층에서 tanh를 대체했습니다. AlexNet 논문에서는 ReLU를 사용한 4층 CNN이 tanh 유닛을 사용한 동일 네트워크보다 6배 빠르게 CIFAR-10에서 학습 오차 25%에 도달했습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요