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

GELU(Gaussian Error Linear Unit)

가우시안 오류 선형 단위(GELU) 활성화 함수를 살펴보세요. 그 부드러운 확률적 비선형성이 어떻게 트랜스포머, BERT 및 현대 AI를 구동하는지 알아보세요.

가우시안 오차 선형 유닛(GELU)은 현대 인공지능(AI) 시스템, 특히 트랜스포머 아키텍처를 기반으로 한 시스템의 성능에 중추적인 역할을 하는 정교한 활성화 함수입니다. 신경망 입력에 경직된 결정론적 임계값을 적용하는 기존 함수와 달리, GELU는 가우시안 분포의 특성에 영감을 받은 확률적 측면을 도입합니다. GELU는 단순히 게이트 처리하기보다 입력값의 크기에 따라 가중치를 부여함으로써, 딥러닝(DL) 모델 최적화에 도움이 되는 더 부드러운 비선형성을 제공합니다. 이 독특한 특성 덕분에 네트워크는 복잡한 데이터 패턴을 더 효과적으로 모델링할 수 있으며, 이는 대규모 파운데이션 모델의 성공에 크게 기여합니다.

GELU 작동 방식

신경망의 핵심에서 활성화 함수는 입력 신호에 따라 뉴런이 '발화'하는지 여부를 결정합니다. Rectified Linear Unit(ReLU) 과 같은 기존 함수는 스위치처럼 작동하여 음수 입력에는 0을, 양수 입력에는 입력값 자체를 출력합니다. 효율적이긴 하지만, 이러한 급격한 절단은 훈련 역학을 방해할 수 있습니다.

GELU는 가우시안 분포의 누적 분포 함수로 입력을 스케일링함으로써 이를 개선합니다. 직관적으로 이는 입력값이 감소할수록 뉴런이 탈락할 확률이 증가하지만, 갑작스럽게 발생하기보다는 점진적으로 이루어짐을 의미합니다. 이러한 곡률은 모든 점에서 미분 가능한 부드럽고 비단조적인 함수를 생성합니다. 이러한 부드러움은 기울기의 역전파를 개선하여 심층 신경망 훈련을 중단시킬 수 있는 소멸하는 기울기 문제와 같은 현상을 완화하는 데 기여합니다.

실제 애플리케이션

GELU가 제공하는 더 매끄러운 최적화 환경 덕분에, 이는 머신 러닝(ML) 분야에서 가장 진보된 애플리케이션들의 기본 선택지가 되었습니다.

관련 용어와의 비교

GELU를 이해하려면 종종 Ultralytics 발견되는 다른 인기 있는 활성화 함수들과 구별해야 합니다.

  • GELU 대 ReLU: ReLU는 계산이 더 간단하며 스파시티(정확한 0)를 생성하여 효율적일 수 있습니다. 그러나 0에서의 "날카로운 모서리"는 수렴 속도를 늦출 수 있습니다. GELU는 복잡한 작업에서 일반적으로 더 높은 정확도를 제공하는 부드러운 근사값을 제공하지만, 계산 비용이 약간 더 높습니다.
  • GELU 대 SiLU (Swish): 시그모이드 선형 유닛(SiLU)은 구조적으로 GELU와 매우 유사하며, 부드럽고 비단조적인 특성을 공유합니다. GELU가 자연어 처리(NLP) 분야에서 우위를 점하는 반면, SiLU는 에지 하드웨어에서의 효율성과 탐지 작업에서의 탁월한 성능 덕분에 YOLO26과 같은 고도로 최적화된 객체 탐지기에 자주 선호됩니다.
  • GELU 대 Leaky ReLU: Leaky ReLU는 부정 입력에 대해 작고 일정한 선형 기울기를 허용함으로써 표준 ReLU의 "사망 뉴런" 문제를 해결하려 시도합니다. 반면 GELU는 음수 값에 대해 비선형적이며, 매우 깊은 신경망에서 더 나은 표현 학습으로 이어지는 더 복잡하고 적응적인 반응을 제공합니다.

구현 예시

GELU 구현은 PyTorch와 같은 현대적인 딥 러닝 라이브러리를 사용하면 간단합니다. PyTorch와 같은 현대적인 딥 러닝 라이브러리를 사용하면 GELU를 구현하는 것은 간단합니다. 다음 예시는 입력 데이터 tensor 함수를 적용하는 방법을 보여줍니다.

import torch
import torch.nn as nn

# Initialize the GELU activation function
gelu_activation = nn.GELU()

# Create sample input data including negative and positive values
input_data = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])

# Apply GELU to the inputs
output = gelu_activation(input_data)

# Print results to see the smoothing effect on negative values
print(f"Input: {input_data}")
print(f"Output: {output}")

컴퓨터 비전 프로젝트에서 이러한 고급 활성화 함수를 활용하려는 개발자를 위해 Ultralytics 전체 워크플로를 간소화합니다. 데이터 주석 부착, YOLO26(SiLU와 같은 최적화된 활성화 함수를 활용)과 같은 아키텍처를 사용한 모델 훈련, 그리고 클라우드 또는 에지 디바이스로의 효율적인 배포를 위한 통합 인터페이스를 제공합니다.

Ultralytics 커뮤니티 가입

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

지금 참여하기