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

활성화 함수

ReLU, 시그모이드, SiLU와 같은 활성화 함수가 딥 러닝을 가능하게 하는 방식을 살펴보세요. Ultralytics 이러한 함수를 활용하여 복잡한 시각적 패턴을 어떻게 파악하는지 알아보세요.

활성화 함수는 신경망(NN) 의 핵심 구성 요소로, 주어진 입력 집합에 대해 뉴런의 출력을 결정합니다. 흔히 "게이트키퍼"로 묘사되며, 뉴런이 활성화될지 (즉, 네트워크 예측에 기여할지) 비활성화될지를 결정합니다. 이러한 수학적 연산이 없다면 신경망은 단순한 선형 회귀 모델처럼 행동하여 깊이와 무관하게 복잡한 패턴을 파악하지 못할 것입니다. 비선형성을 도입함으로써 활성화 함수는 딥 러닝( DL ) 모델이 손글씨 숫자의 곡선이나 의료 영상의 미세한 이상 현상과 같은 복잡한 구조를 학습할 수 있게 합니다. 비선형성을 도입함으로써 활성화 함수는 딥 러닝(DL) 모델이 손글씨 숫자의 곡선이나 의료 영상 분석에서의 미묘한 이상 현상과 같은 복잡한 구조를 학습할 수 있게 합니다.

핵심 기능과 일반적인 유형

활성화 함수의 주요 역할은 입력 신호를 원하는 출력 범위로 매핑하고 네트워크가 생성하는 특징 맵에 복잡성을 도입하는 것이다. 개발자는 레이어의 위치와 모델 훈련 과정의 목표에 따라 특정 함수를 선택한다.

  • ReLU (Rectified Linear Unit): 현재 숨겨진 레이어에서 가장 널리 사용되는 함수입니다. 입력값이 양수일 경우 그대로 출력하고, 그렇지 않으면 0을 출력합니다. 이러한 단순성은 연산을 가속화하고, 깊은 구조를 훈련할 때 자주 발생하는 소멸하는 기울기 문제를 완화하는 데 도움이 됩니다.
  • 시그모이드: 이 함수는 입력값을 0과 1 사이의 범위로 "압축"합니다. 이메일이 스팸인지 판단하는 것과 같은 이진 분류 작업의 최종 레이어에서 자주 사용되며, 출력을 확률 점수로 해석할 수 있기 때문입니다.
  • 소프트맥스: 다중 분류 문제에 필수적인 소프트맥스는 숫자 벡터를 확률 분포로 변환하며, 모든 값의 합이 1이 되도록 합니다. 이는 ImageNet 같은 이미지 분류 과제에서 표준으로 사용됩니다.
  • SiLU (Sigmoid Linear Unit): YOLO26과 같은 최신 아키텍처에서 자주 사용되는 부드럽고 비단조적인 함수입니다. SiLU는 매우 깊은 모델에서 ReLU보다 더 나은 기울기 흐름을 허용하여 더 높은 정확도에 기여합니다.

AI의 실제 적용 사례

활성화 함수의 선택은 일상 운영에 배치된 AI 시스템의 성능과 추론 지연 시간에 직접적인 영향을 미칩니다.

  1. 소매 물체 탐지: 자동 결제 시스템에서 물체 탐지 모델은 컨베이어 벨트 위의 제품을 식별합니다. 숨겨진 레이어는 ReLU나 SiLU 같은 효율적인 함수를 사용하여 시각적 특징을 신속하게 처리합니다. 출력 레이어는 클래스(예: "사과", "시리얼")와 바운딩 박스 좌표를 결정하여 시스템이 계산을 자동으로 수행할 수 있게 합니다. 이는 속도와 고객 만족도를 보장하기 위해 소매 AI에 매우 중요합니다.
  2. 감정 분석: 자연어 처리(NLP)에서 모델은 고객 리뷰를 분석하여 만족도를 측정합니다. 네트워크는 텍스트 데이터를 처리하고 최종 레이어에서 시그모이드 함수를 사용하여 0(부정적)에서 1(긍정적) 사이의 감정 점수를 출력함으로써, 기업이 머신 러닝(ML)을 활용해 대규모로 고객 피드백을 이해하는 데 도움을 줍니다.

구현 예시

다양한 활성화 함수가 데이터를 어떻게 변환하는지 시각화하려면 PyTorch 라이브러리를 사용하면 활성화 함수가 데이터를 어떻게 변환하는지 시각화할 수 있습니다. 다음 코드 조각은 음수를 0으로 만드는 ReLU와 값을 압축하는 시그모이드 함수의 차이를 보여줍니다.

import torch
import torch.nn as nn

# Input data: negative, zero, and positive values
data = torch.tensor([-2.0, 0.0, 2.0])

# Apply ReLU: Negatives become 0, positives stay unchanged
relu_output = nn.ReLU()(data)
print(f"ReLU:    {relu_output}")
# Output: tensor([0., 0., 2.])

# Apply Sigmoid: Squashes values between 0 and 1
sigmoid_output = nn.Sigmoid()(data)
print(f"Sigmoid: {sigmoid_output}")
# Output: tensor([0.1192, 0.5000, 0.8808])

관련 개념 구분하기

학습 파이프라인에서 활성화 함수를 다른 수학적 구성 요소와 구분하는 것이 중요하다.

  • 활성화 함수 vs. 손실 함수: 활성화 함수는 전파 과정에서 작동하여 뉴런의 출력을 형성합니다. 평균 제곱 오차와 같은 손실 함수는 전파 과정이 끝날 때 예측값과 실제 목표값 사이의 오차를 계산합니다.
  • 활성화 함수 vs. 최적화 알고리즘: 활성화 함수가 출력 구조를 정의하는 반면, 최적화기(예: Adam 또는 확률적 경사 하강법)은 손실 함수로 계산된 오차를 최소화하기 위해 모델 가중치를 업데이트하는 방식을 결정합니다.
  • 활성화 함수 vs. 전이 학습: 활성화 함수는 네트워크 레이어 내에서 고정된 수학적 연산입니다. 전이 학습은 사전 훈련된 모델을 새로운 작업에 적용하는 기법으로, 기존 아키텍처의 활성화 함수를 유지한 채 Ultralytics 통해 맞춤형 데이터셋으로 가중치를 미세 조정하는 경우가 많습니다.

이러한 함수들이 더 큰 시스템에 어떻게 적용되는지 심층적으로 알아보려면 비선형 활성화 함수에 관한PyTorch 살펴보거나 컴퓨터 비전 작업이 특징 추출을 위해 이를 어떻게 활용하는지 읽어보세요.

Ultralytics 커뮤니티 가입

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

지금 참여하기