参考回答:
LSTM与RNN的比较
RNN在处理long term memory的时候存在缺陷,因此LSTM应运而生。LSTM是一种变种的RNN,它的精髓在于引入了细胞状态这样一个概念,不同于RNN只考虑最近的状态,LSTM的细胞状态会决定哪些状态应该被留下来,哪些状态应该被遗忘。
下面来看一些RNN和LSTM内部结构的不同:
RNN
LSTM
由上面两幅图可以观察到,LSTM结构更为复杂,在RNN中,将过去的输出和当前的输入concatenate到一起,通过tanh来控制两者的输出,它只考虑最近时刻的状态。在RNN中有两个输入和一个输出。
而LSTM为了能记住长期的状态,在RNN的基础上增加了一路输入和一路输出,增加的这一路就是细胞状态,也就是途中最上面的一条通路。事实上整个LSTM分成了三个部分:
1)哪些细胞状态应该被遗忘
2)哪些新的状态应该被加入
3)根据当前的状态和现在的输入,输出应该是什么
下面来分别讨论:
1)哪些细胞状态应该被遗忘
这部分功能是通过sigmoid函数实现的,也就是最左边的通路。根据输入和上一时刻的输出来决定当前细胞状态是否有需要被遗忘的内容。举个例子,如果之前细胞状态中有主语,而输入中又有了主语,那么原来存在的主语就应该被遗忘。concatenate的输入和上一时刻的输出经过sigmoid函数后,越接近于0被遗忘的越多,越接近于1被遗忘的越少。
2)哪些新的状态应该被加入
继续上面的例子,新进来的主语自然就是应该被加入到细胞状态的内容,同理也是靠sigmoid函数来决定应该记住哪些内容。但是值得一提的是,需要被记住的内容并不是直接
concatenate的输入和上一时刻的输出,还要经过tanh,这点应该也是和RNN保持一致。并且需要注意,此处的sigmoid和前一步的sigmoid层的w和b不同,是分别训练的层。
细胞状态在忘记了该忘记的,记住了该记住的之后,就可以作为下一时刻的细胞状态输入了。
3)根据当前的状态和现在的输入,输出应该是什么
这是最右侧的通路,也是通过sigmoid函数做门,对第二步求得的状态做tanh后的结果过滤,从而得到最终的预测结果。
事实上,LSTM就是在RNN的基础上,增加了对过去状态的过滤,从而可以选择哪些状态对当前更有影响,而不是简单的选择最近的状态。
在这之后,研究人员们实现了各种LSTM的变种网络。不变的是,通常都会用sigmoid函数做门,筛选状态或者输入。并且输出都是要经过tanh函数。具体为什么要用这两个函数,由于刚接触还不能给出一定的解释,日后理解了再补充。
本文向大家介绍LSTM和Naive RNN的区别相关面试题,主要包含被问及LSTM和Naive RNN的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: RNN和LSTM内部结构的不同: RNN LSTM 由上面两幅图可以观察到,LSTM结构更为复杂,在RNN中,将过去的输出和当前的输入concatenate到一起,通过tanh来控制两者的输出,它只考虑最近时刻的状态。在RNN中有两个输
本文向大家介绍LSTM为什么比RNN好?相关面试题,主要包含被问及LSTM为什么比RNN好?时的应答技巧和注意事项,需要的朋友参考一下 因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸。
本文向大家介绍LSTM结果推导,为什么比RNN好?相关面试题,主要包含被问及LSTM结果推导,为什么比RNN好?时的应答技巧和注意事项,需要的朋友参考一下 答:推导forget gate, input gate, cell state, hidden information等的变化;因为LSTM有进有出且当前的cellinformation是通过input gate控制之后叠加的,RNN是叠乘,因
本文向大家介绍jQuery与jQuery UI有啥区别?相关面试题,主要包含被问及jQuery与jQuery UI有啥区别?时的应答技巧和注意事项,需要的朋友参考一下 (1)jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。 (2)jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为
在本章中,将重点介绍CNN和RNN之间的区别,它们的区别如下表中所示 - CNN RNN 它适用于图像等空间数据。 RNN适用于时间数据,也称为顺序数据。 CNN比RNN更强大。 与CNN相比,RNN包含更少的功能兼容性。 CNN采用固定大小的输入并生成固定大小的输出。 RNN可以处理任意长度大小输入/输出。 CNN是一种前馈人工神经网络,具有多层感知器的变化,旨在使用最少量的预处理。 与前馈神经
掌握LSTM有什么用 在读代码之前我们要先知道我们读这段代码的意义是什么。LSTM(Long Short Tem Memory)是一种特殊递归神经网络,它的特殊性在于它的神经元的设计能够保存历史记忆,这样可以解决自然语言处理的统计方法中只能考虑最近n个词语而忽略了更久之前的词语的问题。它的用途有:word representation(embedding)(也就是怎么样把词语表达成向量)、sequ