一文理解LSTM

LSTM(长短期记忆网络)是RNN的一种改进,通过增加输入、输出和遗忘门控,有效解决了普通RNN的梯度消失问题。本文详细介绍了LSTM的结构、工作原理及其优势,包括如何通过门控机制控制Memory的读写,以及为何能缓解梯度消失。同时,文章提到了LSTM的参数较多可能导致过拟合的问题,并简要介绍了与LSTM类似的GRU网络。
摘要由CSDN通过智能技术生成

LSTM

前置知识——RNN

RNN即Recurrent Neural Network,循环神经网络。RNN是一种用于处理序列数据(像时序数据)的神经网络。

我们先来了解下普通的RNN。

不同于普通的神经网络,RNN多了一个Memory,即RNN会把隐藏层的值存储在内存中。这样使得RNN可以记忆上一层隐藏层的输出,具有记忆力。上图理解:

在这里插入图片描述

RNN的输入有两个值,一个是当前状态的时序数据 x x x,一个是上一隐藏层的值 h h h。也就是说,在下一状态或下一时刻输入 x 2 x^2 x2 时,也要把上一时刻的Memory里的值也一起考虑,同时隐藏层输出新的值 h 2 h^2 h2 会替换原先的 h 1 h^1 h1 ,即同时更新Memory里的值。最后的输出 y y y 是要通过一层softmax得到概率值。

简单来说,对于有序的数据集,RNN把之前分析数据 x 1 x^1 x1 的结果存入Memory,分析 x 2 x^2 x2 的时候调用之前 x 1 x^1 x1 的结果一起分析。即累积记忆,一起分析。

值得注意的是,因为RNN处理的是时序的数据,为了更直观的展示时序之间的关系,这张图里,把不同时刻的RNN放在一起,所以图里不是有三个RNN,而是只有一个RNN。

除此之外,RNN还有很多的扩展,比如Elman Network和Jordan Network,两者的区别在于Memory存储的值不同。

  • Elman Network:Memory里存储的是隐藏层的值
  • Jordan Network:Memory里存储的最终的输出值

在这里插入图片描述

此外,还有双向RNN(Bidirectional RNN)。双向的意思即同时正向训练RNN和逆向训练RNN,如下图

在这里插入图片描述

什么是LSTM

LSTM全称Long Short-Term Memory,即长短期记忆网络。是RNN的进阶版。

前面我们了解了普通RNN,其对Memory的读取更新是没有限制的,也就是每一时刻神经网络输入新的数据时,Memory都会被更新。

LSTM则是在RNN的基础上,增加了三个 Gate,用于控制全局的Memory。

三个gate即:

  • input gate: 输入控制,只有打开才可以把值写进Memory里。
  • output gate: 输出控制, 只有打开才会可以从Memory里读取值。
  • forget gate: 遗忘控制,决定是要忘记清空,还是保存Memory里的值。

在这里插入图片描述

可以看到,LSTM的一个Memory cell有4个input 、1个output。output的就是Memory里的值,input的就是想要写进Memory中的值(其实就是隐藏层的输出值)以及控制三个gate的门控信号。

结构

下面深入的理解下LSTM的结构,看下图

在这里插入图片描述

从表达式的角度来看Memory cell, z z z 是想存储进Memory的值, z i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值