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

激活函数

探索ReLU、Sigmoid和SiLU等激活函数如何赋能深度学习。了解Ultralytics YOLO26如何利用它们来掌握复杂的视觉模式。

激活函数是 神经网络 (NN) 的一个基本组成部分,它根据一组输入决定神经元的输出。它常被称为“守门员”,决定神经元是应该处于激活状态(即对网络的预测做出贡献)还是非激活状态。如果没有这些数学运算,神经网络将表现得像一个简单的 线性回归 模型,无论其深度如何,都无法掌握复杂的模式。通过引入非线性,激活函数使 深度学习 (DL) 模型能够学习复杂的结构,例如手写数字的曲线或 医学图像分析 中的细微异常。

核心功能与常见类型

激活函数的主要作用是将输入信号映射到所需的输出范围,并为网络生成的feature maps引入复杂性。开发者根据层的位和model training过程的目标选择特定的函数。

  • ReLU (Rectified Linear Unit): 目前隐藏层中最广泛使用的函数。如果输入为正,则直接输出输入值,否则输出零。这种简洁性加速了计算,并有助于缓解 梯度消失问题,这是训练深度架构时常见的挑战。
  • Sigmoid此函数将输入值“压缩”到0到1的范围内。它常用于二分类任务的最后一层,例如判断电子邮件是否为垃圾邮件,因为输出可以解释为概率分数
  • Softmax多分类问题中的核心算法,它将数值向量转换为概率分布,其中所有值之和为1。这是图像分类任务ImageNet 中的任务)的标准处理方式。
  • SiLU (Sigmoid线性单元)一种平滑的非单调函数,常用于YOLO26等最先进的架构中。SiLU在非常深的模型中比ReLU具有更好的梯度流动,有助于提高准确性

人工智能在现实世界中的应用

激活函数的选择直接影响日常运营中部署的AI系统的性能和 推理延迟

  1. 零售目标检测:在自动化结账系统中,object detection模型识别传送带上的产品。隐藏层使用ReLU或SiLU等高效函数快速处理视觉特征。输出层确定类别(例如,“苹果”,“谷物”)和bounding box坐标,使系统能够自动计算账单。这对于零售AI至关重要,以确保速度和客户满意度。
  2. 情感分析:自然语言处理 (NLP)中,模型分析客户评论以衡量满意度。网络可能处理文本数据,并在最后一层使用Sigmoid函数输出介于0(负面)和1(正面)之间的情感分数,帮助企业使用机器学习 (ML)大规模了解客户反馈。

实施实例

您可以通过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])

区分相关概念

区分激活函数与学习管道中的其他数学组件至关重要。

  • 激活函数与损失函数 激活函数在前向传播过程中运作,用于塑造神经元的输出。损失函数(如均方误差)则在前向传播结束时计算预测值与实际目标值之间的误差。
  • 激活函数与 优化算法: 激活函数定义了输出结构,而优化器(如 Adam随机梯度下降)决定 如何 更新 模型权重 以最小化损失函数计算出的误差。
  • 激活函数与 迁移学习: 激活函数是网络层中固定的数学运算。迁移学习是一种将预训练模型适应新任务的技术,通常保留原始架构的激活函数,同时通过 Ultralytics Platform 在自定义数据集上微调权重。

要更深入地了解这些函数如何融入更大的系统,请查阅 PyTorch关于非线性激活的文档,或阅读关于 计算机视觉任务 如何依赖它们进行特征提取的文章。

让我们一起共建AI的未来!

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