循环神经网络RNN(含LSTM,GRU)小综述

更新时间:2023-06-15 02:39:15 阅读: 评论:0

循环神经⽹络RNN(含LSTM,GRU)⼩综述
⽂章⽬录
前⾔
全连接神经⽹络(Full Connected Neural Networks, FCNN)具有局限性,其同⼀层的节点之间是⽆连接的,当需要⽤到序列之前时刻的信息时,FCNN⽆法办到。由于FCNN⼀个序列的不同位置之间⽆法共享特征,所以只能单独的处理⼀个个的输⼊,即前⼀个输⼊和后⼀个输⼊之间没有关系,⽆法处理在时间或空间上有前后关联的输⼊问题。
重点介绍RNN的发展历史、模型改进及其应⽤领域,总结了RNN模型的特点及相关⼯作,旨在为刚进⼊该领域的初学者和对RNN进⾏深⼊研究的学者提供参考资料
⼀、RNN循环神经⽹络
1.1 RNN的结构
RNN的结构图如图:
  右⽅是左⽅图的展开形式,对于每⼀个时间步t,都有来⾃前⾯时间步的信息,并加以权重w⽤于控制,在每⼀个时间步中,从输⼊X,加上权重Wx,和来⾃上⼀步的激活值a,以及激活值权重Wa,经过激活函数输出y,然后再对y使⽤损失函数计算损失。
  但是这种做法会造成,在任⼀时间步t中处理时,只参考或者说获取了前⾯时间步的特征,序列后⽅的信息特征没有学习到,这⽆疑会造成问题,所以我们引⼊了BRNN(双向循环神经⽹络)
1.2 BRNN的结构
BRNN的结构如图:
  BRNN的隐藏层需要记录两个值。A参与正向计算,A’参与反向计算。最终的输出值y取决于A和A’。
教你学唱歌
乌鸦喝水  RNN的前向计算 按照时间序列展开,然后使⽤基于时间的反向传播算法(Back Propagation Through Time, BPTT)对⽹络中的参数
进⾏更新,也是⽬前循环神经⽹络最常⽤的训练算法。
1.3 梯度消失和梯度爆炸
  这样我们解决了如何学习序列后⽅特征的问题,但是RNN仍然存在问题,在训练RNN的过程中容易出现梯度爆炸和梯度消失的问题,导致在训练时梯度的传递性不⾼,即梯度不能在较长序列中传递,从⽽使RNN⽆法检测到长序列的影响。对于基于梯度的学习需要模型参数θ和损失函数L之间存在闭式
解,根据估计值和实际值之间的误差来最⼩化损失函数,那么在损失函数上计算得到的梯度信息可以传回给模型参数并进⾏相应修改。
煤矿开采技术
假设对于序列x1,x2,x3……,xt ,通过St=F(s,x)将上⼀时刻的状态映射到下 ⼀ 时刻的状态S。T时刻损失函数L关于参数的梯度为:  假设循环⽹络若要可靠地存储信息即
也意味着当模型能够保持长距离依赖z时,其本⾝也处于梯度消失的情况下。随着时间跨度增加,梯度也会以指数级收敛于0。当
发⽣梯度爆炸的现象, ⽹络也陷⼊局部不稳定。
  梯度爆炸问题是指在RNN中,每⼀步的梯度更新可能会积累误差,最终梯度变得⾮常⼤,以⾄于RNN的权值进⾏⼤幅更新,程序将会收到NaN错误。⼀般⽽⾔,梯度爆炸问题更容易处理,可以通过设置⼀个阈值来截取超过该阈值的梯度。
  梯度消失的问题更难检测,可以通过使⽤其他结构的RNNs来应对,例如长短期记忆⽹络(long short-term memory, LTSM)和门控循环单元(Gated Recurrent Unit, GRU)。
∣f ′∣<t 1
∣f ′∣>t 1
⼆、LSTM
2.1 引⼦
使⽤梯度下降⽅法来优化RNN的⼀个主要问题就是梯 度在沿着序列反向传播的过程中可能快速消失。已经有⼤量的研究⼯作⽤于解决RNN 中存在的训练问题并且提出了关于RNN的变体LSTM.
2.2 LSTM单元
  LSTM的关键是细胞状态,表⽰细胞状态的这条线⽔平的穿过图的顶部。
  细胞的状态类似于输送带,细胞的状态在整个链上运⾏,只有⼀些⼩的线性操作作⽤其上,信息很容易保持不变的流过整个链。
  LSTM确实具有删除或添加信息到细胞状态的能⼒,这个能⼒是由被称为门(Gate)的结构所赋予的。门(Gate)是⼀种可选地让信息通过的⽅式。 它由⼀个Sigmoid神经⽹络层和⼀个点乘法运算组成。Sigmoid神经⽹络层输出0和1之间的数字,这个数字描述每个组件有多少
