理解LSTM

人类不会每秒从头开始思考。 当你阅读这篇文章时,你会根据你对以前的单词的理解了解每个单词。 你不会丢掉所有东西,然后再次从头开始思考。 你的想法有坚持。

传统的神经网络无法做到这一点,这似乎是一个主要的缺点。 例如,假设您想分类电影中每个点发生的事件类型。 目前还不清楚传统神经网络如何利用其对电影中之前事件的推理来告知后来的事件。

递归神经网络解决了这个问题。 他们是网络中的循环,让信息持久。

在上图中,神经网络A的输入是xt并输出一个值ht。

可以看到A上有一个loop循环,这个允许信息从网络的一个步骤传递到下一个步骤。实际上循环神经网络和普通的神经网络很类似。

循环神经网络可以被认为是同一网络的多个副本,每个副本都将消息传递给后继者。
可以看出,将循环神经网络沿着时间轴进行展开,可以得到


这个表示RNN是天然可以处理序列和列表的,通常RNN可以处理语音识别,语言建模,语言翻译,图像释义等等。

LSTM是其中最为成功的RNN类型,RNN可以将之前的时间点的信息记忆下来,然后综合这些信息进行预测,但是当之前的信息变多了,变复杂,这会使得RNN的效果变差。

举个例子,当需要的信息和预测之间的时间间隔比较小的时候,RNN可以比较好的效果,如下图所示:

当需要的信息和预测之间的时间间隔比较大的时候,RNN的效果特别差, 如下图所示:


与此同时,当时间序列长度很长时,在梯度反向传播时,过多层数的梯度积累,会使得梯度爆炸和梯度消失的情况出现。

LSTM就是基于上述原因提出的,对于某个时间点之前的信息进行选择性记忆,然后再进行预测,所以LSTM相较于RNN添加了很多类似于人的遗忘门和决定门等,其结构图如下图所示:


首先介绍,sigma在图中是指sigmoid函数,如下图所示:


然后继续看其中的细节:

1.forget gate layer:这个是决定对于之前的信息是留下还是去除,其通过xt和ht-1的状态来决定是否需要前面的信息:


2. 决定新的信息是否加入,这个里面有两个部分,第一个是input gate layer,即it这个决定新的信息被加入的程度,第二个是ht-1和xt通过tanh函数生成的新的待定状态Ct,然后it和Ct相乘决定新的信息加入的大小,如图所示:


3.然后,我们来决定是否更新老的状态Ct-1,将其乘以forget gate的输出ft,然后加上新的状态it*Ct得到真正的新状态,如图所示:


4.最后我们来决定,输出是什么,输出是基于状态的,所以我们将前面的单元的状态和本单元的状态同时决定输出,如图所示:

最后可以得到,整体的LSTM的结构,如下图所示:


参考文献:colah.github.io/posts/2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值