ReLU 与 Leaky ReLU 和 Parametric ReLU(如果有的话)有什么优势?

人工智能 神经网络 激活函数 雷路
2021-11-01 20:52:03

我认为使用 Leaky ReLU 代替 ReLU 的优势在于,这样我们就不会出现梯度消失。Parametric ReLU 具有相同的优势,唯一的区别是负输入的输出斜率是一个可学习的参数,而在 Leaky ReLU 中它是一个超参数。

但是,我无法判断是否存在使用 ReLU 而不是 Leaky ReLU 或参数化 ReLU 更方便的情况。

1个回答

将 ReLU(超参数化的1泄漏变体)和在学习期间具有动态参数化的变体结合起来混淆了两个不同的事情:

  • ReLU 与泄漏变体之间的比较与在手头的特定 ML 情况下是否需要避免饱和密切相关——饱和是信号丢失到零梯度2或由数字引起的混沌噪声占主导地位四舍五入3
  • 训练动态激活(在文献中称为参数)和训练静态激活之间的比较必须基于激活的非线性或非平滑特性是否具有与收敛速度相关的任何值4

ReLU 从来不是参数化的原因是,这样做是多余的。在负域中,它是常数零。在非负域中,它的导数是常数。由于激活输入向量已经用向量-矩阵乘积(其中矩阵、立方体或超立方体包含衰减参数)进行了衰减,因此添加参数以改变非负域的常数导数没有用处.

当激活中存在曲率时,所有激活系数作为参数都是冗余的不再是真的。它们的值可能会极大地改变训练过程,从而改变收敛的速度和可靠性。

对于相当深的网络,冗余再次出现,并且在文献中的理论和实践中都有证据证明这一点。

  • 用代数术语来说,当深度(层数)接近无穷大时,ReLU 和从它派生的参数动态激活之间的差异接近零。
  • 用描述性术语来说,如果给定足够多的层数,ReLU 可以准确地逼近曲率为5的函数。

这就是为什么 ELU 品种,它有利于避免上述较浅网络的饱和问题,但不用于较深的网络。

所以一个人必须决定两件事。

  • 参数激活是否有用通常基于对来自统计群体的几个样本的实验。但是,如果层深度很高,则根本不需要尝试。
  • 泄漏变量是否有价值与反向传播过程中遇到的数值范围有很大关系。如果在训练期间的任何点反向传播期间梯度变得非常小,则激活曲线的恒定部分可能会出现问题。在这种情况下,平滑函数之一或具有两个非零斜率的泄漏 RelU 可以提供足够的解决方案。

总而言之,选择绝不是方便的选择。


脚注

[1] 超参数是影响通过层的信号传递的参数,它们不属于该层的输入衰减。衰减权重是参数。任何其他参数化都在超参数集中。这可能包括学习率、反向传播中高频的衰减,以及为整个层(如果不是整个网络)设置的各种其他学习控制。

[2] 如果梯度为零,则无法对参数进行智能调整,因为调整的方向未知,其幅度必须为零。学习停止。

[3] 如果在 CPU 将极小值舍入到最接近的数字表示时可能出现的混沌噪声支配了旨在传播回各层的校正信号,那么校正就变得毫无意义并且学习停止。

[4] 收敛速度是对学习结果(系统行为)接近被认为足够好的速度(相对于微秒或相对于算法的迭代指数)的度量。这通常与收敛(学习)的一些正式接受标准有一定的接近性。

[5] 具有曲率的函数是不被可视化为直线或平坦的函数。抛物线具有曲率。直线没有。鸡蛋的表面有曲率。完美的平面则不然。在数学上,如果函数的 Hessian 矩阵的任何元素不为零,则该函数具有曲率。