SiLU (Sigmoid Linear Unit)
SiLU(Sigmoid Linear Unit) activation function이 딥러닝을 향상하는 방식을 살펴봅니다. 정확도 향상을 위해 SiLU가 Ultralytics YOLO26의 표준으로 사용되는 이유를 알아봅니다.
시그모이드 선형 유닛은 일반적으로 SiLU라고 하며, 최신 딥러닝 아키텍처에서 신경망에 비선형성을 도입하는 데 사용되는 매우 효과적인 활성화 함수입니다. SiLU는 모델의 레이어를 통해 뉴런이 정보를 처리하고 전달하는 방식을 결정함으로써 시스템이 데이터의 복잡한 패턴을 학습할 수 있도록 하며, 기존의 계단 함수보다 더 부드럽고 정교한 대안으로 기능합니다. SiLU는 초기 자동 활성화 함수 탐색 연구에서 사용된 "Swish"라는 용어와 연관되는 경우가 많으며, 최신 YOLO26 아키텍처를 비롯한 고성능 컴퓨터 비전 모델의 표준으로 자리 잡았습니다.
SiLU의 작동 방식#
SiLU 함수는 기본적으로 입력값에 입력값 자체의 시그모이드 변환을 곱하는 방식으로 작동합니다. 뉴런을 "켜짐"과 "꺼짐" 상태 사이에서 갑자기 전환하는 단순한 임계값 함수와 달리, SiLU는 더욱 세밀한 신호 처리를 가능하게 하는 부드러운 곡선을 제공합니다. 이러한 수학적 구조는 모델 학습 과정에 도움이 되는 다음과 같은 특징을 만들어냅니다.
- 매끄러움: 곡선은 모든 지점에서 연속이고 미분 가능합니다. 이러한 특성은 모델 가중치를 조정하기 위한 일관된 지형을 제공하여 경사 하강법과 같은 최적화 알고리즘을 지원하며, 학습 중 더 빠른 수렴으로 이어지는 경우가 많습니다.
- 비단조성: 표준 선형 유닛과 달리 SiLU는 비단조 함수이므로 특정 음수 범위에서는 입력이 증가해도 출력이 감소할 수 있습니다. 이를 통해 네트워크는 복잡한 특징을 포착하고 그렇지 않으면 삭제될 수 있는 음수 값을 유지할 수 있으며, 심층 네트워크에서 기울기 소실 문제를 방지하는 데 도움이 됩니다.
- 자체 게이팅: SiLU는 자체 게이트로 작동하여 입력 자체의 크기에 따라 입력 중 얼마나 많은 부분을 통과시킬지 조절합니다. 이는 장단기 메모리 (LSTM) 네트워크에서 사용되는 게이팅 메커니즘을 모방하면서도 합성곱 신경망 (CNN)에 적합한 계산 효율적인 형태로 구현됩니다.
실제 적용 사례#
SiLU는 정밀도와 효율성이 가장 중요한 다양한 최첨단 AI 솔루션에서 핵심적인 역할을 합니다.
- 자율주행 차량 인식: 안전이 중요한 자율주행 차량 분야에서 인식 시스템은 보행자, 교통 표지판, 장애물을 즉시 식별해야 합니다. 백본에 SiLU를 사용하는 모델은 높은 추론 속도를 유지하면서 다양한 조명 조건에서 객체 탐지를 정확하게 수행할 수 있어 차량이 주변 환경에 안전하게 대응하도록 합니다.
- 의료 영상 진단: 의료 영상 분석에서는 신경망이 MRI 또는 CT 스캔에서 미묘한 질감 차이를 식별해야 합니다. SiLU의 기울기 보존 특성은 이러한 네트워크가 조기 종양 탐지에 필요한 세밀한 정보를 학습하도록 지원하여 영상의학 전문의가 사용하는 자동 진단 도구의 신뢰성을 크게 향상합니다.
관련 개념과의 비교#
SiLU를 제대로 이해하려면 Ultralytics 용어집에 있는 다른 활성화 함수와 구별해 보는 것이 도움이 됩니다.
- SiLU와 ReLU (정류 선형 유닛)의 비교: ReLU는 속도와 단순성으로 유명하며 모든 음수 입력에 대해 0을 출력합니다. 효율적이지만 이로 인해 학습을 중단하는 "죽은 뉴런"이 발생할 수 있습니다. SiLU는 음수 값에도 작고 비선형적인 기울기가 흐르도록 하여 이러한 문제를 방지하며, Ultralytics Platform에서 학습한 심층 아키텍처에서 더 높은 정확도로 이어지는 경우가 많습니다.
- SiLU와 GELU (가우시안 오차 선형 유닛)의 비교: 이 두 함수는 시각적 및 기능적으로 유사합니다. GELU는 BERT와 GPT 같은 Transformer 모델의 표준인 반면, SiLU는 컴퓨터 비전 (CV) 작업과 CNN 기반 객체 검출기에서 자주 선호됩니다.
- SiLU와 Sigmoid의 비교: SiLU는 내부적으로 Sigmoid 함수를 사용하지만 두 함수의 역할은 서로 다릅니다. Sigmoid는 일반적으로 이진 분류의 최종 출력 레이어에서 확률을 나타내는 데 사용되는 반면, SiLU는 특징 추출을 지원하기 위해 은닉 레이어에서 사용됩니다.
구현 예시#
PyTorch 라이브러리를 사용하면 다양한 활성화 함수가 데이터를 변환하는 방식을 시각화할 수 있습니다. 다음 코드 스니펫은 음수 값을 0으로 만드는 ReLU와 부드러운 음수 흐름을 허용하는 SiLU의 차이를 보여줍니다.
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_out = nn.ReLU()(data)
print(f"ReLU: {relu_out}")
# Output: tensor([0., 0., 2.])
# Apply SiLU: Smooth curve, small negative value retained
silu_out = nn.SiLU()(data)
print(f"SiLU: {silu_out}")
# Output: tensor([-0.2384, 0.0000, 1.7616])음수 값의 정보를 유지하고 부드러운 기울기를 제공하는 SiLU는 최신 신경망의 성공에 중추적인 역할을 합니다. YOLO26과 같은 아키텍처에 SiLU가 채택된 것은 다양한 컴퓨터 비전 작업에서 최신 성능을 달성하는 데 SiLU가 중요하다는 점을 보여줍니다.









