가우시안 오류 선형 단위(GELU) 활성화 함수를 살펴보세요. 그 부드러운 확률적 비선형성이 어떻게 트랜스포머, BERT 및 현대 AI를 구동하는지 알아보세요.
가우시안 오차 선형 유닛(GELU)은 현대 인공지능(AI) 시스템, 특히 트랜스포머 아키텍처를 기반으로 한 시스템의 성능에 중추적인 역할을 하는 정교한 활성화 함수입니다. 신경망 입력에 경직된 결정론적 임계값을 적용하는 기존 함수와 달리, GELU는 가우시안 분포의 특성에 영감을 받은 확률적 측면을 도입합니다. GELU는 단순히 게이트 처리하기보다 입력값의 크기에 따라 가중치를 부여함으로써, 딥러닝(DL) 모델 최적화에 도움이 되는 더 부드러운 비선형성을 제공합니다. 이 독특한 특성 덕분에 네트워크는 복잡한 데이터 패턴을 더 효과적으로 모델링할 수 있으며, 이는 대규모 파운데이션 모델의 성공에 크게 기여합니다.
신경망의 핵심에서 활성화 함수는 입력 신호에 따라 뉴런이 '발화'하는지 여부를 결정합니다. Rectified Linear Unit(ReLU) 과 같은 기존 함수는 스위치처럼 작동하여 음수 입력에는 0을, 양수 입력에는 입력값 자체를 출력합니다. 효율적이긴 하지만, 이러한 급격한 절단은 훈련 역학을 방해할 수 있습니다.
GELU는 가우시안 분포의 누적 분포 함수로 입력을 스케일링함으로써 이를 개선합니다. 직관적으로 이는 입력값이 감소할수록 뉴런이 탈락할 확률이 증가하지만, 갑작스럽게 발생하기보다는 점진적으로 이루어짐을 의미합니다. 이러한 곡률은 모든 점에서 미분 가능한 부드럽고 비단조적인 함수를 생성합니다. 이러한 부드러움은 기울기의 역전파를 개선하여 심층 신경망 훈련을 중단시킬 수 있는 소멸하는 기울기 문제와 같은 현상을 완화하는 데 기여합니다.
GELU가 제공하는 더 매끄러운 최적화 환경 덕분에, 이는 머신 러닝(ML) 분야에서 가장 진보된 애플리케이션들의 기본 선택지가 되었습니다.
GELU를 이해하려면 종종 Ultralytics 발견되는 다른 인기 있는 활성화 함수들과 구별해야 합니다.
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와 같은 최적화된 활성화 함수를 활용)과 같은 아키텍처를 사용한 모델 훈련, 그리고 클라우드 또는 에지 디바이스로의 효율적인 배포를 위한 통합 인터페이스를 제공합니다.