RNN与LSTM


本文主要是https://www.bilibili.com/video/BV1QY411o7bw/?p=2&spm_id_from=pageDriver&vd_source=5b8b938e4901a16324db66c2ce7875f9,https://www.zhihu.com/tardis/zm/art/104475016?source_id=1005的笔记

1.时间序列模型

1.1 RNN

为了解决样本之间的影响。可以进行时间序列这些事情。
在这里插入图片描述
输入为t个数据,得到下一个数据。模型的输入格式是固定的。一般输入为[a,b,c]其中a是样本个数,b窗口宽度,c是输入数据的维度。
在这里插入图片描述
为什么要使用tanh方式,对累计的信息进行normalization
在这里插入图片描述
问题是没有对长期记忆进行处理。

1.1.2 多输入对多输出,维度相同RNN结构

在这里插入图片描述

1.1.2 多输入单输出RNN结构

在这里插入图片描述

1.1.3 单输入多输出RNN结构

在这里插入图片描述

1.1.4 多输出多输入且之间维度没有

在这里插入图片描述

1.1.5 普通RNN结构缺陷

前部序列信息在传递到后部的同时,信息权重下降,导致重要信息丢失。
在这里插入图片描述
需要提高前部特定信息的决策权重。

2. 长短期记忆网络

2.1 LSTM与RNN的关系

长短期记忆网络是一种特殊的RNN模型,其特殊的结构设计使得它可以避免长期依赖问题,记住很早时刻的信息是LSTM的默认行为,而不需要专门为此付出很大代价。普通的RNN模型中,其重复神经网络模型的链式模型如下图:
在这里插入图片描述
这个重复的模块只有一个非常简单的结构,一个单一的神经网络层,这样就会导致信息的处理能力比较低。而LSTM在此基础上将这个结构进行改进,不再是单一的神经网络层,而是4个,并且以一种特殊的方式进行交互。

2.1 LSTM的基本思想

LSTM的关键是细胞状态,表示为 C t C_t Ct,用来保存当前LSTM的状态,并传递到下一时刻的LSTM中,也就是RNN中那根“自循环”的箭头。当前的LSTM接收来自上一个时刻细胞状态 c t − 1 c_{t-1} ct1,并与当前LSTM接收的信号输入 x t x_t xt共同作用当前LSTM的细胞状态 C t C_t Ct,具体的作用方式下面将详细介绍。
在LSTM中,采用专门设计的门来引入或者去除细胞状态 C t C_t Ct中的信息。门是一种让信息选择性通过的方法。有点门跟信号处理了中的滤波器有点类似,允许信号部分通过或者通过时被门加工了;有的门也跟数字电路中的逻辑门类似,允许信号通过或者不通过。这里所采用的门包含一个sigmoid神经网络层和一个按位的乘法操作,如下图所示:
在这里插入图片描述
其中黄色方块表示sigmoid神经网络层,粉色圆表示按位乘法操作。sigmoid神经网络层可以将输入信号转换为0到1之间的数值,用来描述有多少两的输入信号可以通过。0表示"不允许任何量通过",1表示"允许所有量通过"。sigmoid神经网路层起到sigmoid函数所示的作用。
在这里插入图片描述
忘记门:遗忘门由一个sigmoid神经网络层和一个按位乘操作构成,选择性丢弃 a i − 1 a^{i-1} ai1 x i x^i xi中不重要的信息
更新门:记忆门由输入门与tanh神经玩网络层和一个按位乘操作构成,确定给记忆细胞添加哪些信息
输出门与tanh函数以及按位乘操作共同作用将细胞状态和输入信号传递到输出端。

2.2 遗忘门

