用神经网络(RNN?)预测向量的演化

数据挖掘 机器学习 神经网络 张量流 rnn
2022-02-20 02:22:37

我想预测 2D 序列的演变(第三维是时间)并使用预测的序列(以及几个先前预测的序列和一些随时间变化的标量值)来预测下一个 2D 序列,并最终使用该预测来预测时间顺序如下。

数据的二维时间片示例: 要使用的数据

我想训练我的神经网络根据最后的〜3个轮廓和一个时变标量参数来预测一个新的2D“轮廓”(3D轮廓的时间片)。什么样的神经网络架构能够及时预测下一个 2D 轮廓?我怀疑 RNN,但哪些子模型适用于此(例如 seq2seq、NMT 等)?

帮助将不胜感激!

1个回答

啊,所有!想出了答案。

首先,这是一个时间序列预测问题。您希望预测(预测时间演变)这些 2D 轮廓。在分类问题(神经网络最流行的应用)中,目标值向量可以是 one-hot 编码向量,其中“1”值是正确的分类;其他值(类)为“0”。您将其提供给您的网络,它将“学习”与每个特定类别相对应的数据中的模式。它将通过最小化成本函数来做到这一点,直到预测的类别(最接近 1 的类别)与正确的类别匹配,并且其他预测非常接近于零。网络本质上越来越接近实际目标值。

这个确切的想法可以应用于这个预测问题,你输入一个目标值的向量,但是这次向量不是单热编码的(或者,在其他情况下,类的概率分布)。它只是轮廓上每个点的已知(目标)值。是的,RNN 很好,但 MLP 也可以完成这项工作。具体来说,对于 RNN,您可以使用 LSTM 单元和单元。对于这个特定问题,不需要 seqtoseq 或 NMT 架构。

一个重要的区别是预测问题不使用 softmax 函数。相反,他们使用 ReLU 和 MSE/MAD 等线性激活函数来处理损失。

在模型中设置此类问题(在预处理步骤中)可能与分类问题略有不同。此处的本教程总体上非常好,但也包含可用于许多预测应用程序的宝贵预处理代码(尤其是 series_to_supervised() 函数。

希望这可以帮助!