探索 AI 中的 Softmax 函数。了解它如何使用 Ultralytics YOLO26 和神经网络将 logits 转换为多类别分类的概率。
Softmax 是人工智能领域的一个关键数学函数,特别是在许多分类算法中作为最后一步。它将一个原始数值向量(通常称为 logits)转换为一个概率向量。这种转换确保了所有输出值都是正数且总和恰好为一,从而有效地创建了一个有效的概率分布。由于这一特性,Softmax 是多类别分类神经网络输出层中使用的标准激活函数,在这种分类中,系统必须从两个以上互斥的选项中选择一个类别。
在典型的深度学习 (DL)工作流程中,网络的各层执行复杂的矩阵乘法和加法运算。最后一层在激活之前的输出由原始分数组成,这些分数被称为logits。这些值可以从负无穷到正无穷,因此很难直接将其解释为置信度。
Softmax 通过执行两个主要操作来解决这个问题:
输出清晰概率的能力使Softmax在各个行业和 机器学习 (ML)任务中不可或缺。
以下示例演示了如何加载预训练的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}")
尽管Softmax在多类别场景中占主导地位,但将其与模型训练和架构设计中使用的其他数学函数区分开来很重要:
在现代ML管道中,Softmax通常在损失函数内部隐式计算。例如,交叉熵损失 (Cross-Entropy Loss)将Softmax和负对数似然结合到一个数学步骤中,以提高训练期间的数值稳定性。像Ultralytics Platform这样的平台会自动处理这些复杂性,使用户无需手动实现这些数学运算即可训练出鲁棒模型。
开启您的机器学习未来之旅