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

Leaky ReLU

探索 Leaky ReLU 激活函数在 AI 和 ML 中的强大功能。解决 ReLU 死亡问题,并提高 CV、NLP、GAN 等领域的模型性能!

Leaky Rectified Linear Unit 或 Leaky ReLU 是一种专门的 激活函数,主要用于 神经网络(NN)中引入非线性 模型中引入非线性。它是标准 整流线性单元 (ReLU) 的增强版,专门设计用于 它的功能是标准整流线性单元(ReLU)的增强版,专为缓解 "垂死 ReLU "问题而设计--在这种情况下,神经元会变得不活跃,完全停止学习。 完全停止学习的情况。Leaky ReLU 允许负输入有一个小的、不为零的梯度,从而确保信息 继续在网络中流动 反向传播,从而实现更强大、更稳定的 模型训练。这一微小的修改使它成为许多现代 在许多现代 深度学习(DL)架构中的重要组成部分,尤其是在训练深度或复杂网络时。 尤其是在训练深度或复杂网络时。

解决垂死神经元问题

Leaky ReLU 的主要创新在于它对负值的处理。在传统的 ReLU函数中,任何负输入 都会导致输出为零。如果神经元由于权重初始化不当或激进的数据移位而持续接收负输入 权重初始化或激进的数据移动,神经元就会 就会因梯度为零而 "死亡"。梯度为零意味着 优化算法无法更新该神经元的 该神经元的权重,使其在剩余的训练过程中失去作用。

Leaky ReLU 通过执行一个简单的负输入线性方程来解决这个问题: f(x) = alpha * x, 其中 alpha 是一个很小的常数(通常为 0.01)。这种 "泄漏 "确保了即使在单元 不工作时,仍有少量非零梯度流过。这种持续的梯度流可以防止 消失的梯度 在局部范围内解决问题、 允许模型有效恢复和调整权重。这种行为在以下研究中得到了正式分析 等研究中对这一行为进行了正式分析。 卷积网络中整流激活的经验评估该报告强调了其与标准纠正方法相比的优势。

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

由于 Leaky ReLU 能够保持梯度流,因此被广泛应用于对训练稳定性要求极高的任务中。 至关重要。

  • 生成对抗网络(GANs):Leaky ReLU 最突出的用途之一是用于 的判别网络中。 生成式对抗网络(GAN)的判别网络中。GAN 的训练是出了名的不稳定,经常会出现梯度消失的情况,从而导致判别器 学习如何区分真实数据和 合成数据。通过确保梯度流动 为负值,Leaky ReLU 可帮助生成器和判别器之间保持良性竞争、 从而获得保真度更高的输出结果。
  • 计算机视觉架构:许多 计算机视觉 (CV)模型,尤其是 物检测器的早期迭代,利用 Leaky ReLU 来改进深度 卷积神经网络(CNN)的特征提取。虽然一些最先进的模型,如 Ultralytics YOLO11等一些先进模型已过渡到 SiLU 等一些先进模型已过渡到 SiLU 等更平滑的函数,但 Leaky ReLU 仍然是一种计算效率高的替代方法,适用于定制对象检测架构或轻量级 对象检测架构或在边缘设备上运行的轻量级 在边缘设备上运行的轻量级模型。

在PyTorch中实现 Leaky ReLU

在流行的框架中实施 Leaky ReLU 非常简单,例如 PyTorchTensorFlow.下面的示例演示了如何使用 PyTorch 集成到一个简单的顺序模型中。 nn 模块。

import torch
import torch.nn as nn

# Define a neural network layer with Leaky ReLU
# negative_slope=0.01 sets the leak factor for negative inputs
model = nn.Sequential(
    nn.Linear(in_features=10, out_features=5),
    nn.LeakyReLU(negative_slope=0.01),
    nn.Linear(in_features=5, out_features=2),
)

# Create a sample input tensor
input_data = torch.randn(1, 10)

# Perform a forward pass (inference)
output = model(input_data)

print(f"Model output: {output}")

与相关激活函数的比较

将 Leaky ReLU 与其他激活函数区分开来,对于为你的架构选择合适的组件非常重要。 架构。

  • ReLU 与 Leaky ReLU:标准 ReLU对所有负输入 提供了真正的稀疏性,但却存在神经元死亡的风险。Leaky ReLU 则牺牲了完美的稀疏性,以保证梯度流动。 保证梯度流。
  • PReLU(参数 ReLU):Leaky ReLU 使用一个固定常数(如 0.01)作为负斜率,而 PReLU 则将这一斜率作为可学习的参数。 斜率,而PReLU则将这一斜率视为可学习的参数。这允许网络在训练过程中优化 激活形状,从而提高 准确性,但代价是少量的计算开销。
  • SiLU 和 GELU:现代函数,如 SiLU(西格玛线性单元)GELU(高斯误差线性单元) 等现代函数提供了平滑、概率性的 ReLU 近似值。在 变压器和最新的 YOLO 模型中的首选,因为它们在深度网络中表现出色。 Leaky ReLU 的计算速度仍然更快。

选择正确的激活函数通常涉及 超参数调整和验证 在标准计算机视觉数据集上验证性能。当标准 ReLU 当标准 ReLU 失效或在深度网络中观察到训练不稳定时,泄漏 ReLU 是一种极佳的默认选择。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入