问题NARX开环培训——与转变——如何提高NARX培训/测试

1视图(30天)
大家好
我的新统计数据和安。我用NARX(开环)来训练一组数据(时间序列作为输入X和一个时间序列作为目标,与超过4000数据点)。数据中,大多数时候,X和T是常数,但有时X突然增加,在很短的时间也会增加,那么X减少恒定值和T也降低其恒定值。请参阅附上的图,显示数据的一小部分。(图中绿线显示的开始增加X)。训练后我想使用的数据模型来预测T领先一步。但我有问题在训练数据。
我使用下面的命令来创建网络,训练它,然后测试它。
网= narxnet (inputDelays feedbackDelays hiddenLayerSize);
(输入、inputStates layerStates目标]=
preparets(净inputSeries (train_period) {}, targetSeries (train_period));
(净,tr) =火车(净、输入目标,inputStates layerStates);
输出=净(输入、inputStates layerStates);
输出Y关联到目标T,但是,在图中,我们可以看到转变的一步大小!的情节,蓝线是目标和红线显示的输出。这只是一个短的一部分数据,这个问题是出现在整个数据(甚至更严重的撞击时T较低)。我的问题是,为什么会有转变的目标T和输出Y之间的步长?我该怎样才能提高模型相关性这两个过得好吗?我用10个隐藏层,3输入和反馈延迟,和“divideint”划分数据。我也使用其他这些参数的值,但没有成功。
我试图用这个训练模型来预测提前一步T,但随着输出是领先一步转移训练,它也有一个相似的测试的转变。因此,结果是不会有用,因为当我们在时间= n, T的模型给出了价值的同时输出时间= n + 1。
任何的建议是感谢。解决这个问题之后,我将利用闭环多步向前预测。
谢谢你!

接受的答案

格雷格·希斯
格雷格·希斯 2017年9月3日
1。Openloop NAR (OL)和NARX配置不是部署!
2。他们不能估计输出时只能输入是已知的。
3所示。他们只有在设计阶段的可部署closeloop (CL)
配置过去的输出信号估计反馈在哪里
输入。
4所示。因此,如果你需要NAR或NARX timeseries净来估计
未知的从已知输入输出,你必须使用一个可部署的
CL配置。
5。底线:OL配置只用于设计
可部署的CL配置!
希望这个有帮助。
谢谢你的正式接受我的答案
格雷格

更多的答案(3)

格雷格·希斯
格雷格·希斯 2017年9月2日
编辑:格雷格·希斯 2017年9月2日
1。在绘制数据没有多少信息。
一个看起来。长度是5点的区间内
0.005定义输入峰值。
b。只有3点定义输入峰值升高。
c。第一目标和输出峰值滞后输入峰值点。
d。似乎没有第二个输入和之间的任何延迟
目标山峰;而一个步伐后输出峰值出现。
2。你可能需要更多的特性更好的预测。
3所示。一种可能性是,试图添加更多指向您的输入和目标数据通过插值。
希望这个有帮助。
谢谢你的正式接受我的答案
格雷格

EK_47
EK_47 2017年9月3日
格雷格
谢谢你花时间来回答这个问题。
1)
一。是的,它有点小于5分。
b是的。
c。是的
d。是的
事实上,我有更多的数据点被使用。原始数据收集每5分钟,但在这里,我平均每2小时的数据,只是为了有更高的预测地平线。我训练模型与原始数据,但是我也有同样的问题,即有一个滞后/目标和输出配置文件之间的转变是一个步长。很明显,当我使用数据和高分辨率,步长小所以滞后/转变会较小。但预测地平线也会更小。这个图显示了只有一小段数据;滞后/输出和目标之间的转变是看到所有的数据。我的问题是如何把这个延迟/培训的转变。
2)你说的是什么样的特性?
3)如前所述,原始数据点,但同样的问题。
再次感谢你的回答和任何其他的评论将会非常感激。
谢谢

EK_47
EK_47 2017年9月4日
编辑:EK_47 2017年9月4日
格雷格
非常感谢你的回答。这是非常有用的。我训练与开环模型配置,然后关闭与闭环配置然后删除removedelay延迟。代码总结如下:
网= narxnet (inputDelays feedbackDelays hiddenLayerSize,“开放”,trainFcn);
[x, xi,人工智能,t] = preparets(净,x, {}, t);
(净,tr) =火车(净,x, t, xi, ai);
净(y = x, xi, ai);
netc = closeloop(净);
(xc、xic aic, tc) = preparets (netc, X, {}, T);
yc = netc (xc、xic aic);
网= removedelay(净);
[X,切除酶,ais, ts) = preparets(网,X, {}, T);
y =网(xs,切除酶,ais);
请参见数据。第一个显示所有数据(输入和目标);第二个显示了数据用于训练;第三个显示了配置文件在2.32 * 10 ^ 5到2.35 * 10 ^ 5分钟,在训练数据的最后一步预测已经实现。在这个图中,绿点位于训练期结束(时间= t),黑点显示目标在时间t + 1 =,和红点显示预测的输出时间= t + 1。结果看起来不错。
红线是“网”网络的输出removedelay之后,和绿线显示了来自“netc”网络输出的闭环网络。
最后一个图中显示数据的一部分在培训期间(0.5 * 10 ^ 5和0.6 * 10 ^ 5分钟)。之间似乎有一种滞后/转移目标(黑线)和输出(红线)“网”。除了“netc”输出的相关性(绿线)到目标(黑线)看起来很可怜。
我有两个问题:
1 -是可以提高模型的性能对输出之间的相关性(红色线)和目标(黑线),即消除滞后/转变?
2 -这是一个严重的问题,没有关联的输出CL网络(绿线)和目标?
接下来,我要做多步预测,当我需要扩展预测地平线。任何建议,我们将不胜感激。
提前感谢您的时间。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
图(1):
图(2):
图(3):
图(4):