Softmax
AI의 소프트맥스(Softmax) 함수를 살펴보십시오. Ultralytics YOLO26과 신경망을 사용하여 로짓을 다중 클래스 분류 확률로 변환하는 방법을 알아보십시오.
Softmax is a mathematical function pivotal to the field of artificial intelligence, specifically serving as the final step in many classification algorithms. It transforms a vector of raw numbers, often called logits, into a vector of probabilities. This transformation ensures that the output values are all positive and sum up to exactly one, effectively creating a valid probability distribution. Because of this property, Softmax is the standard activation function used in the output layer of neural networks designed for multi-class classification, where the system must choose a single category from more than two mutually exclusive options.
Link to this sectionSoftmax의 메커니즘#
일반적인 deep learning (DL)(딥러닝) 워크플로우에서 신경망의 계층은 복잡한 행렬 곱셈과 덧셈을 수행합니다. 활성화 전 마지막 계층의 출력은 logits(로짓)이라고 알려진 원시 점수로 구성됩니다. 이 값들은 음의 무한대에서 양의 무한대까지의 범위를 가질 수 있어, 신뢰도 수준으로 직접 해석하기 어렵습니다.
Softmax는 두 가지 주요 연산을 수행하여 이 문제를 해결합니다:
-
지수화(Exponentiation): 각 입력 숫자의 지수를 계산합니다. 이 단계는 모든 값을 비음수로 만들고($e^x$는 항상 양수이므로), 최대값보다 현저히 낮은 값들을 억제하는 동시에 가장 높은 점수들을 강조합니다.
-
정규화(Normalization): 지수화된 값들을 합산하고 각 개별 지수 값을 이 총합으로 나눕니다. 이 normalization process(정규화 과정)는 숫자의 스케일을 조정하여 전체의 일부를 나타내게 함으로써, 개발자가 이를 백분율 신뢰도 점수로 해석할 수 있게 합니다.
Link to this section실제 애플리케이션 사례#
명확한 확률을 출력하는 능력 덕분에 Softmax는 다양한 산업 분야와 machine learning (ML)(머신러닝) 작업에서 없어서는 안 될 요소가 되었습니다.
- 이미지 분류: 컴퓨터 비전에서 모델은 이미지를 분류하기 위해 Softmax를 사용합니다. 예를 들어, Ultralytics YOLO26 분류 모델이 사진을 분석할 때 "골든 리트리버", "저먼 셰퍼드", "푸들"과 같은 클래스에 대한 점수를 생성할 수 있습니다. Softmax는 이러한 점수를 확률(예: 0.85, 0.10, 0.05)로 변환하여 해당 이미지에 골든 리트리버가 포함되어 있을 확률이 높음을 나타냅니다. 이는 자동 사진 정리부터 AI in Healthcare(AI 헬스케어) 분야의 의학적 진단에 이르기까지 다양한 애플리케이션에 매우 중요합니다.
- 자연어 처리 (NLP): Softmax는 Large Language Models (LLMs)(거대 언어 모델)의 텍스트 생성 엔진입니다. Transformer와 같은 모델이 문장을 생성할 때, 어휘 사전의 모든 단어에 대한 점수를 계산하여 다음 단어(토큰)를 예측합니다. Softmax는 이러한 점수를 확률로 변환하여 모델이 가장 가능성 높은 다음 단어를 선택하게 함으로써 유연한 machine translation(기계 번역)과 대화형 AI를 가능하게 합니다.
- 강화학습: reinforcement learning(강화학습)의 에이전트는 종종 행동을 선택하기 위해 Softmax를 사용합니다. 항상 가장 높은 가치를 가진 행동을 선택하는 대신, 에이전트는 확률을 사용하여 다양한 전략을 탐색하며 로봇 제어나 게임 플레이와 같은 환경에서 탐색과 활용의 균형을 맞춥니다.
Link to this sectionPython 코드 예제#
다음 예제는 사전 학습된 YOLO26 분류 모델을 로드하고 Softmax를 통해 생성된 확률 점수에 액세스하는 방법을 보여줍니다.
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}")Link to this sectionSoftmax와 관련 개념의 차이#
While Softmax is dominant in multi-class scenarios, it is important to distinguish it from other mathematical functions used in model training and architecture design:
- Sigmoid: Sigmoid 함수도 값을 0과 1 사이로 스케일링하지만, 각 출력을 독립적으로 처리합니다. 이로 인해 Sigmoid는 binary classification(이진 분류)(예/아니오)이나 클래스가 상호 배타적이지 않은 다중 레이블 분류(예: 이미지가 "사람"과 "배낭"을 모두 포함할 수 있는 경우)에 이상적입니다. Softmax는 확률의 합이 1이 되도록 강제하여 클래스들이 서로 경쟁하게 만듭니다.
- ReLU (Rectified Linear Unit): ReLU는 주로 신경망의 은닉 계층에서 비선형성을 도입하기 위해 사용됩니다. Softmax와 달리 ReLU는 출력을 특정 범위로 제한하지 않으며(음수 입력에 대해 0을, 양수 입력에 대해 입력값을 그대로 출력함), 확률 분포를 생성하지 않습니다.
- Argmax: Softmax가 모든 클래스에 대한 확률을 제공하는 반면, Argmax function(Argmax 함수)은 종종 가장 높은 확률을 가진 단일 인덱스를 선택하는 데 함께 사용됩니다. Softmax는 "소프트"한 신뢰도를 제공하고, Argmax는 "하드"한 최종 결정을 제공합니다.
Link to this section고급 통합#
현대적인 머신러닝 파이프라인에서 Softmax는 종종 손실 함수 내에서 암시적으로 계산됩니다. 예를 들어, Cross-Entropy Loss는 Softmax와 음의 로그 우도를 단일 수학적 단계로 결합하여 학습 중 수치적 안정성을 향상시킵니다. Ultralytics Platform과 같은 플랫폼은 이러한 복잡성을 자동으로 처리하므로, 사용자는 이러한 수학적 연산을 직접 구현할 필요 없이 강력한 모델을 학습할 수 있습니다.






