赞
踩
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既能够处理短期依赖问题,又能够处理长期依赖问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。