注意:本文引用自专业人工智能社区Venus AI
更多AI知识请参考原站 ([www.aideeplearning.cn])
引言
传统循环神经网络在处理长序列时面临梯度消失或爆炸问题。梯度消失是指在训练过程中,误差反向传播时,梯度随着时间步数的增加而指数级衰减。梯度爆炸则正好相反,这会导致模型难以学习到当前时刻和距离较远的时刻之间的依赖关系。梯度消失问题的原因如下:
假设有一个简单的RNN模型,其隐藏状态的计算如下:
其中,是当前时间步 t 的隐藏状态,
是上一个时间步 t−1 的隐藏状态,
是当前时间步 t 的输入, W 和 U 分别是隐藏状态和输入的权重矩阵, b 是偏置项。
在训练过程中, 需要通过误差反向传播来更新权重矩阵 W 和 U 。为了计算 t 时刻关于 的梯度, 我们需要计算以下偏导数:
根据链式法则, 有:
其中 是 tanh 激活函数的导数。请注意, 导数的值在- 1 和 1 之间, 因为 tanh 激活函数的输出范围是 (−1,1) 。当进行反向传播时, 需要计算 T 时刻的损失函数 L 关于
的梯度:
可以看到, 梯度是关于每一时间步的偏导数的连乘积。由于每个偏导数都包含 tanh 激活函数的导数项, 当时间步数增加时, 这些小于 1 的值会被反复相乘, 导致梯度指数级衰减。这就是梯度消失问题的主要原因。反之, 如果大于 1 的值被反复相乘, 也可能出现梯度爆炸的情况。
梯度消失问题使得RNN在学习长距离依赖关系时变得非常困难,因为较早的时间步长的信息在反向传播过程中被丢失。为了解决这个问题,学者们提出了一些改进的RNN结构,长短期记忆网络和门控循环单元就是其中的代表。
长短期记忆网络(LSTM)
相对于传统的循环神经网络,长短期记忆网络具有更强的记忆和长期依赖性建模能力。它与GRU都采用类似的门机制。通过一系列门(输入门、遗忘门和输出门)来控制信息的流动,并使用单元状态来存储和传递信息。这些门允许网络选择性地从输入中获取信息、遗忘不重要的信息并决定什么信息传递到下一层。由于其出色的性能和实用性,LSTM已成为深度学习中最流行的神经网络架构之一。
在标准的RNN中,循环结构如图1所示。
![图片[1]-长短期记忆网络(LSTM)和门控循环单元(GRU)算法详解-VenusAI](https://i-blog.csdnimg.cn/blog_migrate/5fb13cb8e73fd0300a9affad8f86075c.png)
循环神经网络在每个时间步 t 上接收一个输入向量 , 并更新其隐藏状态
的计算过程可以表示为: