【神经网络】一文读懂LSTM神经网络

简介


说到LSTM神经网络,大家都不陌生,LSTM指的是Long Short-Term Memory,意思是:长短时记忆,也就是说这个神经网络有记忆功能,为什么说它有记忆功能呢?因为在训练数据的时候,很久之前的文本保留下来的信息,可以对当下的预测产生影响,所以就认为神经网络记住了一部分信息。

1. 与RNN对比

由于LSTM来源于对RNN的升级,我们先从RNN入手,来理解整个LSTM在做什么
RNN
图上的三个节点其实是按照时间的顺序展开的,或者叫做顺着时序展开的,我们只需要关注其中的一个节点就可以了,从图上看,每个节点的输入有两个,输出也有两个。输出的两个是同一个值,一个用于输出结果,一个用于下一层的输入(其实是同一层,只是下一次迭代的输入),就这样不停的循环迭代训练,就完成了一个RNN神经网络的训练。可能有人要疑惑了,只有一个神经元节点,也就是说只有一个权重W,这样训练出来的网络模型能有很好的拟合能力,或者说是记忆能力?其实,图上只是展现了一个神经元的内部过程,其实这种神经元是可以并列有很多的,同时,也可以设置多个隐层,这样的话就会有很多的参数了,其记忆能力就会变强了。
接下来我们看看LSTM有什么升级
在这里插入图片描述
由图可知,和RNN相比,从输入和输出方面,LSTM多了个输入,也多了个输出,多的这个值,就是LSTM的记忆和遗忘机制,值通常用C表示,C指的是Cell,也就是细胞的状态的意思。也就是说,这个值能够决定记忆什么,忘记什么。那这个值的出现有什么好处呢?假如当这个值为0的时候,就说明前面的都不用记住了,也就是说,在反向求导的时候,到这里就可以停止了,我们知道,链式法则里的连乘或者连加,有了这个值的出现,我们就可以避免梯度的Explod和vanishing。具体C的遗忘机制的实现方法,我们在下面详细的探讨。

2. 细节解释

在这里插入图片描述
要看懂LSTM的具体实现步骤,就得了解每个小组件代表着什么意思。

  • Nerual Network Layer : 神经网络层,在是指经过这个图标的时候,会对数据进行非线性变换,通常是添加激活函数和偏置。σ一般指的是sigmoid激活函数,tanh便是tanh函数;
  • Pointwise Operation:智慧点操作,这个点有两种运算方式,一种是加,一种是乘;
  • Vector Transfer:向量的传输;
  • Concatenate:连接,一般是向量的拼接操作;
  • Copy:拷贝,即同一份数据,拷贝成两份输出。
3. 细胞状态

在这里插入图片描述
从图上可以看到,Cell状态的变换即C值的变换一共经过了两次操作,这两次操作决定了Ct-1的遗忘和更新,首先,Ct-1经过了乘法的Pointwise Operation,这一步决定了Ct-1值是否被遗忘,为什么呢?我们可以看出,与Ct-1相乘的数来自于下方的层,那么下方传过来的数据的取值范围是多少呢?我们可以看出,下方的数据通过的是一个sigmoid的层,也就是说下方穿过来的数据的取值为(0, 1),一般情况下,当输入值大于3或者小于-3的时候,sigmoid的值就接近了1和0,也就是说,C的值一般情况下会接近于Ct-1不变,或者0,也就是说记住了C或者遗忘了Ct-1,当然,一个介于(0, 1)之间的数与Ct-1相乘的话,则代表需要记住多少的Ct-1值。接下来,Ct-1值又遇到了一个加法,则是对Ct-1>值的变更,比如新的信息的加入,一般理解为需要记忆的新的东西。这么来看,我们就完成了C值的遗忘机制,也就是说,这个神经网络具备了记忆和遗忘的能力。
在LSTM中,这便是所谓的门的概念。【在集成电路里,逻辑门就是代表逻辑上的“真”与“假”或二进制当中的1和0,从而实现逻辑运算。】

4. 遗忘门

在这里插入图片描述
在上面介绍Cell状态的时候也粗略的讨论了这个遗忘门的基本机制,我们来看这个遗忘门的输入信息,分别是 ht-1xt,从公式上我们可以看到是这两个值与权重矩阵 Wf 相乘,我们可以理解为 ht-1xt 的拼接,拼接以后再与 Wf 相乘,然后加上一个偏置 bf,最后经过一个激活函数sigmoid,使得线性变换变成非线性变换,此时 ft 的取值为(1,0),这个值决定了 Ct-1 的值是否被记忆或者遗忘,或者说记住多少,这就是这个遗忘门的作用。

5. 输入门

在这里插入图片描述
同理,itft 公式是一样的,这就说明,it 也具有遗忘的功能,比如,Ct-1在遇到 ft 的时候,ft 决定保留Ct-1的记忆,则此时,it 则决定着对 Ct 的遗忘能力,所以,Ct 是LSTM需要记忆的新的值。我们可以看到Ct的取值范围是(-1,1),说明新增的记忆的是征服兼有的,这代表着什么呢,可以理解为正例记忆和反例记忆。

在这里插入图片描述
Ct-1 遗忘剩余的部分,与新的要记忆的部分 Ct 相加,就是要输出的Ct ,详细不再赘述。

6. 输出门

在这里插入图片描述
最后来到了输出门,本次输出的结果就从这个地方输出,我们可以看到ht 是由ot 与tanh(Ct) 相乘得来,也就是说本次需要多少为我所用的含义。

7. 变体

在这里插入图片描述
LSTM的变体有很多,最常提到的要数GRU(Gated Recurrent Unit)变体了,其内部构造也是相当的先进,本次不作为重点讲解对象,下次有机会再讲吧。

8. 总结

至此,LSTM的内部构造以及数据的运转机制和含义都交代完了,通过上面的理解,我们可以看出,LSTM对RNN的改进在于对数据的更细化的处理,总体上理解LSTM就是可长可短时的记忆机制,所以叫做长短时记忆神经网络。

  • 7
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值