深圳Yolo 视觉
深圳
立即加入
词汇表

Softmax

了解 Softmax 如何将得分转化为概率,从而为人工智能中的分类任务赋能,并推动图像识别和自然语言处理的成功应用。

在人工智能领域,Softmax 函数是原始数字数据和可解释结果之间的重要桥梁。 可解释结果之间的重要桥梁。它是一种数学运算,可将实数矢量转换为概率分布。 分布,使其成为现代 神经网络的基本组成部分。通过将复杂的模型 通过将复杂的模型输出转化为所有值相加为一的可读格式,Softmax 使系统能够表达各种结果的置信度。 各种结果的置信度。这一功能在 机器学习(ML)任务中尤为重要。 从多个不同类别中选择一个正确答案。

软磁技术

要了解 Softmax 的工作原理,首先必须了解 "logits "的概念。当一个 深度学习 (DL)模型处理输入时,最后一层 最后一层通常会产生一个原始分数列表,即 logits。这些分数的范围从负无穷大到 正无穷大,并不直观。Softmax 采用这些对数并执行两个主要操作:

  1. 指数化:它将 指数函数。这一步 步骤确保所有输出值都不是负值,并强调较大的分数,使模型的最强 预测更加突出。
  2. 归一化:它将指数值相加,然后将每个值除以总和。 之和。这个 归一化过程 缩放输出,使它们加起来正好为 1.0(或 100%)。

结果是一个概率分布,其中每个值都代表输入属于某一特定类别的可能性。 特定类别的可能性。通过这种转换,开发人员可以将输出结果解释为置信度得分,例如 95% 的 确定图像包含特定对象。

人工智能在现实世界中的应用

Softmax 是多类分类问题中输出层的标准激活函数。它能够 处理互斥类的能力使其在各种 人工智能解决方案中不可或缺。

  • 图像分类:在计算机视觉中,像 Ultralytics YOLO11等模型利用 Softmax 对图像进行分类。 例如,如果监控摄像头捕捉到一辆汽车,模型就会分析视觉特征,并输出 "汽车"、"卡车"、"公共汽车 "和 "摩托车 "等类别的 汽车"、"卡车"、"公共汽车 "和 "摩托车 "等类别的概率。类 软最大值得分最高的类别决定最终标签。这种机制在从 医疗图像分析到自动 驾驶等任务的核心。
  • 自然语言处理 (NLP):Softmax 为 大型语言模型(LLM)和 聊天机器人的文本生成能力。当 Transformer模型生成一个 句子时,它会为其词汇表中的每个单词计算分数,以确定下一个单词。Softmax 将这些分数转换成概率,让模型选择最有可能出现的下一个单词,从而促进流畅的 机器翻译和对话。

Python 代码示例

下面的示例演示了如何加载预先训练好的分类模型,并通过使用 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 在多类任务的输出层中占主导地位,但重要的是要将它与其他 激活函数的区别 区别:

  • 西格莫德与 Softmax 类似,Sigmoid 不过,Sigmoid 会独立处理每个输出,因此非常适合二元分类("是"/"否 "决策或 二元分类(是/否决定)或 多标签分类,因为图像中可能同时包含 "狗 "和 "球"。软最大 反之,Softmax 会在不同类别之间进行竞争,即增加一个类别的概率,就会减少其他类别的概率。 其他类别。
  • ReLU(整流线性单元) ReLU 主要用于神经网络的隐藏层,以引入非线性并加快 模型训练。与 Softmax 不同,ReLU 不输出 与 Softmax 不同,ReLU 不输出概率,也不将输出限制在特定范围内(非负值除外)。
  • Tanh(双曲正切) Tanh 的输出值介于 -1 和 1 之间。 递归神经网络 (RNN),但很少用作分类的最终输出函数,因为它不会产生概率分布。 但很少用作分类的最终输出函数,因为它不会产生概率分布。

培训的实际考虑因素

实际上,在训练阶段,Softmax 很少单独使用。它几乎总是与一个特定的 损失函数(或 Log 损失)。这种组合可以有效地测量预测概率与实际真实标签之间的距离。 标签

此外,计算大数的指数可能导致数值不稳定(溢出)。现代 框架,如 PyTorchTensorFlow会自动处理 通过在其损失计算函数中实施稳定版本(通常为 "LogSoftmax"),自动处理这一问题。 函数中实施稳定版本(通常为 "LogSoftmax")来自动处理。了解这些细微差别对于有效的 模型部署和确保准确性等指标 准确性等指标准确反映模型性能。展望未来 展望未来,即将推出的YOLO26等先进架构将继续改进如何利用这些概率分布进行端到端检测和分类。 分布如何用于端到端检测和分类。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入