探索Sigmoid函数在机器学习中的作用。了解这个激活函数如何使Ultralytics YOLO26等模型实现二元分类。
Sigmoid 函数是 机器学习 (ML) 和 深度学习 (DL) 领域广泛使用的基本数学组件。它常被称为“挤压函数”,接收任何实数值作为输入,并将其映射到 0 到 1 之间的值。这种独特的“S”形曲线使其在将原始模型输出转换为可解释的概率方面非常有用。在 神经网络 (NN) 的上下文中,Sigmoid 函数充当 激活函数,引入非线性,使模型能够学习超越简单线性关系的复杂模式。尽管它在深度隐藏层中已 largely 被其他函数取代,但在二分类任务的输出层中,它仍然是标准选择。
Sigmoid 函数的核心作用是将输入数据(通常称为 logits)转换为标准化范围。这种转换对于目标是预测事件发生可能性的任务至关重要。通过将输出限制在 0 到 1 之间,该函数提供了清晰的概率分数。
尽管Sigmoid曾是所有层的默认选择,但研究人员发现了其局限性,例如梯度消失问题,即在深度网络中,梯度变得过小以致无法有效更新权重。这导致了隐藏层采用替代方案。
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 Platform 提供了一个直观的界面,用于管理数据集和训练 YOLO26 等最先进的模型。通过自动处理架构复杂性,它使用户能够专注于为其特定的 计算机视觉 应用收集高质量的 训练数据。

开启您的机器学习未来之旅