Tanh (Hyperbolic Tangent)
Tanh 활성화 함수가 데이터를 0 중심으로 조정하여 신경망 학습을 어떻게 향상시키는지 배우세요. RNN, GAN 및 Ultralytics YOLO26 모델에서의 역할을 살펴보세요.
Tanh(쌍곡 탄젠트) 함수는 인공 신경망의 은닉층에서 널리 사용되는 수학적 활성화 함수입니다. 이 함수는 입력값을 -1과 1 사이의 출력 범위로 변환하며, 시그모이드(sigmoid) 함수와 유사하지만 0을 중심으로 하는 S자형 곡선을 생성합니다. 이 제로 중심(zero-centering) 특성은 신경망을 통과하는 데이터의 평균을 0에 가깝게 정규화함으로써 뉴런의 출력을 안정화하고 모델이 더 효율적으로 학습할 수 있도록 하므로 매우 중요합니다. Tanh는 음수 값을 명시적으로 처리함으로써 신경망이 데이터 내의 더 복잡한 패턴과 관계를 포착하도록 돕습니다.
Link to this section딥러닝에서 Tanh의 메커니즘#
In the architecture of deep learning models, activation functions introduce non-linearity, enabling the network to learn complex boundaries between different classes of data. Without functions like Tanh, a neural network would behave like a simple linear regression model, regardless of how many layers it has. The Tanh function is particularly effective in recurrent neural networks (RNN) and certain types of feed-forward networks where maintaining a balanced, zero-centered activation distribution helps prevent the vanishing gradient problem during backpropagation.
입력값이 -1에서 1 범위로 매핑될 때, 강한 음수 입력은 음수 출력을, 강한 양수 입력은 양수 출력을 생성합니다. 이는 값을 0에서 1 사이로 압축하는 Sigmoid 함수와는 다릅니다. Tanh 출력은 0을 중심으로 대칭적이기 때문에, 후속 층의 가중치가 일관되게 한 방향으로만 움직이지 않아(최적화 과정에서 '지그재그' 경로라고 알려진 현상) 경사 하강법 과정이 더 빠르게 수렴하는 경우가 많습니다.
Link to this section실제 애플리케이션 사례#
Tanh는 시퀀스 처리 및 연속 값 추정이 필요한 특정 아키텍처와 사용 사례에서 계속해서 중요한 역할을 수행하고 있습니다.
- 자연어 처리(NLP): Long Short-Term Memory(LSTM) 네트워크나 Gated Recurrent Units(GRU)와 같은 아키텍처에서 Tanh는 정보 흐름을 조절하는 주요 활성화 함수로 사용됩니다. 예를 들어 모델이 영어를 프랑스어로 번역하는 기계 번역 작업에서, Tanh는 LSTM의 내부 게이트가 이전 컨텍스트(메모리) 중 얼마만큼을 유지하거나 잊을지 결정하도록 돕습니다. 이를 통해 모델은 문장 구조 내의 장기 의존성을 처리할 수 있습니다.
- 생성적 적대 신경망(GAN): 많은 생성적 적대 신경망의 생성자(generator) 구성 요소에서 Tanh는 출력층의 최종 활성화 함수로 자주 사용됩니다. 이미지는 전처리 과정에서 종종 -1에서 1 범위로 정규화되므로, Tanh를 사용하면 생성자가 동일한 유효 범위 내에서 픽셀 값을 생성하도록 보장할 수 있습니다. 이 기법은 텍스트-이미지 생성과 같은 응용 분야에서 사실적인 이미지를 합성하는 데 도움이 됩니다.
Link to this section비교: Tanh vs. Sigmoid vs. ReLU#
언제 Tanh를 사용해야 할지 이해하기 위해 다른 일반적인 함수들과 구분하는 것이 도움이 됩니다.
- Tanh vs. Sigmoid: 둘 다 S자형 곡선이지만, Sigmoid는 0과 1 사이의 값을 출력하며 이는 Tanh보다 기울기가 더 빠르게 소실되게 만들 수 있습니다. Sigmoid는 일반적으로 이진 분류 문제의 최종 출력층(확률 예측)에 사용되는 반면, Tanh는 RNN의 은닉층에 더 적합합니다.
- Tanh vs. ReLU (Rectified Linear Unit): YOLO26과 같은 현대적인 합성곱 신경망(CNN)에서는 은닉층에 Tanh보다 ReLU와 그 변형(예: SiLU)을 사용하는 것이 일반적입니다. 이는 ReLU가 매우 깊은 네트워크에서 기울기 소실 문제를 더 효과적으로 방지하고 계산 비용이 더 저렴하기 때문입니다. Tanh는 지수 계산이 포함되어 있어 계산 비용이 더 많이 듭니다.
Link to this sectionPyTorch에서 활성화 함수 구현하기#
YOLO26과 같은 고수준 모델은 구성 파일 내에서 활성화 함수 정의를 내부적으로 처리하지만, 사용자 정의 모델을 구축할 때는 PyTorch를 사용하여 Tanh를 적용하는 방법을 이해하는 것이 유용합니다.
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 Platform은 다양한 모델 하이퍼파라미터를 실험하고 학습 메트릭을 시각화하며, 신경망의 모든 층을 수동으로 코딩하지 않고도 솔루션을 배포할 수 있는 간소화된 환경을 제공합니다.






