LSTM和GRU vs 普通的循环神经网络RNN

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, 则无论序列的长度如何,在序列起始时间步的旧隐状态都将很容易保留并传递到序列结束。

相关推荐
vvoennvv1 天前
【Python TensorFlow】 TCN-LSTM时间序列卷积长短期记忆神经网络时序预测算法(附代码)
python·神经网络·机器学习·tensorflow·lstm·tcn
软件算法开发2 天前
基于秃鹰搜索优化的LSTM深度学习网络模型(BES-LSTM)的一维时间序列预测算法matlab仿真
深度学习·算法·matlab·lstm·时间序列预测·秃鹰搜索优化·bes-lstm
斯外戈的小白2 天前
【NLP】基础概念+RNN架构
rnn·自然语言处理·分类
_codemonster2 天前
深度学习实战(基于pytroch)系列(三十五)循环神经网络的从零开始实现
人工智能·rnn·深度学习
孤狼warrior2 天前
我想拥有作家的思想 循环神经网络及变型
人工智能·rnn·深度学习·神经网络·lstm
qq_17082750 CNC注塑机数采2 天前
【Python TensorFlow】 CNN-GRU卷积神经网络-门控循环神经网络时序预测算法(附代码)
python·rnn·机器学习·cnn·gru·tensorflow
vvoennvv3 天前
【Python TensorFlow】CNN-BiLSTM时序预测 卷积神经网络-双向长短期记忆神经网络组合模型(附代码)
python·神经网络·cnn·tensorflow·lstm·bilstm
vvoennvv3 天前
【Python TensorFlow】 CNN-GRU卷积神经网络-门控循环神经网络时序预测算法(附代码)
python·神经网络·机器学习·cnn·gru·tensorflow
_codemonster4 天前
深度学习实战(基于pytroch)系列(三十三)循环神经网络RNN
人工智能·rnn·深度学习
Evand J4 天前
【TCN与LSTM例程】TCN(时间卷积网络)与LSTM(长短期记忆)训练单输入单输出,用于拟合一段信号,便于降噪。MATLAB
网络·人工智能·matlab·lstm