> 文章列表 > RNN相关知识总结

RNN相关知识总结

RNN相关知识总结

目录

      • RNN结构与原理
        • 1.模型总览
        • 2.反向传播
      • LSTM结构与原理
        • 1.模型总览
        • 2.如何解决RNN梯度消失/爆炸问题?
      • GRU结构及原理
        • 1.模型总览
      • LSTM与GRU的区别

RNN结构与原理

1.模型总览

RNN相关知识总结
上图是RNN的展开结构图,由输入层、隐藏层和输出层组成。当前时间步t 的隐藏状态hth_tht 将参与计算下一时间步t+1的隐藏状态ht+1h_{t+1}ht+1hth_tht 还将送入全连接输出层, 用于计算当前时间步的输出OtO_tOt

隐藏层:RNN相关知识总结 激活函数σ一般选择tanh
输出层:RNN相关知识总结 这里的激活函数σ一般选择sigmoid
预测层:RNN相关知识总结
损失函数:RNN相关知识总结 损失是关于预测输出y的函数。

2.反向传播

RNN反向传播需要计算U,W,V等权重的梯度,以计算W的为例:
根据上面的公式,对W求偏导有如下结果。
RNN相关知识总结
重点是求h(T)h^{(T)}h(T)h(t)h^{(t)}h(t)的偏导:
RNN相关知识总结
所以W的梯度表达如下:
RNN相关知识总结
其中tanh′(z(k))=diag(1−(z(k))2)<=1tanh'(z^{(k)})=diag(1-(z^{(k)})^2)<=1tanh(z(k))=diag(1z(k))2)<=1,随着梯度的传到,如果W的主特征小于1,梯度会消失,如果大于1,梯度则会爆炸。因此,为解决上述问题,其改进版本LSTM和GRU等变体应运而生。

LSTM结构与原理

1.模型总览

RNN相关知识总结

长短期记忆(Long short-term memory LSTM) 是一种特殊结构的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比于普通的RNN,LSTM能够在更长的序列中有更好的表现。能够解决在RNN网络中梯度衰减的问题。
RNN 会受到短时记忆的影响。如果一条序列足够长,那它们将很难将信息从较早的时间步传送到后面的时间步。
因此,如果你正在尝试处理一段文本进行预测,RNN 可能从一开始就会遗漏重要信息。 在反向传播期间,RNN 会面临梯度消失的问题。
梯度是用于更新神经网络的权重值,消失的梯度问题是当梯度随着时间的推移传播时梯度下降,如果梯度值变得非常小,就不会继续学习。

LSTM核心是以下三个门:
遗忘门:RNN相关知识总结

输入门:RNN相关知识总结RNN相关知识总结
细胞状态:RNN相关知识总结

输出门:RNN相关知识总结
预测层:RNN相关知识总结

2.如何解决RNN梯度消失/爆炸问题?

RNN梯度消失/爆炸问题源自于在求导时出现连乘,这导致在序列较长的时候梯度趋近于0或无穷,而LSTM求导主要是针对细胞状态求导(涉及矩阵点积的偏导知识):
RNN相关知识总结
因此有:
RNN相关知识总结
其实这里面只ft对这个偏导起作用,即遗忘门。 正是由于ft可训练,每一步的C(k)C^{(k)}C(k)C(k−1)C^{(k-1)}C(k1)的偏导可以自主学习选择在[0,1]或[1,∞],所以整体的连城结果不会趋于0也不会趋于无穷,缓解了梯度消失/爆炸问题。

GRU结构及原理

1.模型总览

RNN相关知识总结
门控循环神经网络(gated recurrent neural network) 是为了更好地捕捉时序数据中间隔较大的依赖关系,循环神经网络的隐含层变量梯度可能出现消失或爆炸,虽然梯度裁剪可以应对梯度爆炸,但是无法解决梯度消失的问题。GRU和LSTM一样是为了解决长期记忆和反向传播中的梯度等问题提出来的。
与LSTM内部中的三个门不同,GRU内部只有两个门,重置门和更新门。
更新门:RNN相关知识总结
重置门:RNN相关知识总结
当前记忆内容:RNN相关知识总结
当前时间步最终记忆:RNN相关知识总结
更新门帮助模型决定到底要将多少过去的信息传递到未来,或到底前一时间步和当前时间步的信息有多少是需要继续传递的。这一点非常强大,因为模型能决定从过去复制所有的信息以减少梯度消失的风险。重置门主要决定了到底有多少过去的信息需要遗忘

LSTM与GRU的区别

  1. 新的记忆都是根据之前状态及输入进行计算,但是GRU中有一个重置门控制之前状态的进入量,而在LSTM里没有类似门(其实输入门也有这个意思);
  2. 产生新的状态方式不同,LSTM有两个不同的门,分别是遗忘门(forget gate)和输入门(input gate),而GRU只有一种更新门(update gate);
  3. LSTM对新产生的状态可以通过输出门(output gate)进行调节,而GRU对输出无任何调节。
  4. GRU的优点是这是个更加简单的模型,所以更容易创建一个更大的网络,而且它只有两个门,在计算性能上也运行得更快,然后它可以扩大模型的规模。
  5. LSTM更加强大和灵活,因为它有三个门而不是两个。