探索人工智能中的Softmax函数。了解它Ultralytics 神经网络,将logits转换为多类分类中的概率值。
Softmax是人工智能领域中至关重要的数学函数,在许多分类算法中担任最终步骤。它将原始数值向量(通常称为logits)转换为概率向量。 这种转换确保输出值均为正数且总和精确为1,从而有效生成有效的概率分布。正因如此,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在多类场景中占据主导地位,但必须将其与模型训练和架构设计中使用的其他数学函数区分开来:
在现代机器学习管道中,Softmax通常隐式地包含在损失函数的计算中。例如, 交叉熵损失 将Softmax与负对数似然函数整合为单一步骤,从而提升训练过程中的数值稳定性。诸如Ultralytics 工具会自动处理这些复杂性,使用户无需手动实现这些数学运算即可训练出稳健的模型。