Sigmoid
探索 Sigmoid 函数在机器学习中的作用。了解该激活函数如何实现 Ultralytics YOLO26 等模型中的二元分类。
Sigmoid 函数是一个基础的数学组件,广泛应用于 machine learning (ML) 和 deep learning (DL) 领域。它通常被称为“挤压函数”,它以任何实数作为输入,并将其映射到 0 到 1 之间的值。这种具有特征性的“S”形曲线使其非常适合将原始模型输出转换为可解释的概率。在 neural network (NN) 的上下文中,Sigmoid 函数充当 activation function,引入了非线性,使模型能够学习超越简单线性关系的复杂模式。虽然它在深层隐藏层中在很大程度上已被其他函数取代,但它仍然是二分类任务中输出层的标准选择。
Sigmoid 在 AI 中的机制#
Sigmoid 函数的核心作用是将输入数据(通常称为 logits)转换为归一化范围。这种转换对于预测事件发生可能性的任务至关重要。通过将输出限制在 0 到 1 之间,该函数提供了一个清晰的概率评分。
- Logistic Regression: 在传统统计建模中,Sigmoid 是逻辑回归背后的引擎。它允许数据科学家估计二元结果的概率,例如客户是会流失还是留存。
- Binary Classification: 对于旨在区分两个类别(例如“猫”与“狗”)的神经网络,最后一层通常采用 Sigmoid 激活。如果输出大于阈值(通常为 0.5),模型就会预测为正类。
- Multi-Label Classification: 与类别互斥的多类问题不同,多任务标签允许图像或文本同时属于多个类别。在这里,Sigmoid 独立应用于每个输出节点,使模型能够在同一个场景中检测出“汽车”和“人”而不会发生冲突。
与其它激活函数的主要区别#
虽然 Sigmoid 曾是所有层的默认选择,但研究人员发现了诸如 vanishing gradient 问题之类的局限性,即梯度变得太小而无法在深层网络中有效地更新权重。这导致隐藏层开始采用替代方案。
- Sigmoid 与 ReLU (Rectified Linear Unit) 的对比: ReLU 计算速度更快,并且通过直接输出正输入(否则为零)来避免梯度消失。它是 YOLO26 等现代架构中隐藏层的首选,而 Sigmoid 则保留用于特定任务中的最终输出层。
- Sigmoid 与 Softmax 的对比: 两者都将输出映射到 0-1 的范围内,但它们服务于不同的目的。Sigmoid 独立对待每个输出,使其成为二分类或多标签任务的理想选择。Softmax 强制所有输出之和为 1,从而为只有一个类别正确的 multi-class classification 创建概率分布。
实际应用#
Sigmoid 函数的用途广泛,延伸至需要概率估计的各个行业。
-
医学诊断: 用于 medical image analysis 的 AI 模型通常使用 Sigmoid 输出预测 X 射线或 MRI 扫描中存在疾病的概率。例如,模型可能会输出 0.85,表示肿瘤的可能性为 85%,从而帮助医生进行早期检测。
-
垃圾邮件检测: 电子邮件过滤系统利用带有 Sigmoid 分类器的 natural language processing (NLP) 模型来确定传入的消息是“垃圾邮件”还是“非垃圾邮件”。该模型分析关键字和元数据,输出决定电子邮件是落入收件箱还是垃圾邮件文件夹的分数。
实际实施#
你可以使用 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 Platform 提供了一个直观的界面来管理数据集并训练诸如 YOLO26 等先进模型。通过自动处理复杂的架构,它使用户能够专注于为其特定的 computer vision 应用程序收集高质量的 training data。






