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

Activation Function

활성화 함수는 뉴런이 가중 입력에 적용하는 비선형 함수로, 신경망이 곡선 형태의 패턴을 학습하도록 합니다. 일반적인 활성화 함수들을 비교합니다.

활성화 함수는 신경망(NN)의 뉴런이 입력의 가중합에 적용해 출력을 생성하는 함수입니다. 활성화 함수의 핵심 역할은 비선형성을 추가하는 것입니다. 활성화 함수가 없으면 여러 계층을 쌓아도 하나의 선형 변환으로 축약되므로 깊이가 아무런 이점을 주지 않습니다. 활성화 함수를 사용하면 네트워크는 손글씨 숫자의 획부터 카메라 프레임 속 보행자의 윤곽까지 곡선 형태의 결정 경계를 표현할 수 있습니다. 활성화 함수는 두 가지 역할을 합니다. 은닉 계층에서는 ReLU, SiLU, GELU와 같은 함수가 네트워크의 특징 학습을 돕습니다. 출력 계층에서는 sigmoid와 softmax 같은 함수가 원시 점수를 확률로 변환합니다.

네트워크에 비선형성이 필요한 이유#

활성화 함수가 없는 계층은 Wx + b를 계산합니다. 이런 계층 두 개를 쌓으면 W₂(W₁x + b₁) + b₂가 되며, 이는 (W₂W₁)x + (W₂b₁ + b₂)와 같으므로 또 하나의 단일 선형 계층입니다. 계층 사이에 활성화 함수를 넣으면 이러한 축약을 막을 수 있습니다. 보편 근사 정리에 따르면 비선형 유닛을 충분히 갖춘 은닉 계층 하나만으로도 유계 영역의 임의 연속 함수를 근사할 수 있습니다.

활성화 함수의 미분값은 함수의 형태만큼 중요합니다. 역전파에서 계층마다 이 미분값을 곱하기 때문입니다. sigmoid의 미분값은 0.25를 넘지 않고 tanh의 미분값은 큰 입력에서 0에 가까워집니다. 따라서 여러 포화 계층을 통과하면서 기울기가 작아지는 기울기 소실 문제가 발생합니다. ReLU의 미분값은 양수 입력에서 정확히 1이며, 이는 매우 깊은 네트워크를 실용적으로 학습할 수 있게 된 주요 이유 중 하나입니다.

일반적인 활성화 함수#

  • ReLU: max(0, x)입니다. 계산 비용이 낮고, 양수 입력에서는 기울기가 1이며 음수 입력에서는 정확히 0입니다. 2012년 AlexNet 이후 CNN의 기본 은닉 활성화 함수로 사용됐지만, 음수 입력만 받는 유닛은 학습을 멈춥니다.
  • Leaky ReLU: 음수 입력에 0.01 또는 0.1과 같은 작은 기울기를 곱해 모든 유닛에 기울기가 유지되도록 합니다.
  • SiLU(Swish): x · σ(x)입니다. 음수 입력에서는 0보다 약간 낮아지는 부드러운 곡선입니다. 효율적인 CNN과 실시간 탐지기에서 흔히 사용됩니다.
  • GELU: x · Φ(x)입니다. 여기서 Φ는 표준 정규 누적 분포 함수입니다. BERT, GPT-2, 비전 트랜스포머의 표준 활성화 함수입니다.
  • Tanh: 입력을 0을 중심으로 −1에서 1 사이로 압축합니다. GRU와 같은 순환 네트워크의 은닉 상태를 구성합니다.
  • Sigmoid: 입력을 0에서 1 사이로 압축하므로 이진 및 다중 라벨 출력과 순환 셀의 게이트에 적합합니다.
  • Softmax: 점수 벡터 전체를 합이 1인 확률 분포로 변환하므로 단일 라벨 분류와 어텐션 가중치에 사용됩니다.
  • SwiGLU: SiLU를 적용한 투영값에 두 번째 학습 가능한 투영값을 곱하는 게이트형 계층입니다. 최근 여러 대규모 언어 모델(LLM)의 피드포워드 계층에서 기존 활성화 함수를 대체했습니다.

