Yolo 비전 선전
선전
지금 참여하기
용어집

Tanh (쌍곡 탄젠트)

딥 러닝에서 탄(Tanh) 활성화 함수의 작동 방식을 살펴보세요. Ultralytics 통해 RNN과 GAN에서 제로 중심 범위가 훈련 효율성을 향상시키는 이유를 알아보세요.

탄젠트 (쌍곡선 탄젠트) 함수는 인공 신경망의 숨겨진 층에서 널리 사용되는 수학적 활성화 함수입니다. 이 함수는 입력값을 -1과 1 사이의 출력 범위로 변환하여 시그모이드 함수와 유사한 S자 곡선을 생성하지만 중심점이 0에 위치합니다. 이 중심점 0 특 성은 매우 중요합니다. 왜냐하면 이 특성은 모델이 더 효율적으로 학습할 수 있도록 뉴런의 출력을 정규화하고, 모델을 통해 흐르는 데이터가 0을 중심으로 균형 잡히도록 보장하기 때문입니다. 시그모이드 함수와 유사한 S자 곡선을 생성하지만 중심이 0에 위치합니다. 이 0 중심 특성은 신경 세포의 출력을 정규화하여 네트워크를 통과하는 데이터의 평균이 0에 가까워지도록 함으로써 모델이 더 효율적으로 학습할 수 있게 하므로 매우 중요합니다. 음수 값을 명시적으로 처리함으로써 탄젠트 함수는 신경망이 데이터 내의 더 복잡한 패턴과 관계를 포착하는 데 도움을 줍니다.

딥 러닝에서 탄의 메커니즘

딥 러닝 모델의 구조에서 활성화 함수는 비선형성을 도입하여 네트워크가 서로 다른 데이터 클래스 간의 복잡한 경계를 학습할 수 있게 합니다. 탄젠트 하이퍼볼릭(Tanh)과 같은 함수가 없다면, 신경망은 층 수가 얼마나 많든 상관없이 단순한 선형 회귀 모델처럼 행동할 것입니다. 탄젠트 하이퍼볼릭 함수는 특히 순환 신경망(RNN) 과 일부 유형의 전방전파 신경망에서 효과적입니다. 균형 잡히고 0을 중심으로 한 활성화 분포를 유지함으로써 역전파 과정에서 발생하는 소멸하는 기울기 문제를 방지하는 데 도움이 됩니다.

입력이 -1에서 1 사이의 범위로 매핑될 때, 매우 음수인 입력은 음수 출력을, 매우 양수인 입력은 양수 출력을 생성합니다. 이는 값을 0과 1 사이로 압축하는 시그모이드 함수와 다릅니다. 탄젠트 하이퍼볼릭 함수 출력은 0을 중심으로 대칭적이기 때문에, 후속 계층의 가중치가 일관되게 한 방향으로만 이동하지 않음으로써(최적화에서 "지그재그 경로"로 알려진 현상) 경사 하강 과정이 종종 더 빠르게 수렴합니다.

실제 애플리케이션

Tanh 함수는 특정 아키텍처와 사용 사례에서, 특히 시퀀스 처리와 연속 값 추정이 필요한 경우에 여전히 핵심적인 역할을 수행합니다.

  • 자연어 처리(NLP): 장기 단기 기억(LSTM) 네트워크 및 게이트 재귀 유닛(GRU)과 같은 아키텍처에서 게이트 재귀 유닛(GRU)과 같은 아키텍처에서는 정보 흐름을 조절하기 위한 주요 활성화 함수로 탄(Tanh)이 사용됩니다. 예를 들어, 모델이 English 텍스트를 번역하는 기계 번역 작업에서 탄은 LSTM의 내부 게이트가 이전 문맥(메모리)을 얼마나 유지하거나 잊어야 할지 결정하는 데 도움을 줍니다. 이를 통해 모델은 문장 구조 내 장기적 의존성을 처리할 수 있습니다.
  • 생성적 적대적 네트워크(GAN): 많은 생성적 적대적 네트워크의 생성기 구성 요소에서, 출력 레이어의 최종 활성화 함수로 탄젠트 하이퍼볼릭(Tanh)이 자주 사용됩니다. 이미지는 전처리 과정에서 종종 -1에서 1 사이의 범위로 정규화되므로, Tanh를 사용하면 생성기가 동일한 유효 범위 내의 픽셀 값을 생성하도록 보장합니다. 이 기술은 텍스트-이미지 생성 같은 응용 분야를 위해 현실적인 이미지를 합성하는 데 도움이 됩니다.

비교: 탄젠트 함수 vs. 시그모이드 함수 vs. ReLU 함수

Tanh 함수를 다른 일반적인 함수와 구분하는 것은 언제 사용해야 하는지 이해하는 데 도움이 됩니다.

  • 탄젠트 함수와 시그모이드 함수: 둘 다 S자형 곡선이다. 그러나 시그모이드는 0과 1 사이의 값을 출력하므로, 탄젠트 함수보다 기울기가 더 빨리 사라질 수 있다. 시그모이드는 일반적으로 이진 분류 문제(확률 예측)의 최종 출력층에 사용되며, 탄젠트 함수는 RNN의 숨겨진 층에 선호된다.
  • 탄젠트 하이퍼볼릭(Tanh) 대 리큘(ReLU, Rectified Linear Unit): YOLO26과 같은 현대적 컨볼루션 신경망(CNN)에서는 은닉층에 탄젠트 하이퍼볼릭보다 리큘 및 그 변형(예: SiLU)이 일반적으로 선호됩니다. 이는 리큘이 매우 깊은 네트워크에서 소멸하는 기울기 문제를 더 효과적으로 회피하고 계산 비용이 더 저렴하기 때문입니다. Tanh는 지수 함수적 계산이 포함되어 계산 비용이 더 많이 듭니다.

PyTorch에서 활성화 함수 구현하기

YOLO26과 같은 고급 모델은 활성화 함수 정의를 내부 구성 파일 내에서 처리하지만, PyTorch 사용하는 방법을 이해하는 것은 맞춤형 모델 구축에 유용합니다.

import torch
import torch.nn as nn

# Define a sample input tensor with positive and negative values
input_data = torch.tensor([-2.0, -0.5, 0.0, 0.5, 2.0])

# Initialize the Tanh activation function
tanh = nn.Tanh()

# Apply Tanh to the input data
output = tanh(input_data)

# Print results to see values squashed between -1 and 1
print(f"Input: {input_data}")
print(f"Output: {output}")

사용자가 맞춤형 아키텍처를 훈련하거나 데이터셋을 효율적으로 관리하고자 할 때, Ultralytics 신경망의 각 계층을 수동으로 코딩할 필요 없이 다양한 모델 하이퍼파라미터 실험, 훈련 메트릭 시각화, 솔루션 배포를 위한 간소화된 환경을 제공합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기