Yolo 비전 선전
선전
지금 참여하기
용어집

Softmax

인공지능(AI)에서 소프트맥스 함수를 탐구해 보세요. Ultralytics 신경망을 활용하여 다중 클래스 분류를 위해 로짓 값을 확률로 변환하는 방법을 알아보세요.

소프트맥스는 인공 지능 분야에서 핵심적인 수학적 함수로, 특히 많은 분류 알고리즘의 최종 단계로 사용됩니다. 이 함수는 원시 숫자 벡터(로짓이라고도 함)를 확률 벡터로 변환합니다. 이 변환은 출력값이 모두 양수이며 합이 정확히 1이 되도록 보장하여 유효한 확률 분포를 효과적으로 생성합니다. 이러한 특성 덕분에 소프트맥스는 다중 분류를 위해 설계된 신경망의 출력층에서 표준 활성화 함수로 사용됩니다. 여기서 시스템은 두 개 이상의 상호 배타적 옵션 중에서 단일 범주를 선택해야 합니다.

소프트맥스의 메커니즘

전형적인 딥 러닝(DL) 워크플로우에서 네트워크의 레이어들은 복잡한 행렬 곱셈과 덧셈을 수행합니다. 활성화 전 최종 레이어의 출력은 로짓(logits)으로 알려진 원시 점수로 구성됩니다. 이 값들은 음의 무한대에서 양의 무한대까지 범위를 가지므로, 신뢰도 수준으로 직접 해석하기 어렵습니다.

소프트맥스는 두 가지 주요 연산을 수행함으로써 이 문제를 해결합니다:

  1. 지수 계산: 각 입력 숫자의 지수를 계산합니다. 이 단계는 모든 값이 음수가 아니도록 보장하며(모든 $e^x$는 양수이므로), 최대값보다 현저히 낮은 값에 불이익을 주고 가장 큰 점수를 부각시킵니다.
  2. 정규화: 지수화된 값들을 합산한 후 각 개별 지수값을 이 총합으로 나눕니다. 이 정규화 과정은 숫자들을 전체의 일부를 나타내도록 조정하여 개발자가 이를 확률 점수로 해석할 수 있게 합니다.

실제 애플리케이션

명확한 확률을 산출하는 능력 덕분에 소프트맥스는 다양한 산업 분야와 기계 학습(ML) 작업에서 필수적인 역할을 수행합니다.

  • 이미지 분류: 컴퓨터 비전 분야에서 모델은 이미지를 분류하기 위해 소프트맥스를 사용합니다. 예를 들어, Ultralytics 분류 모델이 사진을 분석할 때 "골든 리트리버", "저먼 셰퍼드", "푸들"과 같은 클래스에 대한 점수를 산출할 수 있습니다. 소프트맥스는 이러한 점수를 확률(예: 0.85, 0.10, 0.05)로 변환하여 이미지에 골든 리트리버가 포함될 확률이 높음을 나타냅니다. 이는 자동화된 사진 정렬부터 의료 AI 분야의 의료 진단에 이르기까지 다양한 응용 분야에서 매우 중요합니다.
  • 자연어 처리(NLP): 소프트맥스는 대규모 언어 모델(LLM)의 텍스트 생성 엔진입니다. 트랜스포머와 같은 모델이 문장을 생성할 때, 어휘집에 있는 모든 단어에 대해 점수를 계산하여 다음 단어(토큰)를 예측합니다. 소프트맥스는 이러한 점수를 확률로 변환하여 모델이 가장 가능성이 높은 다음 단어를 선택할 수 있게 함으로써 유연한 기계 번역과 대화형 AI를 가능하게 합니다.
  • 강화 학습: 강화 학습의 에이전트는 종종 행동 선택에 소프트맥스를 사용합니다. 항상 가장 높은 가치를 가진 행동을 선택하는 대신, 에이전트는 로봇 제어나 게임 플레이와 같은 환경에서 탐색과 활용을 균형 있게 조정하며 다양한 전략을 탐색하기 위해 확률 값을 활용할 수 있습니다.

Python 코드 예제

다음 예제는 사전 훈련된 YOLO26 분류 모델을 로드하고 소프트맥스를 통해 생성된 확률 점수에 접근하는 방법을 보여줍니다.

from ultralytics import YOLO

# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")

# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")

# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]

print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")

소프트맥스와 관련 개념의 구분

소프트맥스는 다중 클래스 시나리오에서 지배적이지만, 모델 훈련 및 아키텍처 설계에 사용되는 다른 수학적 함수와 구별하는 것이 중요합니다:

  • 시그모이드: 시그모이드 함수도 값을 0과 1 사이로 스케일링하지만, 각 출력을 독립적으로 처리합니다. 이로 인해 시그모이드는 이진 분류 (예/아니오)나 상호 배타적이지 않은 다중 레이블 분류(예: 이미지에 "사람"과 "배낭"이 동시에 포함될 수 있음)에 이상적입니다. 소프트맥스는 확률의 합이 1이 되도록 강제하여 클래스 간 경쟁을 유도합니다.
  • ReLU (Rectified Linear Unit): ReLU는 주로 네트워크의 숨겨진 계층에서 비선형성을 도입하기 위해 사용됩니다. Softmax와 달리 ReLU는 출력을 특정 범위로 제한하지 않으며(음수 입력에는 단순히 0을, 양수 입력에는 입력값 자체를 출력함), 확률 분포를 생성하지 않습니다.
  • Argmax: 소프트맥스가 모든 클래스에 대한 확률을 제공하는 반면, 아르그맥스 함수는 종종 함께 사용되어 가장 높은 확률을 가진 단일 인덱스를 선택합니다. 소프트맥스는 "부드러운" 확신을 제공하는 반면, 아르그맥스는 "단호한" 최종 결정을 제공합니다.

고급 통합

현대 머신러닝 파이프라인에서는 손실 함수 내에서 소프트맥스가 암시적으로 계산되는 경우가 많습니다. 예를 들어, 크로스 엔트로피 손실 은소프트맥스와 음의 로그 가능도를 단일 수학적 단계로 결합하여 훈련 중 수치적 안정성을 향상시킵니다. Ultralytics 같은 플랫폼은 이러한 복잡성을 자동으로 처리하므로, 사용자는 이러한 수학적 연산을 수동으로 구현하지 않고도 견고한 모델을 훈련할 수 있습니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기