为什么大多数现代深度学习架构中不存在“垂死的 ReLU”问题?

数据挖掘 机器学习 神经网络 深度学习
2022-02-07 18:13:07

ReLU(x)=max(0,x)函数是神经网络中常用的激活函数。然而,已经表明它可能会遭受垂死的 Relu 问题(另请参阅什么是神经网络中的“垂死的 ReLU”问题?

考虑到 ReLU 函数的这个问题以及使用leaky ReLU的常见建议,为什么到今天 ReLU 仍然是现代深度学习架构中最常用的激活函数?只是一个在实践中不常出现的理论问题吗?如果是这样,为什么它在实践中不经常发生?是因为随着网络的宽度变大,死亡 ReLU 的概率会变小(请参阅Dying ReLU 和初始化:理论和数值示例 )?

由于梯度消失问题,我们远离了 sigmoid 和 tanh 激活函数,并由于梯度爆炸而避免了 RNN,但似乎我们还没有远离 ReLU 和它们的死梯度?我想更深入地了解原因。

2个回答

神经网络可以作为您交给它们的任何任务的出色编码器/解码器。要创建良好的数据表示,您需要稀疏表示。死亡的神经元实际上对此做出了贡献。ReLU实际上帮助了这个过程。

事实上,最近的一篇论文实际上证明了 ReLU 甚至比你上面提到的 LeakyReLU 更好。他们从一个问题开始,即为了创建决策边界,您需要解开数据。但是,为了解开数据,您需要一个非连续函数,以便数据可以映射到流形中的不相交区域。这只能通过非连续函数实现。他们甚至进一步解释了 tanh、sigmoid 和其他函数是由于浮点精度导致的,甚至这些函数也具有非连续性。这是一篇Medium文章和原始论文

在实践中,死 ReLU 连接不是主要问题。大多数深度学习网络仍然可以通过仅对可能的连接进行子选择来学习足够的表示。这是可能的,因为深度学习网络是高度过度参数化的。

即使 ReLUs 濒临死亡问题可能存在缺陷,ReLUs 的计算效率和效率仍然使它们成为目前可用的最佳选择之一。