Tanh 활성화 함수가 데이터를 0으로 중심화하여 신경망 훈련을 개선하는 방법을 알아보세요. RNN, GAN 및 Ultralytics 모델에서의 역할을 살펴보세요.
탄젠트 (쌍곡선 탄젠트) 함수는 인공 신경망의 숨겨진 층에서 널리 사용되는 수학적 활성화 함수입니다. 이 함수는 입력값을 -1과 1 사이의 출력 범위로 변환하여 시그모이드 함수와 유사한 S자 곡선을 생성하지만 중심점이 0에 위치합니다. 이 중심점 0 특 성은 매우 중요합니다. 왜냐하면 이 특성은 모델이 더 효율적으로 학습할 수 있도록 뉴런의 출력을 정규화하고, 모델을 통해 흐르는 데이터가 0을 중심으로 균형 잡히도록 보장하기 때문입니다. 시그모이드 함수와 유사한 S자 곡선을 생성하지만 중심이 0에 위치합니다. 이 0 중심 특성은 신경 세포의 출력을 정규화하여 네트워크를 통과하는 데이터의 평균이 0에 가까워지도록 함으로써 모델이 더 효율적으로 학습할 수 있게 하므로 매우 중요합니다. 음수 값을 명시적으로 처리함으로써 탄젠트 함수는 신경망이 데이터 내의 더 복잡한 패턴과 관계를 포착하는 데 도움을 줍니다.
딥 러닝 모델의 구조에서 활성화 함수는 비선형성을 도입하여 네트워크가 서로 다른 데이터 클래스 간의 복잡한 경계를 학습할 수 있게 합니다. 탄젠트 하이퍼볼릭(Tanh)과 같은 함수가 없다면, 신경망은 층 수가 얼마나 많든 상관없이 단순한 선형 회귀 모델처럼 행동할 것입니다. 탄젠트 하이퍼볼릭 함수는 특히 순환 신경망(RNN) 과 일부 유형의 전방전파 신경망에서 효과적입니다. 균형 잡히고 0을 중심으로 한 활성화 분포를 유지함으로써 역전파 과정에서 발생하는 소멸하는 기울기 문제를 방지하는 데 도움이 됩니다.
입력이 -1에서 1 사이의 범위로 매핑될 때, 매우 음수인 입력은 음수 출력을, 매우 양수인 입력은 양수 출력을 생성합니다. 이는 값을 0과 1 사이로 압축하는 시그모이드 함수와 다릅니다. 탄젠트 하이퍼볼릭 함수 출력은 0을 중심으로 대칭적이기 때문에, 후속 계층의 가중치가 일관되게 한 방향으로만 이동하지 않음으로써(최적화에서 "지그재그 경로"로 알려진 현상) 경사 하강 과정이 종종 더 빠르게 수렴합니다.
Tanh 함수는 특정 아키텍처와 사용 사례에서, 특히 시퀀스 처리와 연속 값 추정이 필요한 경우에 여전히 핵심적인 역할을 수행합니다.
Tanh 함수를 다른 일반적인 함수와 구분하는 것은 언제 사용해야 하는지 이해하는 데 도움이 됩니다.
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 신경망의 각 계층을 수동으로 코딩할 필요 없이 다양한 모델 하이퍼파라미터 실험, 훈련 메트릭 시각화, 솔루션 배포를 위한 간소화된 환경을 제공합니다.