从循环神经网络(RNN)到长短期记忆网络(LSTM)

前言:

      大部分模型都只能处理单独的输入,然而,某些任务需要提取各个输入之间的时序信息,只对每个输入进行单独的处理是不够的,需要处理的是将各个输入连成的整个序列,基于此RNN诞生了!

        循环神经网络(Recurrent Neural Network,RNN)是一类以序列数据为输入,在序列的演进方向进行递归(RNN 之所以被称为递归,是因为它们对序列的每个元素执行相同的任务,输出依赖于先前的计算)且所有节点(循环单元)按链式连接的递归神经网络。

RNN结构:

        RNN与传统NN模型最大的区别在于:隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。

f1,f2为激活函数。 

RNN的沿时间反向传播”(Back-Propagation Through Time,BPTT)

        由前向传播得到预测值与真实值构建损失函数,记为L,使用梯度下降最小化损失函数(以U为例):

        从上述过程中我们不难发现:对权重矩阵求偏导时会出现激活函数的导数的累乘,因此当t较长时会出现“梯度爆炸”或者“梯度消失”的现象。

 LSTM:

      传统的RNN结构能够在序列数据上学习短时依赖关系,但是由于“梯度消失”和“梯度爆炸”问题,RNN在处理长序列时难以达到很好的性能。为了克服这种缺陷,LSTM应运而生!

LSTM通过引入记忆细胞、输入门、输出门和遗忘门的概念,能够有效地解决长序列问题。

  1. 记忆细胞(memory cell): 它是 LSTM 的核心,负责保存重要的信息,并将这些信息传递给后面的网络层。
  2. 遗忘门(forget gate): 决定了记忆细胞中的信息是否被遗忘,能够控制记忆细胞中保存的信息会不会消失。
  3. 输入门(input gate):决定了当前输入信息是否写入记忆细胞,能够控制输入信息对记忆细胞的影响。
  4. 输出门(output gate):决定了记忆细胞中的信息是否输出,能够控制记忆细胞中保存的信息会不会对后面的网络层造成影响。

 

        与RNN相比,LSTM增加了一条时间链(c,细胞状态),同时增加了两条链之间的关联,以t时刻为例,计算隐藏层状态s_{t}时,不仅需要输入x_{t}和前一时刻s_{t-1}还要包含当前的细胞状态c_{t}

 

       “门”的结构:门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个按位的乘法操作。Sigmoid 层输出0到1 之间的数值,描述每个每个部分有多少量可以通过。0 代表“不许任何量通过”,1 指“允许全部量通过”!(图中的每个\sigma 都表示sigmoid函数)

LSTM中信息流动

       第一步:通过遗忘门决定从细胞状态中丢弃什么信息,该门会读取 h_{t-1}x_{t-1},输出一个在 0 到 1 之间的数值给每个在细胞状态c_{t-1}中的数字。1 表示“完全保留”,0 表示“完全舍弃”。

 

        第二步:确定什么样的新信息被存放在细胞状态中。包含两个部分。第一,sigmoid 层称 “输入门层” 决定什么值我们将要更新。然后,一个 tanh 层创建一个新的候选值向量\tilde{c}_{t},会被加入到状态中。 

     第三步:更新旧细胞状态,c_{t-1}更新为c_{t} 。把旧状态与f_{t} 相乘,丢弃掉我们确定需要丢弃的信息,接着加上i_{t}*c\tilde{}_{t}。这就是新的候选值,根据我们决定更新每个状态的程度进行变化。 

        第四步:确定输出值。首先,运行一个 sigmoid 层来确定细胞状态的哪个部分将输出出去。接着,把细胞状态通过 tanh 进行处理(得到一个在-1到1之间的值)并将它和 sigmoid 门的输出相乘,最终仅仅会输出我们确定要输出的那部分。 

 

 参考文献:

  1.  循环神经网络 - 知乎 (zhihu.com)循环神经网络 - 知乎
  2.  RNN的梯度消失_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1e5411K7oW?p=3&spm_id_from=pageDriver&vd_source=da6dc6044cb00c195c05c3e837cbc77d
  3.  递归神经网络教程,第 1 部分 – RNN 简介 ·Denny的博客 (dennybritz.com)https://dennybritz.com/posts/wildml/recurrent-neural-networks-tutorial-part-1/
  4. 【LSTM长短期记忆网络】3D模型一目了然,带你领略算法背后的逻辑_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Z34y1k7mc/?spm_id_from=333.337.search-card.all.click&vd_source=da6dc6044cb00c195c05c3e837cbc77d
  5.  理解 LSTM 网络 - 简书 (jianshu.com)https://www.jianshu.com/p/9dc9f41f0b29
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值