GELU (Gaussian Error Linear Unit)
가우시안 오차 선형 유닛 활성화 함수를 살펴보세요. 이 함수의 부드러운 확률적 비선형성이 Transformer, BERT 및 최신 AI를 구동하는 방법을 알아보세요.
가우시안 오차 선형 유닛(GELU)은 최신 인공지능(AI) 시스템, 특히 Transformer 아키텍처를 기반으로 하는 시스템의 성능에서 핵심적인 역할을 하는 정교한 활성화 함수입니다. GELU는 뉴런 입력에 엄격하고 결정론적인 임계값을 적용하는 기존 함수와 달리, 가우시안 분포의 특성에서 영감을 얻은 확률적 요소를 도입합니다. 입력을 단순히 게이팅하는 대신 크기에 따라 가중치를 부여함으로써 GELU는 딥러닝(DL) 모델의 최적화를 돕는 더 부드러운 비선형성을 제공합니다. 이러한 고유한 특성 덕분에 네트워크는 복잡한 데이터 패턴을 더 효과적으로 모델링할 수 있으며, 이는 대규모 파운데이션 모델의 성공에 크게 기여합니다.
GELU의 작동 방식#
모든 신경망의 핵심에서 활성화 함수는 입력 신호에 따라 뉴런이 "활성화"될지 결정합니다. 정류 선형 유닛(ReLU)과 같은 기존 함수는 스위치처럼 작동하여 음수 입력에는 0을 출력하고 양수 입력에는 입력 자체를 출력합니다. 효율적이지만 이러한 급격한 차단은 학습 동작을 저해할 수 있습니다.
GELU는 가우시안 분포의 누적 분포 함수로 입력을 스케일링하여 이를 개선합니다. 직관적으로 말하면 입력값이 감소할수록 뉴런이 비활성화될 확률이 증가하지만, 그 변화가 갑작스럽지 않고 점진적으로 일어납니다. 이러한 곡률은 모든 지점에서 미분 가능한 매끄러운 비단조 함수를 만듭니다. 이러한 매끄러움은 그래디언트의 더 나은 역전파를 가능하게 하여, 심층 네트워크의 학습을 중단시킬 수 있는 그래디언트 소실 문제와 같은 문제를 완화하는 데 도움을 줍니다.
실제 적용 사례#
GELU가 제공하는 더 매끄러운 최적화 지형 덕분에 GELU는 머신러닝(ML)의 일부 최첨단 애플리케이션에서 기본 선택으로 자리 잡았습니다.
- 대규모 언어 모델(LLMs): GELU는 Google 연구자들이 BERT(트랜스포머의 양방향 인코더 표현)를 소개하면서 널리 사용되기 시작했습니다. 현재는 GPT 시리즈와 기타 생성형 텍스트 모델에서 표준 구성 요소로 사용됩니다. 텍스트 요약이나 감정 분석과 같은 작업에서 GELU는 경직된 활성화 함수가 놓칠 수 있는 언어 표현의 미묘한 뉘앙스를 모델이 포착하도록 돕습니다.
- 비전 Transformer(ViT): 컴퓨터 비전 분야에서 Transformer 아키텍처를 이미지 분류에 맞게 조정한 모델은 GELU에 크게 의존합니다. 이미지를 패치 시퀀스로 처리함으로써 이러한 모델은 GELU를 사용해 심층 레이어 전반에서 풍부한 특징 정보를 유지하며, ImageNet과 같은 벤치마크에서 높은 정확도를 달성합니다.
관련 용어와의 비교#
GELU를 이해하려면 Ultralytics 용어집에 있는 다른 인기 활성화 함수와 구별해야 하는 경우가 많습니다.
- GELU와 ReLU 비교: ReLU는 계산이 더 단순하고 희소성(정확히 0인 값)을 생성하므로 효율적일 수 있습니다. 그러나 0에서의 "날카로운 모서리"는 수렴을 늦출 수 있습니다. GELU는 매끄러운 근사치를 제공하여 계산 비용이 약간 더 높지만 복잡한 작업에서 일반적으로 더 높은 정확도를 달성합니다.
- GELU와 SiLU(Swish) 비교: 시그모이드 선형 유닛(SiLU)은 구조적으로 GELU와 매우 유사하며, 매끄럽고 비단조적인 특성을 공유합니다. GELU가 자연어 처리(NLP)에서 널리 사용되는 반면, SiLU는 엣지 하드웨어에서의 효율성과 탐지 작업에서의 뛰어난 성능 덕분에 YOLO26과 같은 고도로 최적화된 객체 탐지기에서 자주 선호됩니다.
- GELU와 Leaky ReLU 비교: Leaky ReLU는 음수 입력에 작고 일정한 선형 기울기를 허용하여 표준 ReLU의 "죽은 뉴런" 문제를 해결하려고 합니다. 반면 GELU는 음수 값에 대해서도 비선형이므로 더 복잡하고 적응적인 응답을 제공하며, 이는 매우 깊은 네트워크에서 더 나은 표현 학습으로 이어지는 경우가 많습니다.
구현 예시#
PyTorch와 같은 최신 딥러닝 라이브러리를 사용하면 GELU를 간단하게 구현할 수 있습니다. 다음 예제에서는 입력 데이터 텐서에 함수를 적용하는 방법을 보여 줍니다.
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 Platform은 전체 워크플로를 간소화합니다. 이 플랫폼은 데이터 어노테이션, YOLO26과 같은 아키텍처를 사용한 모델 학습(SiLU와 같은 최적화된 활성화 함수 활용), 클라우드 또는 엣지 디바이스로의 효율적인 배포를 위한 통합 인터페이스를 제공합니다.









