1、考虑下列三种情况下,对比一下普通RNN的表现和LSTM和GRU表现:
(1)早期观测值对预测未来观测者具有非常重要的意义。
考虑一个极端情况,其中第一个观测值包含一个校验和, 目标是在序列的末尾辨别校验和是否正确。 在这种情况下,第一个词元的影响至关重要。
RNN的表现:将不得不给这个观测值指定一个非常大的梯度, 因为它会影响所有后续的观测值。
LSTM和GRU的表现:提供某些机制能够在一个记忆元里存储重要的早期信息。
(2) 一些词元没有相关的观测值。
例如,在对网页内容进行情感分析时, 可能有一些辅助HTML代码与网页传达的情绪无关。
RNN的表现:没有机制来跳过隐状态表示中的此类词元。
LSTM和GRU的表现:有一些机制来跳过隐状态表示中的此类词元。
(3)序列的各个部分之间存在逻辑中断。
例如,书的章节之间可能会有过渡存在, 或者证券的熊市和牛市之间可能会有过渡存在。
RNN的表现:在这种情况下,没有办法来重置我们的内部状态表示。
LSTM和GRU的表现:在这种情况下,有一法来重置我们的内部状态表示。
2、LSTM和GRU能力相对占优的原理和机制
(1)GRU
支持隐状态的门控。 这意味着模型有专门的机制来确定应该何时更新隐状态, 以及应该何时重置隐状态。 这些机制是可学习的,并且能够解决了上面列出的问题。 例如,如果第一个词元非常重要, 模型将学会在第一次观测之后不更新隐状态。 同样,模型也可以学会跳过不相关的临时观测。 最后,模型还将学会在需要的时候重置隐状态。
下面具体讨论各类门控的作用。
重置门有助于捕获序列中的短期依赖关系。
更新门有助于捕获序列中的长期依赖关系。
重置门的数学表达式:
对于给定的时间步,假设输入是一个小批量(样本数,输入数),前一个时间步的隐状态是(隐藏单元数)。
那么,重置门和更新门的计算方式如下所示:
其中,、、和是权重参数,,是偏置参数。表示sigmoid函数,将输入值转换到区间(0,1)内。
将重置门与常规隐状态更新机制集成,得到时间步的候选隐状态:
。
候选隐状态结合更新门,形成新的隐状态:
。
每当更新门接近1时,模型就倾向只保留旧状态。 此时,来自的信息基本上被忽略, 从而有效地跳过了依赖链条中的时间步。 相反,当接近0时, 新的隐状态就会接近候选隐状态。 这些设计可以帮助我们处理循环神经网络中的梯度消失问题, 并更好地捕获时间步距离很长的序列的依赖关系。 例如,如果整个子序列的所有时间步的更新门都接近于1, 则无论序列的长度如何,在序列起始时间步的旧隐状态都将很容易保留并传递到序列结束。
(2)LSTM
a、设计灵感
LSTM(长短期记忆网络)的设计灵感来源于传统的人工神经网络在处理序列数据时存在的问题,特别是梯度消失和梯度爆炸的问题。
在传统的RNN(循环神经网络)中,信息在网络中的传递是通过隐状态向量进行的。然而,在处理长序列数据时,由于反向传播过程中梯度的不断乘积,会导致梯度消失或梯度爆炸的问题,使得网络无法有效地学习到长期依赖关系。
为了解决这个问题,Hochreiter和Schmidhuber提出了LSTM网络。LSTM网络引入了“门”的概念,包括输入门、遗忘门和输出门,这些门可以控制信息在神经元之间的流动,并允许网络在需要的时候存储和更新长期记忆。
具体来说,LSTM网络中的每个单元包含一个细胞状态,该状态可以在时间步之间传递并被修改。输入门、遗忘门和输出门分别控制细胞状态的更新、清除和读取操作。通过这三个门的巧妙设计,LSTM网络能够在处理长序列数据时有效地避免梯度消失和梯度爆炸的问题,同时保留长期依赖关系的信息。
因此,LSTM的设计灵感主要来自于对传统RNN在处理序列数据时存在问题的深入理解和解决思路,以及对如何更好地模拟人类大脑处理序列信息机制的探索和创新。
b、数学表达式
下面我们来具体看看输入门、遗忘门和输出门以及记忆细胞元的数学表达式:
假设有个隐藏单元,批量大小为,输入数为。因此,输入为,前一个时间步的隐状态为。时间步的门被定义为:输入门,遗忘门,输出门。各种门的计算方法如下:
其中,和是权重参数,是偏置参数。
候选记忆细胞元的计算表达式为:
其中,和是权重参数,是偏置参数。
记忆元细胞的计算表达式为:
。
在上述设计中,输入门控制采用多少来自的新数据,而遗忘门控制保留多少过去的记忆元的内容。
如果遗忘门始终为1且输入门始终为0, 则过去的记忆元将随时间被保存并传递到当前时间步。 引入这种设计是为了缓解梯度消失问题, 并更好地捕获序列中的长距离依赖关系。
隐状态的计算表达式为:
。
在上述设计中,只要输出门接近1,我们就能够有效地将所有记忆信息传递给预测部分, 而对于输出门接近0,我们只保留记忆元内的所有信息,而不需要更新隐状态。