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

Softmax

探索人工智能中的Softmax函数。了解它Ultralytics 神经网络,将logits转换为多类分类中的概率值。

Softmax是人工智能领域中至关重要的数学函数,在许多分类算法中担任最终步骤。它将原始数值向量(通常称为logits)转换为概率向量。 这种转换确保输出值均为正数且总和精确为1,从而有效生成有效的概率分布。正因如此,Softmax成为多类分类神经网络输出层的标准激活函数——当系统需从两个以上互斥选项中选择单一类别时,该函数便发挥关键作用。

软磁技术

在典型的深度学习(DL)工作流中,网络各层执行复杂的矩阵乘法与加法运算。最终层在激活前输出的原始分数称为logits。这些数值范围可从负无穷延伸至正无穷,因此难以直接将其解释为置信度水平。

Softmax通过执行两项主要操作来解决这个问题:

  1. 幂运算:计算每个输入数的指数值。此步骤确保所有数值均为非负(因$e^x$始终为正),同时对远低于最大值的数值施加惩罚,从而突出最大分数。
  2. 归一化:它将这些指数值相加,然后将每个指数值除以这个总和。这个归一化过程将数值缩放为整体的组成部分,使开发人员能够将其解释为百分比置信度评分。

实际应用

输出清晰概率的能力使Softmax在各行各业和机器学习(ML)任务中不可或缺。

  • 图像分类:在计算机视觉领域,模型通过Softmax实现图像分类。例如, Ultralytics 模型分析 某张照片时,可能为"金毛寻回犬"、"德国牧羊犬"和 "贵宾犬"等类别生成对应分数。 Softmax将这些分数转换为概率值(如0.85、0.10、0.05),表明图像包含金毛寻回犬的置信度较高。该技术对各类应用至关重要,涵盖从自动照片整理到医疗诊断等 医疗健康领域的人工智能应用
  • 自然语言处理(NLP):Softmax是大型语言模型(LLMs)文本生成的核心引擎。当像 Transformer 生成句子时,会通过计算词汇表中每个单词的得分来预测下一个词(标记)。Softmax将这些得分转化为概率值,使模型能够选择最可能的下一个词,从而实现流畅的机器翻译和对话式人工智能。
  • 强化学习: 强化学习中的智能体常采用Softmax函数选择动作。智能体并非总是选择价值最高的动作,而是利用概率探索不同策略,在机器人控制或游戏等场景中实现探索与利用的平衡。

Python 代码示例

以下示例演示了如何加载预训练的 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在多类场景中占据主导地位,但必须将其与模型训练和架构设计中使用的其他数学函数区分开来:

  • SigmoidSigmoid函数同样将值缩放至0到1之间,但它独立处理每个输出。这使得Sigmoid非常适合二元分类(是/否)或多标签分类(类之间不互斥,例如一张图像可能同时包含"人物"和"背包")。 Softmax 则强制概率之和为一,使各类别相互竞争。
  • ReLU(整流线性单元) ReLU主要用于网络的隐藏层以引入非线性。与Softmax不同,ReLU不会将输出限制在特定范围内(它仅对负输入输出零,对正输入输出输入值本身),也不会生成概率分布。
  • Argmax:虽然Softmax为所有类别提供概率值但Argmax函数常与之配合使用,用于选取概率最高的单一索引。Softmax提供"软"置信度,而Argmax则给出"硬"的最终决策。

高级集成

在现代机器学习管道中,Softmax通常隐式地包含在损失函数的计算中。例如, 交叉熵损失 将Softmax与负对数似然函数整合为单一步骤,从而提升训练过程中的数值稳定性。诸如Ultralytics 工具会自动处理这些复杂性,使用户无需手动实现这些数学运算即可训练出稳健的模型。

加入Ultralytics 社区

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

立即加入