发现 Leaky ReLU 激活对人工智能和 ML 的强大作用。解决濒临灭绝的 ReLU 问题,提高 CV、NLP、GAN 等模型的性能!
Leaky Rectified Linear Unit(通常称为 Leaky ReLU)是神经网络(NN),尤其是深度学习(DL)模型中使用的一种激活函数。它是标准整流线性单元(ReLU)激活函数的改进版本,专门用于解决 "垂死 ReLU "问题。当神经元变得不活跃,对任何输入的输出都为零时,就会出现这个问题,从而在反向传播过程中,由于梯度为零,神经元实际上无法在训练过程中学习。
与 ReLU 类似,如果输入为正,泄漏 ReLU 也会直接输出。然而,与任何负输入都输出零的 ReLU 不同,泄漏 ReLU 允许负输入有一个小的、不为零的恒定梯度(斜率)。这种 "泄漏 "可确保神经元在输入为负值时仍能保持激活状态,使梯度在网络中逆向流动,从而实现持续学习。小斜率通常是一个固定的小值(如 0.01),但参数 ReLU(PReLU)等变体允许在训练过程中学习这一斜率。
Leaky ReLU 背后的主要动机是缓解垂死 ReLU 问题。当标准 ReLU 神经元接收到大量负输入时,其输出会变为零。如果在训练过程中回流的梯度也为零,神经元的权重将不会更新,它可能会对所有输入保持永久不活动状态。Leaky ReLU 通过确保即使输入为负,也始终存在一个非零的小梯度来防止这种情况,从而防止神经元完全死亡,并提高训练过程的鲁棒性,尤其是在梯度消失问题也会引起关注的超深度网络中。
对于在整个训练过程中保持活跃神经元至关重要的情况,泄漏 ReLU 是一种有价值的工具。它的计算效率与标准 ReLU 相似,因此适用于大规模模型。主要应用包括
与标准ReLU 相比,Leaky ReLU 的主要优势在于避免了神经元死亡问题。其他激活函数,如 ELU(指数线性单元)或SiLU(Sigmoid 线性单元)也能解决这个问题,有时还能提供更平滑的梯度等优势,如 Ultralytics YOLOv8.不过,这些替代方案(如ELU)的计算成本可能比 Leaky ReLU 高(见激活函数比较)。最佳选择通常取决于特定的神经网络架构、数据集(如Ultralytics 数据集上的数据)以及通过超参数调整等过程获得的经验结果。像 PyTorch(PyTorch 文档)和 TensorFlow(TensorFlow Docs)等框架为各种激活函数提供了简便的实现方法,为在Ultralytics HUB 等平台上进行实验提供了便利。