如果我们主要使用 LSTMs 而不是 RNNs 来解决梯度消失问题,为什么我们不能只使用带有 RNNs 的 ReLUs/leaky ReLUs 来代替?

问题描述

我们都知道当我们使用带有 sigmoid 的深度神经网络时会出现梯度消失问题,如果我们使用 relu ,它可以解决这个问题,但它会产生死神经元问题,然后它会通过leaky relu 解决。如果 RNN 中存在梯度消失问题,为什么我们转向 LSTM。为什么我们不能只使用 relu 来解决它。

解决方法

这不仅仅是消失的梯度,RNN 还发现自己面临梯度爆炸的问题(因为输出不断地再次作为输入重新获得馈送,导致梯度的指数膨胀或收缩)。

您说得对,leaky relu 可能是梯度消失问题的解决方案,但是对于 ReLU 和 Leaky ReLU,会出现梯度爆炸(梯度爆炸)的问题,这在前馈神经网络中并不普遍。因为如果你看到一个相当深的前馈神经网络的深度,它与 RNN 的深度相比仍然很小(几乎没有),RNN 本质上非常深,因此出现了梯度爆炸的问题。这就是我们避免使用 ReLU 并使用 Tanh 激活的原因,如果您可能会问为什么不使用 sigmoid?因为(如果您同时查看 sigmoid 和 Tanh 的梯度图),双曲正切比 sigmoid 具有更好的梯度:

σ′(x)=σ(x)(1−σ(x))≤0.25

tanh′(x)=sech2(x)=2exp(x)+exp(−x))≤1.0

尽管如此,您的直觉是正确的,即带有 RNN 的 ReLU 可以成为那些花哨的 LSTM 和 GRU 的竞争者,但是,我相信许多研究人员尝试过这种组合,但需要付出太多努力(仔细权重初始化,谨慎处理学习率),这是不值得的,并且与 LSTM/GRU 相比没有任何好处。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...