PyTorch는 각 요소별 함수를 torch.nn의 모듈로 제공하므로 동일한 입력으로 쉽게 비교할 수 있습니다.

import torch
from torch import nn

x = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])

# Common activations, each applied element-wise to the same inputs
activations = {
    "ReLU": nn.ReLU(),
    "Leaky ReLU": nn.LeakyReLU(0.1),
    "SiLU": nn.SiLU(),
    "GELU": nn.GELU(),
    "Tanh": nn.Tanh(),
    "Sigmoid": nn.Sigmoid(),
}
for name, act in activations.items():
    print(f"{name:>10}: {[round(v, 3) for v in act(x).tolist()]}")

입력값 −3, −1, 0, 1, 3에 대해 ReLU는 [0.0, 0.0, 0.0, 1.0, 3.0]을, Leaky ReLU는 [-0.3, -0.1, 0.0, 1.0, 3.0]을 출력합니다. SiLU는 [-0.142, -0.269, 0.0, 0.731, 2.858]를, GELU는 [-0.004, -0.159, 0.0, 0.841, 2.996]을 출력합니다. 두 함수 모두 작은 음수값을 통과시키며 큰 입력에서는 ReLU에 가까워집니다. Tanh는 [-0.995, -0.762, 0.0, 0.762, 0.995]를, sigmoid는 [0.047, 0.269, 0.5, 0.731, 0.953]를 출력합니다. 두 함수 모두 ±3에서 평평해지며, 이 지점에서 기울기는 이미 작습니다.

활성화 함수 선택#

은닉 계층은 보통 해당 아키텍처 계열의 관례를 따르고, 출력 계층은 작업에 맞춥니다. 입력마다 정확히 하나의 클래스에 속하는 작업에는 softmax가 적합하고, 여러 라벨이 동시에 적용될 수 있는 작업에는 sigmoid가 적합합니다. 회귀 출력에는 어떤 값이든 출력할 수 있도록 활성화 함수를 사용하지 않습니다. 하드웨어에 따라 선택이 제한될 수도 있습니다. 일부 엣지 가속기는 ReLU, Leaky ReLU, Hard-Swish와 같은 간단한 함수만 기본적으로 실행할 수 있습니다. YOLO26은 모든 Conv 블록에서 합성곱과 배치 정규화 뒤에 SiLU를 적용합니다. 각 탐지 클래스의 점수에는 서로 독립적인 sigmoid를 적용하므로 박스의 클래스 점수를 합해도 1이 될 필요가 없습니다. 또한 분류 모델에서는 1,000개의 ImageNet 클래스에 softmax를 적용합니다.

  • 손실 함수: 활성화 함수는 순전파 중 각 뉴런의 출력을 결정하고, 손실 함수는 네트워크의 최종 예측과 라벨을 비교해 점수를 계산합니다. 수치 안정성을 위해 라이브러리는 마지막 활성화 함수를 손실 함수에 통합하는 경우가 많습니다. CrossEntropyLoss의 softmax가 그 예입니다.
  • 배치 정규화: 배치 정규화 또는 계층 정규화는 통계와 학습 가능한 파라미터를 사용해 활성화값을 안정적인 범위로 재조정합니다. 보통 활성화 함수 바로 앞에 배치되며 자체적으로 비선형성을 추가하지 않습니다.
  • 활성화값: 복수 명사로 쓰일 때 활성화값은 계층이 생성하는 출력값을 뜻합니다. "비선형성"과 이전에 사용되던 "전달 함수"는 활성화 함수의 동의어입니다. 학습 중 프레임워크는 역방향 계산에 사용할 각 계층의 활성화값을 메모리에 보관합니다. 따라서 기울기 체크포인팅은 일부 활성화값을 버리고 역전파 중 다시 계산해 메모리를 절약합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

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의 미래를 만들어 가세요!

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