可以将输出反馈回人工神经网络中的输入吗?

问题描述

我目前正在设计一个人工神经网络来解决衰减曲线问题。 例如,建立一个模型来预测某些材料的耐久性。它可能包括温度和湿度等环境条件。

但是,不足以预测材料的耐用性。对于这样的问题,我认为最好使用前一个时隙的输出耐久性作为当前输入之一来预测下一个时隙的耐久性。

此外,我不知道如何训练将输出反馈回输入的模型,因为输入列之一仅具有训练前的初始值。

在这种情况下,

方法1(失败) 我试图将当前行的预测输出耐久性填充到下一行的输入耐久性。但是,这将防止模型出现“ loss.backward()”,因此,如果这样做,我们将无法计算和更新渐变。当我将预测的输出复制到输入数据的下一行时,使用的梯度函数是“ copySlices”而不是“ MSELoss”。

Feed output to input

gradient function -copy-

方法2“用期望的输出填充输入列” 在这方法中,我在训练模型之前用期望的输出(行1)填充空白输入列。使用上一行的预期输出填充输入列仅用于培训。对于真实的预测,我会将预测的输出馈送到输入。在这种情况下,我可以使用MSELoss成功训练过拟合模型。

此外,我认为这不是正确的方法,因为无论预期有多么糟糕,它都会使用预期的输出作为输入。我坚信这不是正确的方法


因此,我想问一问是否可以使用人工神经网络将输出反馈到线性回归问题中。

我很抱歉在这里没有上传任何代码,因为我不方便在此处上传完整的代码。这可能是机密的。

解决方法

您似乎需要一个RNN(递归神经网络)。本教程对于了解RNN:https://colah.github.io/posts/2015-08-Understanding-LSTMs/很有帮助。