回归和神经网络

数据挖掘 回归
2022-03-03 08:04:01

我正在尝试恢复此功能:

F(X)=X*s一世n(αX)+b;  α,b(-20,20)

我的 NN 模型(使用 Keras)是:

1 层:GRU,9 个神经元,selu 激活
2 层:GRU,3 个神经元,selu 激活
1 层:GRU,7 个神经元,selu 激活
1 层:密集,1 个神经元,
所有层的线性激活内核初始化 he_normal

对于训练数据集,我生成了函数值F(X),X-5..5(例如linspace(-5,5,500),随机数值αb, 250 次。

然后我选择了F[一世-1]F[一世](前面的步骤),对于这个“xs”,输出是F[一世+1]. 所以训练数据集是这样的:

X :
第一行: 上一个 上一个F,α,b
第二行:上一个F,α,b

Y : 当前F价值

在训练超过 200 个 epoch 后,验证数据的 mae 为 0.1851。

现在,如果我尝试预测新数据,这似乎很正常,但是当我尝试使用先前由模型点预测的新值来预测新值时,它会下降并且看起来根本不像正弦函数。

我究竟做错了什么?

1个回答

问题是您的错误正在累积和发散。换句话说,第一次预测中的小错误会导致第二次预测中的更大错误,这会导致第三次预测中更大的错误,依此类推。

话虽如此,这个 LSTM 示例似乎可以很好地预测正弦波的多个未来值。