RNN相关知识

RNN结构与原理

1.模型总览

在这里插入图片描述
上图是RNN的展开结构图,由输入层、隐藏层和输出层组成。当前时间步t 的隐藏状态 h t h_t ht 将参与计算下一时间步t+1的隐藏状态 h t + 1 h_{t+1} ht+1 h t h_t ht 还将送入全连接输出层, 用于计算当前时间步的输出 O t O_t Ot

隐藏层:在这里插入图片描述 激活函数σ一般选择tanh
输出层:在这里插入图片描述 这里的激活函数σ一般选择sigmoid
预测层:在这里插入图片描述
损失函数:在这里插入图片描述 损失是关于预测输出y的函数。

2.反向传播

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

LSTM结构与原理

1.模型总览

在这里插入图片描述

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

LSTM核心是以下三个门:
遗忘门:在这里插入图片描述

输入门:在这里插入图片描述在这里插入图片描述
细胞状态:在这里插入图片描述

输出门:在这里插入图片描述
预测层:在这里插入图片描述

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

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

GRU结构及原理

1.模型总览

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

一些经典问题QA

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

首先在 LSTM 中,sigmoid 作用为门函数的作用,取值范围为 (0, 1),是无法替代的。其次,使用 Relu 的目的是为了解决梯度消失问题,而在 LSTM 中,由于时序上的残差机制,梯度消失问题已经大大减弱了。另一方面,tanh 能够将模型输出映射在 (-1, 1) 范围内,更易于优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hilbob

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值