有什么区别NARX开环+删除延迟和闭环预测N步成功吗?

5视图(30天)
我想预测提前一天(N = 24步骤)的时间序列。在之前的工作中,我解决了这个问题通过使用一个开放的循环(OL) NARX removedelay功能转移输出(预测值)24个步骤。
% % 3。OL NARX方法
% % 3。网络体系结构
跳频= 24;%预测地平线
延迟= 24;
inputDelays = fh:跳频+延迟;
feedbackDelays = fh:跳频+延迟;
neuronsHiddenLayer = 10;
%创建网络
网= narxnet (inputDelays feedbackDelays neuronsHiddenLayer);
网= removedelay(净、跳频);
% % 4。培训网络
[x, Xi, Ai, Ts] = preparets(网,inputSeries, {}, targetSeries);
网=火车(净,x, Ts, Xi, Ai);
视图(净)
% y (t + 24)
Y =净(Xs, Xi, Ai);
%串并联的性能实现
%领先一步预测
穿孔=执行(净,Ts, Y);
但是现在,通过更好的搜索功能的工具箱,我发现人们使用NARX闭环(CL)预测N步前进。或多或少像下面的代码。
% % CL NARX方法
% % 2。数据准备
N = 24;%多步向前预测
%的输入和目标系列分为两组数据:
% 1组:用于训练网络
inputSeries = X (1: end-N);
targetSeries = T (1: end-N);
% 2组:这是用于模拟的新数据。inputSeriesVal将
%用于预测新的目标。targetSeriesVal将用于
%网络验证后的预测
inputSeriesVal = X (end-N + 1:结束);
targetSeriesVal = T (end-N + 1:结束);
% % 3。网络体系结构
延迟= 24;
neuronsHiddenLayer = 10;
%创建网络
网= narxnet(1:延迟,1:延迟,neuronsHiddenLayer);
% % 4。培训网络
[x, Xi, Ai, Ts] = preparets(网,inputSeries, {}, targetSeries);
网=火车(净,x, Ts, Xi, Ai);
视图(净)
Y =净(Xs, Xi, Ai);
%串并联的性能实现
%领先一步预测
穿孔=执行(净,Ts, Y);
% % 5。多步向前预测
[Xs1、Xio Aio] = preparets(净,inputSeries (1: end-delay) {}, targetSeries (1: end-delay));
[Xfo日元,Afo] =净(Xs1、Xio Aio);
[netc、Xic Aic] = closeloop(网,Xfo, Afo);
[yPred, Xfc,亚足联]= netc (inputSeriesVal、Xic Aic);
multiStepPerformance =执行(网,yPred, targetSeriesVal);
  1. 我以错误的方式使用NARX吗?
  2. 这两种方法之间的区别是什么?
谢谢你的关注。

答案(1)

格雷格·希斯
格雷格·希斯 2018年9月23日
开环(OL)使用目标先验信息来模拟输出反馈。它主要是用于设计输出是未知的未来
闭环(CL)反馈的实际输出信息,因此不像OL实时配置。
希望这个有帮助。
谢谢你的正式接受我的答案
格雷格