了解 Softmax 如何将得分转化为概率,从而为人工智能中的分类任务赋能,并推动图像识别和自然语言处理的成功应用。
在人工智能领域,Softmax 函数是原始数字数据和可解释结果之间的重要桥梁。 可解释结果之间的重要桥梁。它是一种数学运算,可将实数矢量转换为概率分布。 分布,使其成为现代 神经网络的基本组成部分。通过将复杂的模型 通过将复杂的模型输出转化为所有值相加为一的可读格式,Softmax 使系统能够表达各种结果的置信度。 各种结果的置信度。这一功能在 机器学习(ML)任务中尤为重要。 从多个不同类别中选择一个正确答案。
要了解 Softmax 的工作原理,首先必须了解 "logits "的概念。当一个 深度学习 (DL)模型处理输入时,最后一层 最后一层通常会产生一个原始分数列表,即 logits。这些分数的范围从负无穷大到 正无穷大,并不直观。Softmax 采用这些对数并执行两个主要操作:
结果是一个概率分布,其中每个值都代表输入属于某一特定类别的可能性。 特定类别的可能性。通过这种转换,开发人员可以将输出结果解释为置信度得分,例如 95% 的 确定图像包含特定对象。
Softmax 是多类分类问题中输出层的标准激活函数。它能够 处理互斥类的能力使其在各种 人工智能解决方案中不可或缺。
下面的示例演示了如何加载预先训练好的分类模型,并通过使用 Softmax
生成的概率分数。 ultralytics 包装
from ultralytics import YOLO
# Load a pre-trained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Run inference on a sample image URL
results = model("https://ultralytics.com/images/bus.jpg")
# The model applies Softmax internally for classification tasks
# Display the top predicted class and its confidence score
top_class = results[0].probs.top1
print(f"Predicted Class: {results[0].names[top_class]}")
print(f"Confidence: {results[0].probs.top1conf.item():.4f}")
虽然 Softmax 在多类任务的输出层中占主导地位,但重要的是要将它与其他 激活函数的区别 区别:
实际上,在训练阶段,Softmax 很少单独使用。它几乎总是与一个特定的 损失函数(或 Log 损失)。这种组合可以有效地测量预测概率与实际真实标签之间的距离。 标签
此外,计算大数的指数可能导致数值不稳定(溢出)。现代 框架,如 PyTorch和 TensorFlow会自动处理 通过在其损失计算函数中实施稳定版本(通常为 "LogSoftmax"),自动处理这一问题。 函数中实施稳定版本(通常为 "LogSoftmax")来自动处理。了解这些细微差别对于有效的 模型部署和确保准确性等指标 准确性等指标准确反映模型性能。展望未来 展望未来,即将推出的YOLO26等先进架构将继续改进如何利用这些概率分布进行端到端检测和分类。 分布如何用于端到端检测和分类。