【问题标题】:If we primarily use LSTMs over RNNs to solve the vanishing gradient problem, why can't we just use ReLUs/leaky ReLUs with RNNs instead?如果我们主要使用 LSTMs 而不是 RNNs 来解决梯度消失问题,为什么我们不能只使用带有 RNNs 的 ReLUs/leaky ReLUs 呢?
【发布时间】:2021-01-18 06:26:02
【问题描述】:

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

【问题讨论】:

    标签: deep-learning neural-network lstm recurrent-neural-network relu


    【解决方案1】:

    不仅仅是梯度消失,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 没有任何好处。

    【讨论】:

    • 我明白了,还有一件事,Relu 函数主要是在这个架构中给出爆炸梯度(RNN)还是通常会发生?因为我在网上读到,由于权重初始化(发生非常大)而发生梯度爆炸问题
    • 这个函数本身不会导致问题,你是对的,权重初始化在其中也起着重要作用,同时人们使用其他方法,如梯度裁剪、权重正则化器等来缓解问题。正如我在答案的最后所说,使用 RNN 尝试 ReLU 的研究人员格外小心地进行了仔细的权重初始化,以免出现问题。是的,它通常发生在 RNN 类型的顺序网络中,因为它们的性质非常深。
    • 最好的选择是自己尝试这些,因为深度学习被认为是一门经验科学,所以没有“完美/正确”的做事方式。因此,您可以自己构建一个,看看它的性能如何,这比任何答案都更能说服您。最后,如果它回答了您的问题,请考虑选择它作为答案,以便其他人也发现它有用。谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2020-09-17
    • 2022-12-23
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多