趋近智
序列预测是序列建模中的一项重要任务,目标是根据序列的过去元素预测其未来元素。这项任务涉及如何专门为预测配置循环神经网络 (RNNs)、长短期记忆网络 (LSTMs) 和门控循环单元 (GRUs)。主要应用包括时间序列预测,也适用于预测句子中的下一个词或旋律中的下一个音符等场景。
主要思路很简单:我们将序列历史的一部分输入到循环网络中,网络学习输出一个或多个未来值。网络在时间步之间保持的内部状态,使其能够捕获输入序列中的时间依赖关系,这对于做出准确预测非常重要。
不同的预测问题需要不同的输入-输出映射。让我们来看看常见模式:
多对一预测: 这可能是基本预测中最常见的设置。网络接收一系列输入值(历史数据),并预测下一个时间步的单个值。
return_sequences参数通常设置为False(或等效于框架的设置),因为我们只需要最后一个输出。多对多预测(直接多步): 在这种方法中,网络接收一系列输入,并直接预测一系列未来输出。
多对多预测(迭代多步): 另一种预测未来多个时间步的方式是迭代。训练一个多对一模型来预测下一个时间步。为了预测更远,模型对步长 t+1 的预测被附加到输入序列中,然后用于预测步长 t+2,依此类推。
return_sequences=True)。然后,这些输出通常由一个包裹在全连接层外部的TimeDistributed包装器(或等效机制)处理,为每个时间步生成一个输出。让我们关注常见的多对一设置,用于预测时间序列中的下一个值。
输入形状: 如第8章所述,时间序列数据通常使用滑动窗口方法准备。如果我们要使用前 k 个值预测时间 t 的值,则输入序列为 [xt−k,xt−k+1,...,xt−1],目标输出为 xt。馈送到RNN的每个输入样本都将具有形状 (k, num_features),其中 num_features 是在每个时间步测量的独立数据流的数量(例如,仅温度为1,如果包括压力、湿度等则为多个)。批量输入将具有形状 (batch_size, k, num_features)。
模型结构:
(k, num_features))。return_sequences=False。这些层中的单元数量是一个需要调整的超参数。用于序列预测的典型多对一架构。循环层处理输入序列,其最终隐藏状态被传递到一个全连接层以生成单个预测值。
"* 循环单元的选择: LSTM和GRU通常比SimpleRNN更受青睐,尤其是在可能存在长期依赖关系的数据中,因为它们能更好地处理梯度(如第4、5和6章所讨论)。"
这些基本方法构成了将RNN应用于多种序列预测问题的根本。接下来的部分将了解如何调整类似架构以适应分类和生成任务。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造