循环神经网络:处理长序列的有效方法
1. 时间序列预测中的误差处理
在进行时间序列预测时,为预测结果添加误差范围往往是很有用的。一种实现方法是使用蒙特卡罗丢弃法(MC dropout):
1. 在训练期间使用 recurrent_dropout 。
2. 在推理时,通过调用 model(X, training=True) 保持丢弃法处于激活状态。
3. 多次重复上述步骤以获得多个略有不同的预测结果。
4. 计算每个时间步这些预测结果的均值和标准差。
2. 解决短期记忆问题
由于数据在循环神经网络(RNN)中传输时会经历各种变换,每个时间步都会丢失一些信息。一段时间后,RNN 的状态几乎不包含最初输入的任何痕迹,这可能会成为一个阻碍。为了解决这个问题,引入了具有长期记忆的各种类型的单元,其中最流行的是长短期记忆(LSTM)单元。
2.1 LSTM 单元
LSTM 单元由 Sepp Hochreiter 和 Jürgen Schmidhuber 在 1997 年提出,并在多年来由多位研究人员逐步改进。如果将 LSTM 单元视为一个黑盒,它的使用方式与基本单元非常相似,但性能要好得多,训练收敛更快,并且能够检测数据中的长期模式。
在 Keras 中,可以简单地使用 LSTM 层代替 SimpleRNN 层:
import tensorflow as tf
model = tf.k
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



