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

Sigmoid

시그모이드 함수는 모든 실수를 0과 1 사이의 값으로 변환합니다. 수식, 그래디언트, 확률 출력, 게이트, PyTorch 코드를 다룹니다.

시그모이드 함수 σ(x) = 1 / (1 + e^(−x))는 모든 실수를 S자 곡선을 따라 0과 1 사이의 값으로 변환합니다. 큰 음수 입력은 0에 가까운 출력을, 큰 양수 입력은 1에 가까운 출력을 내며, 입력이 0이면 정확히 0.5를 출력합니다. 머신러닝(ML)에서 “시그모이드”는 거의 항상 로지스틱 함수, 즉 로지스틱 회귀에서 선형 점수를 확률로 변환하는 동일한 곡선을 뜻합니다. 신경망(NN)에서 시그모이드는 세 가지 역할을 합니다. 처음에는 은닉층 활성화 함수로 사용되었고, 이진 및 멀티레이블 출력에서는 최종 점수를 확률로 변환하며, 순환 셀 및 다른 게이트 계층에서는 부드러운 온·오프 스위치로 작동합니다. 이후 은닉층에서는 ReLU와 같은 함수가 사용되기 시작해 현재 모델의 시그모이드는 대부분 출력과 게이트에 위치합니다.

수식 및 특성#

시그모이드는 중간점을 기준으로 대칭이며 σ(−x) = 1 − σ(x)입니다. 역함수는 확률을 로그 오즈로 변환하는 로짓 함수 log(p / (1 − p))입니다. 따라서 시그모이드를 적용하기 전 네트워크의 원시 출력을 로짓이라고 합니다. 미분값은 σ′(x) = σ(x)(1 − σ(x))로 간단히 표현되며, x = 0에서 0.25로 최대가 되고 양 끝에서 곡선이 평평해짐에 따라 0에 가까워집니다. 이를 포화라고 합니다. 아래 PyTorch 코드 조각은 다섯 지점에서 출력과 기울기를 계산합니다:

import torch

x = torch.tensor([-6.0, -2.0, 0.0, 2.0, 6.0], requires_grad=True)
y = torch.sigmoid(x)

# Backpropagate to get the derivative sigmoid(x) * (1 - sigmoid(x)) at each input
y.sum().backward()

print(f"Sigmoid:  {[round(v, 4) for v in y.tolist()]}")
print(f"Gradient: {[round(v, 4) for v in x.grad.tolist()]}")

시그모이드 값 [0.0025, 0.1192, 0.5, 0.8808, 0.9975]과 기울기 [0.0025, 0.105, 0.25, 0.105, 0.0025]가 출력됩니다. ±6에서 출력은 극한값과 0.0025 이내로 가까우며, 기울기는 0일 때보다 100배 작습니다. 따라서 이 범위의 입력은 해당 출력을 생성한 가중치를 거의 바꾸지 않습니다.

은닉층에서의 시그모이드#

초기 다층 네트워크는 모든 은닉층에서 시그모이드를 사용해 두 가지 문제를 일으켰습니다. 역전파는 각 계층의 활성화 함수 미분값을 곱합니다. 시그모이드의 미분값은 0.25를 넘지 않으므로 시그모이드 계층 10개에서는 미분값만으로도 기울기가 최대 0.25¹⁰, 즉 100만분의 1 미만으로 줄어드는 기울기 소실 문제가 발생합니다. 또한 시그모이드 출력은 항상 양수이므로, 해당 출력을 받는 뉴런의 모든 가중치 기울기는 각 업데이트에서 같은 부호를 가집니다. 따라서 가중치는 최적값을 향해 지그재그로만 이동할 수 있습니다. Tanh는 출력을 0을 중심으로 배치하며, Xavier Glorot과 Yoshua Bengio는 2010년에 시그모이드의 양의 평균 때문에 무작위로 초기화된 심층 네트워크의 최상위 은닉층이 포화된다는 점을 보였습니다. ReLU는 두 문제를 모두 해결해 은닉층의 기본 함수가 되었으며, SiLU와 같은 매끄러운 후속 함수 x · σ(x)도 내부 게이트에 시그모이드를 사용합니다.

출력 계층에서의 시그모이드#

