Deep learning 如果我们主要使用RNN上的LSTM来解决消失梯度问题,为什么';我们不只是将ReLUs/leaky ReLUs与RNN一起使用吗?

Deep learning 如果我们主要使用RNN上的LSTM来解决消失梯度问题,为什么';我们不只是将ReLUs/leaky ReLUs与RNN一起使用吗?,deep-learning,neural-network,lstm,recurrent-neural-network,relu,Deep Learning,Neural Network,Lstm,Recurrent Neural Network,Relu,我们都知道,当我们使用带sigmoid的深度神经网络时,会出现消失梯度问题,如果我们使用relu,它会解决这个问题,但它会产生死神经元问题,然后通过泄漏relu解决。如果RNN中存在消失梯度问题,为什么我们会走向LSTM。为什么我们不能只用relu来解决这个问题。这不仅仅是消失的梯度,RNN还发现自己也存在着梯度爆炸的问题(因为输出不断地得到反馈,作为输入,导致梯度指数膨胀或收缩) 你是对的,leaky relu可能是消失梯度问题的一个解决方案,但是对于relu和leaky relu,会出现梯度

我们都知道,当我们使用带sigmoid的深度神经网络时,会出现消失梯度问题,如果我们使用relu,它会解决这个问题,但它会产生死神经元问题,然后通过泄漏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没有任何好处。

我理解,还有一件事,那就是Relu函数在这个架构中主要给出爆炸梯度(RNN),或者它通常会发生?因为我在网上读到,爆炸性梯度问题是由于权重初始化(发生的非常大)而产生的,单是函数本身并不会导致问题,你是对的,权重初始化在其中也起着很大的作用,此外,人们还使用其他方法,如梯度剪裁、权重正则化器等来缓解问题。正如我在回答的最后所说的那样,尝试使用RNN进行ReLU的研究人员在进行体重初始化时格外小心,以免出现问题。是的,它通常发生在RNN类型的顺序网络中,因为它们在本质上非常深入。最好的选择是自己尝试这些,因为深度学习据说是一门经验性科学,所以没有“完美/正确”的做事方式。所以你可以自己建造一个,看看它的性能如何,这比任何答案都更能说服你。最后,如果它回答了你的问题,考虑选择它作为答案,以便其他人也发现它有用。谢谢