探索ReLU、Sigmoid和SiLU等激活函数如何推动深度学习发展。Ultralytics 运用这些函数来掌握复杂的视觉模式。
激活函数是神经网络(NN)的核心组件,它根据输入数据集决定神经元的输出结果。常被称为"守门人"的激活函数,决定着神经元是否处于活跃状态——即参与网络预测——或保持休眠。若缺乏这些数学运算,神经网络将仅表现为简单的线性回归模型,无法捕捉复杂模式,无论其深度如何。通过引入非线性特性,激活函数使深度学习(DL)模型能够学习复杂结构,例如手写数字的曲线或医学图像中的细微异常。 模式。通过引入非线性特性,激活函数使深度学习(DL)模型能够学习复杂结构,例如手写数字中的曲线特征或医学图像分析中的细微异常。
激活函数的主要作用是将输入信号映射到期望的输出范围,并为网络生成的特征图引入复杂性。开发者会根据层的位置和模型训练过程的目标来选择特定的函数。
激活函数的选择直接影响日常运营中部署的人工智能系统的性能和推理延迟。
您可以通过PyTorch可视化工具直观了解不同激活函数如何转换数据。 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])
区分激活函数与学习管道中的其他数学组件至关重要。
若想深入了解这些函数如何融入更庞大的系统,请查阅 PyTorch 关于非线性激活函数PyTorch 或阅读 计算机视觉任务 如何依赖它们进行特征提取的相关内容。