이진 분류에서는 단일 출력 z가 p = σ(z)가 되며, 이는 양성 클래스의 예측 확률입니다. p에서 임계값 0.5를 적용하는 것은 z에서 임계값 0을 적용하는 것과 같습니다. 학습에서는 시그모이드와 이진 교차 엔트로피를 함께 사용하며, 로짓에 대한 그래디언트는 예측 확률에서 레이블을 뺀 p − y입니다. 수치 안정성을 위해 프레임워크는 두 연산을 결합합니다. PyTorch의 BCEWithLogitsLoss는 원시 로짓을 입력받아 내부적으로 로그-합-지수 트릭을 사용하므로, 0 또는 1로 반올림된 확률에 로그를 취하는 문제를 방지합니다.

레이블이 동시에 나타날 수 있는 경우 모델은 레이블마다 시그모이드 하나를 사용하며, 이를 멀티레이블 분류라고 합니다. 반면 소프트맥스는 클래스가 하나의 확률 단위를 두고 경쟁하게 하므로 서로 배타적인 레이블에 적합합니다:

import torch

# Logits from a classifier for the labels "person", "backpack", and "car"
logits = torch.tensor([2.0, 1.5, -3.0])

# Sigmoid scores each label on its own; softmax makes the labels compete for one total
sigmoid_probs = torch.sigmoid(logits)
softmax_probs = torch.softmax(logits, dim=0)

print(f"Sigmoid: {[round(p, 3) for p in sigmoid_probs.tolist()]}, sum {sigmoid_probs.sum():.3f}")
print(f"Softmax: {[round(p, 3) for p in softmax_probs.tolist()]}, sum {softmax_probs.sum():.3f}")

시그모이드 점수 [0.881, 0.818, 0.047]의 합은 1.746이므로 “사람”과 “배낭” 모두 0.5를 넘습니다. 반면 소프트맥스는 동일한 로짓을 [0.62, 0.376, 0.004]로 분배하며 “사람”만 0.5를 넘습니다. YOLO26 탐지 모델은 BCEWithLogitsLoss를 사용해 학습된 독립적인 시그모이드로 각 클래스의 점수를 계산하므로 박스의 클래스 점수 합은 1일 필요가 없습니다. YOLO26 포즈 모델은 각 키포인트의 가시성 로짓에 시그모이드를 적용해 키포인트가 보일 확률을 출력합니다.

게이트로서의 시그모이드#

시그모이드 출력은 0과 1 사이이므로, 미분 가능한 상태를 유지하면서 다른 신호의 각 요소를 완전히 차단하거나 그대로 통과시키는 사이의 값으로 조정할 수 있습니다:

  • LSTM 및 GRU 셀: 시그모이드 게이트는 각 시점에 이전 메모리를 얼마나 유지할지, 새 콘텐츠를 얼마나 기록할지, 상태를 얼마나 노출할지 결정하며, tanh는 콘텐츠 자체의 형태를 조정합니다.
  • SwiGLU: 여러 대규모 언어 모델(LLM)의 피드포워드 계층은 학습된 투영 하나에 SiLU 활성화 함수를 적용한 두 번째 투영을 곱합니다. 이는 시그모이드를 기반으로 한 게이트입니다.
  • SigLIP: 이 이미지-텍스트 모델은 배치의 각 이미지-캡션 쌍을 자체 시그모이드로 채점해 매칭 여부의 확률을 구하므로, 손실을 계산할 때 배치 전체에 대한 정규화가 필요하지 않습니다.
  • 로지스틱 함수: 머신러닝에서 시그모이드의 동의어입니다. 수학에서 “시그모이드”는 tanh와 오차 함수를 비롯한 다른 S자 곡선도 포함합니다.
  • 소프트맥스: 벡터 전체를 합이 1인 확률로 정규화합니다. 두 클래스의 경우 로짓 (z₁, z₂)에 소프트맥스를 적용하면 첫 번째 클래스는 σ(z₁ − z₂)가 되므로, 출력 두 개를 사용하는 소프트맥스와 출력 하나를 사용하는 시그모이드는 같은 모델을 나타냅니다.
  • Tanh: 시그모이드의 크기를 조정한 함수로 tanh(x) = 2σ(2x) − 1이며, 출력은 0을 중심으로 −1에서 1까지이고 최대 미분값은 1입니다.
  • Hard sigmoid: 모바일 하드웨어에서 지수 연산을 피하는 구간별 선형 근사 함수입니다. MobileNetV3는 ReLU6(x + 3) / 6을 사용합니다. 이 함수는 x = −3보다 작을 때 0, x = 3보다 클 때 1이며, 그 사이에서는 직선입니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

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

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