当前位置:   article > 正文

LSTM与RNN的区别_rnn和lstm区别

rnn和lstm区别
1. RNN

RNN能够处理一定的短期依赖,但无法处理长期依赖问题。因为当序列较长时,序列后部的梯度很难反向传播到前面的序列,这就产生了梯度消失问题。当然,RNN也存在梯度爆炸问题,但这个问题一般可以通过梯度裁剪(gradient clipping)来解决。
RNN网络结构如下:

h t h_t ht为timestep t的隐藏层状态值, x t x_t xt为输入, h t h_t ht实际上还要经过softmax或者别的函数处理得到输出 y ^ t \widehat{y}_t y t
上图中RNN单元的计算公式为:
h t = t a n h ( W h . [ h t − 1 , x t ] + b h ) h_t=tanh(W_h.[h_{t-1},x_t]+b_h) ht=tanh(Wh.[ht1,xt]+bh)由公式我们可以看到,RNN本时刻的隐藏层信息只来源于当前输入和上一时刻的隐藏层信息,没有记忆功能。

2. LSTM

LSTM的网络结构相比于RNN复杂了很多。从微观上看,LSTM引入了细胞状态,并使用输入门、遗忘门、输出门三种门来保持和控制信息。

具体的,LSTM某个timstep t的计算公式如下所示: f t = σ ( W f . [ h t − 1 , x t ] + b f ) f_t=\sigma(W_f.[h_{t-1}, x_t]+b_f) ft=σ(Wf.[ht1,xt]+bf) i t = σ ( W i . [ h t − 1 , x t ] + b i ) i_t=\sigma(W_i.[h_{t-1}, x_t]+b_i) it=σ(Wi.[ht1,xt]+bi) c ~ t = t a n h ( W c . [ h t − 1 , x t ] + b c ) \widetilde{c}_t=tanh(W_c.[h_{t-1}, x_t]+b_c) c t=tanh(Wc.[ht1,xt]+bc) c t = f t × c t − 1 + i t × c ~ t c_t=f_t \times c_{t-1}+i_t\times\widetilde{c}_t ct=ft×ct1+it×c t o t = σ ( W o . [ h t − 1 , x t ] + b o ) o_t=\sigma(W_o.[h_{t-1}, x_t]+b_o) ot=σ(Wo.[ht1,xt]+bo) h t = o t × t a n h ( c t ) h_t=o_t\times tanh(c_t) ht=ot×tanh(ct)
上述公式中, f t f_t ft为遗忘门、 i t i_t it 为输入门、 o t o_t ot为输出门、 c t c_t ct为细胞状态、 c ~ t \widetilde{c}_t c t为细胞状态候选值、 h t h_t ht为隐藏层状态值、 W W W b b b为权重和偏置。

  • 忘记阶段 f t f_t ft
    遗忘门结合上一隐藏层状态值 h t − 1 h_{t-1} ht1和当前输入 x t x_t xt,通过sigmoid函数 σ \sigma σ,决定舍弃哪些旧信息。sigmoid值域为(0, 1),当其值接近于0时丢弃一部分信息,当其值接近于1时保持信息。sigmoid函数曲线如下图所示(图取自百度百科):
  • 选择记忆阶段
    输入门和tanh决定从上一时刻隐藏层激活值 h t − 1 h_{t-1} ht1和当前输入值 x t x_t xt中保存哪些新信息,并得到候选值 c ~ t \widetilde{c}_t c t
  • 输出阶段
    输出门结合tanh决定 h t − 1 h_{t-1} ht1 x t x_t xt c t c_t ct中哪些信息输出为本时刻的隐藏层状态 h t h_t ht
    LSTM通过上述的方式决定如何舍弃、保持和更新信息,因为最后的结果 h t h_t ht是由多个函数作用并结合RNN所没有的求和操作(除了加偏置之外的求和)得来的,所以在反向传播过程中不容易产生梯度消失问题。
    另外,从宏观角度看,LSTM各个timestep的细胞状态之间有一条直线相连,直线上结合了输入门和遗忘门的信息,这暗示我们只要合理的设置输入门和遗忘门,就可以控制LSTM长期记忆某个timestep细胞状态的值。
    综上,RNN和LSTM的区别如下:
  1. RNN没有细胞状态;LSTM通过细胞状态记忆信息。
  2. RNN激活函数只有tanh;LSTM通过输入门、遗忘门、输出门引入sigmoid函数并结合tanh函数,添加求和操作,减少梯度消失和梯度爆炸的可能性。
  3. RNN只能够处理短期依赖问题;LSTM既能够处理短期依赖问题,又能够处理长期依赖问题。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/939647
推荐阅读
相关标签
  

闽ICP备14008679号