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

Sigmoid 函数

探索S形函数在机器学习中的作用。了解这种激活函数如何Ultralytics 等模型中实现二元分类。

S形函数是机器学习(ML) 和深度学习(DL)领域广泛应用的基础数学组件。它常被称为"压平函数",能将任意实数值作为输入,映射为0到1之间的数值。这种独特的"S"形曲线特性使其在将原始模型输出转换为可解释概率时具有非凡价值。 在神经网络(NN)中, S形函数作为激活函数发挥作用, 引入非线性特性使模型能够学习 超越简单线性关系的复杂模式。 尽管在深度隐藏层中已被其他函数 广泛取代,它仍是二元分类任务 中输出层的标准选择。

人工智能中S型曲线的运作机制

在核心层面,S形函数将输入数据(通常称为logits)转换为标准化范围。这种转换对于需要预测事件发生概率的任务至关重要。通过将输出值限制在0到1之间,该函数能提供清晰的概率评分。

  • 逻辑回归在传统统计建模中,Sigmoid函数是逻辑回归的核心引擎。它使数据科学家能够估计二元结果的概率,例如客户是否会流失或留存。
  • 二元分类对于 设计用于区分两个类别(例如"猫"与"狗")的神经网络,最终层通常采用 Sigmoid激活函数。若输出值大于阈值(通常为0.5),模型则预测为正类。
  • 多标签分类 与类别互斥的多类问题不同,多标签任务允许图像或文本同时属于多个类别。在此,Sigmoid函数独立应用于每个输出节点,使模型能够在同一场景中detect "和"人"而不产生冲突。

与其他激活函数的关键区别

尽管S形函数曲线曾是所有层的默认选择,但研究人员发现了其局限性,例如梯度消失问题——在深度网络中,梯度变得过小而无法有效更新权重。这促使人们开始为隐藏层采用替代方案。

  • Sigmoid 与 ReLU(整流线性单元)对比: ReLU 计算速度更快,通过将正输入直接输出为正值、负输入输出为零来避免梯度消失问题。在YOLO26 等现代架构中,它被优先用于隐藏层,而 Sigmoid 则保留用于特定任务的最终输出层。
  • Sigmoid与Softmax两者将输出映射到0-1区间,但用途不同。Sigmoid独立处理每个输出,适用于二元或多标签任务Softmax强制所有输出之和为1,生成概率分布用于多类分类任务——其中仅有一个类别是正确的。

实际应用

S形函数的实用性广泛应用于需要概率估计的各个行业。

  1. 医学诊断:用于医学影像分析的人工智能模型常采用S形函数输出,以预测X光或MRI扫描中疾病存在的概率。例如,模型可能输出0.85,表明存在肿瘤的可能性为85%,从而协助医生进行早期检测。
  2. 垃圾邮件检测:电子邮件过滤系统采用 自然语言处理(NLP) 模型结合Sigmoid分类器,判断收到的邮件属于"垃圾邮件"或"非垃圾邮件"。该 模型通过分析关键词和元数据,输出评分值以决定邮件最终进入收件箱还是 垃圾邮件文件夹。

具体实施

你可以PyTorch(一个用于构建深度学习模型的流行库)观察Sigmoid函数如何转换数据。这个简单示例展示了该函数对不同输入值范围的"压扁"效果。

import torch
import torch.nn as nn

# Create a Sigmoid layer
sigmoid = nn.Sigmoid()

# Define input data (logits) ranging from negative to positive
input_data = torch.tensor([-5.0, -1.0, 0.0, 1.0, 5.0])

# Apply Sigmoid to squash values between 0 and 1
output = sigmoid(input_data)

print(f"Input: {input_data}")
print(f"Output: {output}")
# Output values near 0 for negative inputs, 0.5 for 0, and near 1 for positive inputs

对于希望训练采用这些概念的模型却又不想编写底层代码的用户Ultralytics 提供了一个直观的界面来管理数据集并训练YOLO26等尖端模型。通过自动处理架构复杂性,它让用户能够专注于为其特定的计算机视觉应用收集高质量的训练数据

加入Ultralytics 社区

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

立即加入