Activation Function
探索 ReLU、Sigmoid 和 SiLU 等激活函数如何实现深度学习。了解 Ultralytics YOLO26 如何利用这些函数掌握复杂的视觉模式。
激活函数是神经网络 (NN)的基础组件,它根据一组输入确定神经元的输出。激活函数通常被称为“守门员”,用于决定神经元应处于激活状态(即参与网络的预测)还是非激活状态。如果没有这些数学运算,无论网络深度如何,神经网络都会表现得像一个简单的线性回归模型,无法理解复杂模式。通过引入非线性,激活函数使深度学习 (DL)模型能够学习复杂结构,例如手写数字中的曲线或医学图像分析中的细微异常。
核心功能和常见类型#
激活函数的主要作用是将输入信号映射到所需的输出范围,并为网络生成的特征图引入复杂性。开发者会根据层所在的位置以及模型训练过程的目标来选择特定函数。
- ReLU(修正线性单元): 目前隐藏层中使用最广泛的函数。如果输入为正数,它会直接输出输入值;否则输出零。这种简单性能够加快计算,并帮助缓解梯度消失问题。梯度消失是训练深层架构时经常遇到的挑战。
- Sigmoid: 此函数会将输入值“压缩”到 0 和 1 之间的范围内。它常用于二分类任务的最终层,例如判断邮件是否为垃圾邮件,因为其输出可以解释为概率得分。
- Softmax: Softmax 对多类别问题至关重要,它会将一个数字向量转换为概率分布,使所有值的总和为 1。这是图像分类任务中的标准做法,例如ImageNet 数据集中的分类任务。
- SiLU(Sigmoid 线性单元): 这是一种平滑的非单调函数,常用于YOLO26等最先进的架构。与 ReLU 相比,SiLU 在非常深的模型中能够实现更好的梯度流,从而提升准确率。
AI 中的实际应用#
激活函数的选择会直接影响部署于日常运营中的 AI 系统的性能和推理延迟。
-
零售目标检测: 在自动结账系统中,目标检测模型会识别传送带上的商品。隐藏层使用 ReLU 或 SiLU 等高效函数快速处理视觉特征。输出层确定类别(例如“苹果”“谷物”)和边界框坐标,使系统能够自动计算账单。这对于零售业中的 AI至关重要,有助于确保速度和客户满意度。
-
情感分析: 在自然语言处理 (NLP)中,模型会分析客户评价以衡量满意度。网络可以处理文本数据,并在最终层使用 Sigmoid 函数输出介于 0(负面)和 1(正面)之间的情感得分,帮助企业借助机器学习 (ML)大规模了解客户反馈。
实现示例#
你可以使用 PyTorch 库可视化不同激活函数如何转换数据。以下代码片段演示了 ReLU(将负值归零)和 Sigmoid(压缩数值)之间的差异。
import torch
import torch.nn as nn
# Input data: negative, zero, and positive values
data = torch.tensor([-2.0, 0.0, 2.0])
# Apply ReLU: Negatives become 0, positives stay unchanged
relu_output = nn.ReLU()(data)
print(f"ReLU: {relu_output}")
# Output: tensor([0., 0., 2.])
# Apply Sigmoid: Squashes values between 0 and 1
sigmoid_output = nn.Sigmoid()(data)
print(f"Sigmoid: {sigmoid_output}")
# Output: tensor([0.1192, 0.5000, 0.8808])区分相关概念#
区分激活函数与学习流程中的其他数学组件非常重要。
- 激活函数 vs. 损失函数: 激活函数在前向传播期间运行,用于调整神经元的输出。损失函数(例如均方误差)会在前向传播结束时计算预测值与实际目标之间的误差。
- 激活函数 vs. 优化算法: 激活函数定义输出结构,而优化器(例如 Adam 或随机梯度下降)决定如何更新模型权重,以最小化损失函数计算出的误差。
- 激活函数 vs. 迁移学习: 激活函数是网络层中的固定数学运算。迁移学习是一种将预训练模型调整用于新任务的技术,通常会保留原始架构的激活函数,同时通过Ultralytics Platform在自定义数据集上微调权重。
如需深入了解这些函数如何融入更大的系统,请参阅 PyTorch 关于非线性激活的文档,或阅读计算机视觉任务如何依赖这些函数进行特征提取。