信息可以通过, 0表⽰不通过任何信息,1表⽰全部通过
  LSTM单元中有三种类型的门控,分别为:输⼊门i、遗忘门f和输出门o,门控可以看作⼀层全连接层,LSTM对信息的存储和更新正是由这些门控来实现。
  更具体地说, 门控是由sigmoid函数和点乘运算实现,门控并不会提供额外的信息。门控的⼀般形式可以表⽰为:
其中
  Sigmoid 函数,是机器学习中常⽤的⾮线性激活函数,可以将⼀个实值映射到区间 0 ~ 1,⽤于描述信息通过的多少.当门的输出值为0,表⽰没有信息通过,当值为1 则表⽰所有信息都可以通过。
  LSTM的前向计算过程可以表⽰为式(1) ~ (5)。在时间步t时,LSTM的隐藏层的输⼊和输出向量分别为xt和ht,记忆单元为ct .输⼊门⽤于控制⽹络当前输⼊数据xt流⼊记忆单元的多少,即有多少可以保存到ct,其值为:钱塘江涨潮
  遗忘门是LSTM单元的关键组成部分,可以控制哪些信息要保留哪些要遗忘,并且以某种⽅式避免当梯度随时间反向传播时引发的梯度消失和爆炸问题。遗忘门控制⾃连接单元 ,可以决定历史信息中的哪些部分会被丢弃。即上⼀时刻记忆单元Ct-1中的信息对当前记忆单元Ct 的影响。
  输出门控制记忆单元ct对 当 前 输 出 值 ht的 影 响 ,即记忆单元中的哪⼀部分会在时间步t 输出。输出门的值如式(4) 所⽰ ,LSTM单元的在t时刻的输出 ht可 以 通 过 式 (5)得到。诗经全文原文
2.3 LSTM 的补充理解⽅式和变种(☆)
2.3.1⼀步步的拆解LSTM
g (x )=σ(Wx +b )
σ(x )=1+e −x
梦见被人欺负
1
i =t σ(W x +xi t W h +hi t −1b ) (1)
i f =t σ(W x +xf t W h +hf t −1b ) (2)
f c =t f c +t ⨀t −1i tanh (W x +t ⨀xc t W h +hc t −1b ) (3)
c o =t σ(W x +xo t W h +ho t −1b ) (4)
o h =t o tanh (c ) (5)
t ⨀t
  LSTM的第⼀步是决定我们要从细胞状态中丢弃什么信息。 该决定由被称为“遗忘门”的Sigmoid层实现。它查看ht-1(前⼀个输出)和xt(当前输⼊),并为单元格状态Ct-1(上⼀个状态)中的每个数字输出0和1之间的数字。1代表完全保留,⽽0代表彻底删除。
  下⼀步是决定我们要在细胞状态中存储什么信息。 这部分分为两步。 ⾸先,称为“输⼊门”的Sigmoid
层决定了我们将更新哪些值。接下来⼀个tanh层创建候选向量Ct,该向量将会被加到细胞的状态中。 在下⼀步中,我们将结合这两个向量来创建更新值。浦乳期
六年级上册知识点
  现在是时候去更新上⼀个状态值Ct−1了,将其更新为Ct。我们将上⼀个状态值乘以ft,以此表达期待忘记的部分。之后我们将得到的值加上 it∗C t。这个得到的是新的记忆细胞的值。
  最后,我们需要决定我们要输出什么。 此输出将基于我们的细胞状态,但这明显是参考了记忆细胞C的过滤版本。 ⾸先,我们运⾏⼀个sigmoid,它决定了我们要输出的细胞状态的哪些部分。 然后,我们将单元状态通过tanh(将值规范化到-1和1之间),并将其乘以Sigmoid门的输出,⾄此我们只输出了我们决定的那些部分。

本文发布于:2023-06-15 02:39:15,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1038969.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:梯度   信息   状态   细胞   输出   问题   模型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图