长短期记忆网络解释
先决条件:递归神经网络
为了解决深度递归神经网络中的梯度消失和爆炸问题,开发了许多变体。其中最著名的之一是长短期记忆网络 (LSTM)。从概念上讲,LSTM 循环单元试图 “记住” 到目前为止看到的所有过去知识,并 “忘记” 不相关的数据。这是通过引入不同的激活函数层(称为“门”)来实现的,用于不同的目的。每个 LSTM 循环单元还维护一个称为内部单元状态的向量,该向量从概念上描述了选择由前一个 LSTM 循环单元保留的信息。
LSTM 网络是循环神经网络 (RNN) 最常用的变体。LSTM 的关键组件是存储单元和门(包括遗忘门和输入门),存储单元的内部内容由输入门和遗忘门调制。假设两个 segue he 都关闭了,那么记忆单元的内容在一个时间步和下一个时间步之间将保持不变。梯度门控结构允许信息在多个时间步中保留,因此也允许组流经多个时间步。这使得 LSTM 模型能够正确克服大多数递归神经网络模型发生的梯度消失。
长短期记忆网络由四个不同的门组成,用于不同的目的,如下所述:-
1. 忘记门 (f):在忘记门处,输入与前一个输出相结合,生成一个介于 0 和 1 之间的分数,它决定了需要保留多少前一个状态(或者换句话说,应该忘记多少状态)。然后,此输出与前一个状态相乘。注意:激活输出 1.0 表示“记住所有内容”,激活输出 0.0 表示“忘记所有内容”。从另一个角度来看,忘记门的更好名称可能是 “remember gate”
2. 输入门 (i):Input gate 对与 forget gate 相同的信号进行操作,但这里的目标是决定哪些新信息将进入 LSTM 的状态。input gate 的输出(同样是 0 和 1 之间的分数)乘以 tan h block 的输出,该 block 产生必须添加到先前状态的新值。然后将此门控向量添加到先前状态以生成当前状态
3. 输入调制门 (g):它通常被认为是 input gate 的一个子部分,许多关于 LSTM 的文献甚至没有提到它,而是假设它在 Input gate 内部。它用于通过向信息添加非线性并使信息为零均值来调制 Input 门将写入内部状态单元的信息。这样做是为了减少学习时间,因为零均值输入具有更快的收敛速度。尽管此门的操作不如其他门重要,并且通常被视为提供技巧的概念,但最好将此门包含在 LSTM 单元的结构中。
4. 输出门 (o):在输出门口,输入和前一个状态像以前一样被门控,以生成另一个缩放分数,该分数与带来当前状态的 tanh 块的输出相结合。然后给出此输出。output 和 state 被反馈到 LSTM 块中。
长短期记忆网络的基本工作流程类似于递归神经网络的工作流程,唯一的区别是内部细胞状态也与隐藏状态一起向前传递。
LSTM 循环单元的工作原理:
1. Take input 当前输入、之前的隐藏状态和之前的 internal cell 状态。
2. 按照以下步骤计算四个不同门的值:-
• 对于每个门,通过按元素乘以相关向量和每个门的相应权重来计算当前输入和先前隐藏状态的参数化向量。
• 对参数化向量的每个门元素应用相应的激活函数。下面给出的是具有要应用于门的激活函数的门列表。
3. 首先计算 input gate 和 input modulation gate 的元素乘法向量,然后计算 forget gate 的元素乘法向量和之前的内部单元状态,然后将两个向量相加,从而计算当前内部单元状态。
4. 首先取当前内部单元状态向量的元素双曲正切,然后使用输出门执行元素乘法,从而计算当前的隐藏状态。
上述工作说明如下:-
请注意,蓝色圆圈表示元素乘法。权重矩阵 W 包含当前输入向量和每个门的先前隐藏状态的不同权重。
就像循环神经网络一样,LSTM 网络也会在每个时间步生成一个输出,该输出用于使用梯度下降来训练网络。
循环神经网络和长短期记忆网络的反向传播算法之间的唯一主要区别与算法的数学有关。
设为每个时间步的预测输出,并为每个时间步的实际输出。然后每个时间步的误差由下式给出:-
因此,总误差由所有时间步的误差之和给出。
同样,该值可以计算为每个时间步的梯度之和。
使用链式法则并使用 的事实 ,该事实是 的函数,并且确实是 的函数,可得出以下表达式:-
因此,总误差梯度由以下公式给出:-
请注意,梯度方程涉及对于 LSTM 反向传播,而梯度方程涉及基本递归神经网络的链。
LSTM 如何解决梯度消失和爆炸的问题?
回想一下 的表达式 。
梯度的值由从. 开始的导数链控制。使用表达式扩展此值 :-
对于基本 RNN,术语在一定时间后开始采用大于 1 或小于 1 的值,但始终在同一范围内。这是梯度消失和爆炸问题的根本原因。在 LSTM 中,该项没有固定的模式,可以在任何时间步长取任何正值。因此,不能保证在无限数量的时间步长中,该项会收敛到 0 或完全发散。如果梯度开始趋向于零,则可以相应地调整门的权重以使其更接近 1。由于在训练阶段,网络仅调整这些权重,因此它会学习何时让梯度收敛到零,何时保留梯度。