术语表

软磁

了解 Softmax 如何在人工智能分类任务中将分数转化为概率,为图像识别和 NLP 的成功提供动力。

Softmax 是一种数学函数,可将原始实值分数向量(通常称为 logits)转换为概率向量。在机器学习(ML)中,Softmax 主要用作神经网络输出层的激活函数。它的主要作用是将网络的最终得分转化为多个互斥类别的有意义的概率分布。由此产生的概率总和为 1,因此很容易将其解释为模型对每种可能结果的置信度。

Softmax 的工作原理

想象一下,一个神经网络试图判断图像属于哪个类别。网络的最后一层为每个类别生成一组原始分数。分数越高,说明模型越倾向于该类别,但这些分数并不是标准化的,很难直接使用。

Softmax 函数利用这些分数执行两个主要步骤:

  1. 它对每个分数应用指数函数。这使得所有数值都是正数,并夸大了它们之间的差异--分数越大,比例就越大。
  2. 它通过用每个指数值除以它们的总和来使这些指数值标准化。这一步会将这些值按比例缩小,使它们的总和为 1.0,从而有效地创建一个概率分布

最终输出是一个概率列表,其中每个值代表模型预测输入属于特定类别的可能性。然后,概率最高的类别将被选为最终预测结果。

人工智能和机器学习中的应用

Softmax 是任何执行多类分类的深度学习模型的基础。它能够提供清晰的概率输出,因此在各个领域都非常有价值。

  • Image Classification: This is the most common use case. A Convolutional Neural Network (CNN) trained on a dataset like ImageNet will use Softmax in its final layer. For an image of a pet, the model might output probabilities like {Dog: 0.9, Cat: 0.08, Rabbit: 0.02}, clearly indicating its prediction. Models like Ultralytics YOLO use this for classification tasks.
  • 自然语言处理(NLP)语言建模中,Softmax 用于预测序列中的下一个单词。像Transformer这样的模型将为其词汇表中的每个单词计算分数,并使用 Softmax 将这些分数转换为概率。这是大型语言模型 (LLM)的核心组件,为从机器翻译文本生成的各种应用提供动力。
  • 医学图像分析在分析医学扫描以对不同类型的组织进行分类或确定病理(如良性、恶性或健康)时,模型将使用 Softmax 为每种诊断分配概率,帮助临床医生做出更明智的决定。
  • 强化学习在基于策略的强化学习中,Softmax 可用于将不同行动的学习值转换为策略,即代理可能采取的行动的概率分布。

Softmax 与其他激活函数的比较

将 Softmax 与其他常见的激活函数区分开来非常重要,因为它们的作用各不相同。

  • 西格码Sigmoid 函数的输出值也在 0 和 1 之间,但它用于二元分类(一个类别与另一个类别)或多标签分类,即输入可以同时属于多个类别。例如,一部电影可以同时被归类为 "喜剧 "和 "动作"。相比之下,Softmax 适用于多类别分类,即类别之间相互排斥--手写数字必须是 78,但不能同时是 7 和 8。
  • ReLU(整流线性单元) ReLU及其变体(如Leaky ReLUSiLU)用于神经网络的隐藏层。它们的主要作用是引入非线性,让模型学习数据中的复杂模式。它们不会产生概率,也不会用作分类的输出函数。
  • Tanh(双曲正切)与 ReLU 一样,它也用于隐藏层,尤其是在较早的递归神经网络(RNN)架构中。它不适合为分类任务生成概率输出。

实际考虑因素

Softmax 虽然功能强大,但对非常大的输入分数很敏感,有时会导致数值不稳定(溢出或下溢)。为了解决这个问题,PyTorchTensorFlow等现代深度学习框架在幕后实现了数值稳定版本的 Softmax。

模型训练过程中,Softmax 几乎总是与一种名为 Cross-Entropy Loss(或 Log Loss)的特定损失函数搭配使用。这种组合对于训练多类分类器非常有效。了解 Softmax 的行为对于有效的模型训练和解释至关重要,可以使用Ultralytics HUB等平台进行管理和跟踪,以简化实验和部署

加入 Ultralytics 社区

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

立即加入
链接复制到剪贴板