시그모이드 함수가 머신러닝에서 수행하는 역할을 살펴보세요. 이 활성화 함수가 Ultralytics 같은 모델에서 이진 분류를 가능하게 하는 방식을 알아보세요.
시그모이드 함수는 기계 학습(ML) 및 딥 러닝(DL) 분야에서 광범위하게 사용되는 핵심 수학적 구성 요소입니다. 흔히 "압축 함수"라고도 불리는 이 함수는 실수 값을 입력으로 받아 0과 1 사이의 값으로 매핑합니다. 이 특징적인 "S"자형 곡선은 모델의 원시 출력을 해석 가능한 확률로 변환하는 데 매우 유용합니다. 신경망(NN)의 맥락에서 시그모이드 함수는 활성화 함수 역할을 하며, 단순한 선형 관계를 넘어 복잡한 패턴을 학습할 수 있도록 비선형성을 도입합니다. 비록 심층 숨겨진 계층에서는 다른 함수들로 대체되었지만, 이진 분류 작업의 출력 계층에서는 여전히 표준적인 선택으로 남아 있습니다.
시그모이드 함수의 핵심은 입력 데이터(일반적으로 로짓 값이라 함)를 정규화된 범위로 변환하는 것입니다. 이 변환은 사건 발생 가능성을 예측하는 작업에 필수적입니다. 출력을 0과 1 사이로 제한함으로써, 이 함수는 명확한 확률 점수를 제공합니다.
시그모이드 함수는 한때 모든 레이어의 기본 선택이었으나, 연구자들은 사라지는 기울기 문제와 같은 한계를 발견했습니다. 이 문제는 깊은 신경망에서 기울기가 너무 작아져 가중치를 효과적으로 업데이트할 수 없게 만듭니다. 이로 인해 숨겨진 레이어에 대한 대안들이 채택되었습니다.
시그모이드 함수의 유용성은 확률 추정이 필요한 다양한 산업 분야에 걸쳐 확장됩니다.
PyTorch 사용해 시그모이드 함수가 데이터를 어떻게 변환하는지 관찰할 수 있습니다. PyTorch는 딥러닝 모델 구축에 널리 쓰이는 라이브러리입니다. 이 간단한 예시는 다양한 입력값 범위에서 나타나는 "압축" 효과를 보여줍니다.
import torch
import torch.nn as nn
# Create a Sigmoid layer
sigmoid = nn.Sigmoid()
# Define input data (logits) ranging from negative to positive
input_data = torch.tensor([-5.0, -1.0, 0.0, 1.0, 5.0])
# Apply Sigmoid to squash values between 0 and 1
output = sigmoid(input_data)
print(f"Input: {input_data}")
print(f"Output: {output}")
# Output values near 0 for negative inputs, 0.5 for 0, and near 1 for positive inputs
이러한 개념을 활용하는 모델을 저수준 코드 작성 없이 훈련하고자 하는 사용자를 위해 Ultralytics 직관적인 인터페이스를 제공하여 데이터셋을 관리하고 YOLO26과 같은 최첨단 모델을 훈련할 수 있게 합니다. 아키텍처의 복잡성을 자동으로 처리함으로써 사용자는 특정 컴퓨터 비전 애플리케이션을 위한 고품질 훈련 데이터 수집에 집중할 수 있습니다.