当前位置:   article > 正文

RNN与LSTM区别_rnn与lstm的联系与区别

rnn与lstm的联系与区别

RNN与LSTM的区别。
首先,对于基本RNN来说,它能够处理一定的短期依赖,但无法处理长期依赖问题。比如句子The cat, which already ate …, was full.和句子The cats, which already ate …, were full.,两句话的差别在于主语和谓语动词的单复数,由于句子比较长,RNN就无法处理这种问题。那么RNN为什么无法处理这种问题呢?因为当序列较长时,序列后部的梯度很难反向传播到前面的序列,比如10个元素以前,这就产生了梯度消失问题。当然,RNN也存在梯度爆炸问题,但这个问题一般可以通过梯度裁剪(gradient clipping)来解决。

RNN本时刻的隐藏层信息只来源于当前输入和上一时刻的隐藏层信息,没有记忆功能。
为了解决RNN的长期依赖也即梯度消失问题 ,LSTM应运而生。
LSTM的网络结构相比于RNN复杂了很多。从微观上看,LSTM引入了细胞状态,并使用输入门、遗忘门、输出门三种门来保持。
另外,从宏观角度看,LSTM各个timestep的细胞状态之间有一条直线相连,直线上结合了输入门和遗忘门的信息,这暗示我们只要合理的设置输入门和遗忘门,就可以控制LSTM长期记忆某个timestep细胞状态的值。
综上,RNN和LSTM的区别如下:

RNN没有细胞状态;LSTM通过细胞状态记忆信息。
RNN激活函数只有tanh;LSTM通过输入门、遗忘门、输出门引入sigmoid函数并结合tanh函数,添加求和操作,减少梯度消失和梯度爆炸的可能性。
RNN只能够处理短期依赖问题;LSTM既能够处理短期依赖问题,又能够处理长期依赖问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/939642
推荐阅读
相关标签
  

闽ICP备14008679号