在LSTM的使用过程中,有一些信息不是必要的,因此遗忘门的作用就是用来选择这些信息并忘记它们。遗忘门决定了细胞状态中 C t − 1 C_{t-1} Ct1中的哪些信息将被遗忘。具体操作如下所示:
在这里插入图片描述
左边高亮的结构就是遗忘门,包含一个sigmoid神经网络层(黄色方框,神经网路参数为 W f , b f W_f,b_f Wf,bf)接收t时刻的输入信息 x t x_t xt和t-1时刻LSTM上一个输出信号 h t − 1 h_{t-1} ht1,这两个信号进行凭借之后输入到sigmoid神经网络中,然后输出信号 f t f_t ft f t f_t ft时一个0到1之间的数值,并与 C t − 1 C_{t-1} Ct1相乘决定 C t − 1 C_{t-1} Ct1中的哪些信息将保留,哪些信息将被舍弃。
假设 c t − 1 = [ 0.5 , 0.6 , 0.4 ] , h t − 1 = [ 0.3 , 0.8 , 0.9 ] , x t = [ 0.2 , 1.3 , 0.7 ] c_{t-1}=[0.5,0.6,0.4],h_{t-1}=[0.3,0.8,0.9],x_t=[0.2,1.3,0.7] ct1=[0.5,0.6,0.4],ht1=[0.3,0.8,0.9],xt=[0.2,1.3,0.7],那么遗忘门的输入信号就是 h t − 1 h_{t-1} ht1 x t x_t xt的组合,即 [ h t − 1 , x t ] = [ 0.3 , 0.6 , 0.69 , 0.2 , 1.3 , 0.7 ] [h_{t-1},x_t]=[0.3,0.6,0.69,0.2,1.3,0.7] [ht1,xt]=[0.3,0.6,0.69,0.2,1.3,0.7],然后通过sigmoid神经网络层输出每个元素都处于0到1之间的向量 f t = [ 0.5 , 0.1 , 0.8 ] f_t=[0.5,0.1,0.8] ft=[0.5,0.1,0.8],注意,此时sigmoid圣经网络层输出每一个元素都处于0到1之间的向量 f t = [ 0.5 , 0.1 , 0.8 ] f_t=[0.5,0.1,0.8] ft=[0.5,0.1,0.8],注意,此时 f t f_t ft是一个与 c t − 1 c_{t-1} ct1维数相同的向量,此处为3维。

2.3 记忆门

记忆门的作用与遗忘门相反,它将决定输入的信息 x t x_t xt h t − 1 h_{t-1} ht1中哪些信息将被保留。
在这里插入图片描述
如图苏轼,记忆们包含2个部分。一个是包含sigmoid神经网络层和一个tanh神经网络层。
sigmoid神经网络层的作用很明显,跟遗忘门一样,它接受 x t x_t xt h t − 1 h_{t-1} ht1作为输入,然后输出一个0到1之间的数值 i t i_t it来决定哪些信息需要被更新;
tanh神经网络层的作用是将输入的 x t x_t xt h t − 1 h_{t-1} ht1整合,然后通过一个tanh神经网络层来创建一个新的状态候选向量 C t ~ \tilde{C_t} Ct~, C t ~ \tilde{C_t} Ct~的值范围在-1到1之间。
记忆门的输出由上述两个神经网路层的输出决定, i t i_t it C t ~ \tilde{C_t} Ct~相乘来选择哪些信息将被新加入到t时刻的细胞状态C_t中。

2.4 更新细胞状态

在这里插入图片描述
这里将遗忘门的输出 f t f_t ft与上一时刻的细胞状态 c t − 1 c_{t-1} ct1相乘来选择遗忘和保留一些信息,将记忆门的输出与从遗忘门选择后的信息加和德奥新的细胞信息 C t . C_t. Ct.。这就表示t时刻的细胞状态 C t C_t Ct已经包含了此时需要丢弃的t-1时刻传递的信息和t时刻从输入信号获取的需要新加入的信息 i t × C t ~ i_t\times \tilde{C_t} it×Ct~ C t C_t Ct将继续传递到t+1时刻的LSTM网络中,作为新的细胞状态传递下去。

2.5 输出门

在这里插入图片描述
如上面左图所示,输出门就是将t-1时刻传递过来并经过了前面遗忘门与记忆们选择后的细胞状态 C t − 1 C_{t-1} Ct1,与t-1时刻的输出信号 h t − 1 h_{t-1} ht1和t时刻的输入信号 x t x_t xt整合大宋一起作为当前时刻的输出信号。整合的过程如上图所示, x t x_t xt h t − 1 h_{t-1} ht1经过一个sigmoid神经网络层输出一个0到1之间的数值 o t o_t ot C t C_t Ct经过一个tan函数到一个在-1到1之间的数值,并与 o t o_t ot相乘得到输出信号 h t h_t ht,同时 h t h_t ht也作为下一个时刻的输入信号传递到下一个阶段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值