设计时间序列时滞神经网络
从最简单的动态网络,它由抽头延迟线的前馈网络的输入。这被称为集中时滞神经网络(FTDNN)。这是一个一般类的动态网络的一部分,称为集中网络,动态仅出现在一个静态的多层前馈网络的输入层。下面的图展示了一个两层的FTDNN。
这个网络是适合时间序列的预测。下面的例子使用FTDNN预测一个典型的时间序列。
下图是一个阴谋的归一化强度数据记录远红外激光器的混沌状态。这是一个部分的几组数据用于圣达菲时间序列竞争(WeGe94]。竞争的目标是使用第一个1000分的时间序列来预测下一个100分。因为我们的目的只是为了说明如何使用预测FTDNN,这里的网络是训练来执行领先一步预测。(您可以使用生成的网络供喂multistep-ahead预测预测网络的输入和继续迭代)。
第一步是加载数据,规范化,并把它转换成时间序列(由单元阵列表示):
y = laser_dataset;y = y (1:6);
现在创建FTDNN网络使用timedelaynet
命令。这个命令是相似的feedforwardnet
命令,抽头延迟线的额外的输入向量(第一个输入)。对于这个示例,使用一个抽头延迟线延迟从1到8,并使用十个隐层神经元:
ftdnn_net = timedelaynet ([1:8], 10);ftdnn_net.trainParam。时代= 1000;ftdnn_net。divideFcn = ";
为培训安排网络输入和目标。因为网络有一个抽头延迟线的最大延迟8,首先预测的第九值时间序列。您还需要加载抽头延迟线的八个初始值时间序列(包含在变量中π
):
p = y(9:结束);t = y(9:结束);π= y (1:8);ftdnn_net =火车(ftdnn_net p t,π);
注意,网络的输入是一样的目标。因为网络有一个时间步的最小延迟,这意味着您正在执行一个领先一步预测。
在培训过程中,培训窗口。
训练了,因为最大的时代了。从这个窗口中,您可以通过点击显示的反应网络时间序列响应。出现下图。
现在模拟网络和确定预测误差。
yp = ftdnn_net (p,π);e = gsubtract (yp t);rmse =√mse (e) rmse = 0.9740
(注意,gsubtract
是一个通用的减函数,可以操作单元数组。)这个结果比你可以得到更好的使用一个线性预测。可以用以下命令验证这一点,设计一个线性滤波器具有相同输入与前面的FTDNN抽头延迟线。
lin_net = linearlayer ([1:8]);lin_net.trainFcn =“trainlm”;[lin_net, tr] =火车(lin_net p t,π);lin_yp = lin_net (p,π);lin_e = gsubtract (lin_yp t);lin_rmse =√mse (lin_e) lin_rmse = 21.1386
的rms
线性预测误差是21.1386,但是0.9740非线性FTDNN预测。
FTDNN的显著特点之一是,它不需要动态反向传播网络梯度计算。这是因为抽头延迟线只出现在网络的输入,而不包含反馈循环或可调参数。出于这个原因,你会发现这个网络训练速度比其他的动态网络。
如果您有一个应用程序动态网络,首先尝试线性网络(linearlayer
),然后FTDNN (timedelaynet
)。如果没有网络是满意的,尝试一个更复杂的动态网络的其余部分中讨论这个话题。
每次训练神经网络时,会导致一个不同的解决方案由于不同初始重量和偏见价值观和不同部门的数据训练,验证集和测试集。结果,不同的神经网络训练同样的问题可以给不同的相同的输入输出。确保神经网络良好的准确性已经发现,培训几次。
还有其他几个技术改进初始解决方案如果需要更高的精度。金宝搏官方网站有关更多信息,请参见改善浅神经网络泛化,避免过度拟合。
准备输入和层延迟的状态
您将注意到在最后一节,动态网络有大量的数据准备之前,需要培训或模拟网络。这是因为抽头延迟线在网络需要充满初始条件,它要求原始数据集的一部分被移除和改变。有一个工具箱函数,简化了数据准备工作动态(时间序列)网络preparets
。例如,以下行:
p = y(9:结束);t = y(9:结束);π= y (1:8);
可以替换
[p,π,人工智能,t] = preparets (ftdnn_net y, y);
的preparets
函数使用网络对象来决定如何填满抽头延迟线初始条件,以及如何将数据创建正确的使用在训练或模拟输入和目标网络。调用的一般形式preparets
是
[X,ξ,人工智能,T,电子战,转变]= preparets(净、输入目标,反馈,电子战)
的输入参数preparets
是网络对象(净
),外部的(没有反馈)输入到网络(输入
),没有反馈目标(目标
),反馈目标(反馈
),重量误差(电子战
)(见神经网络训练误差的权重)。之间的差异和外部反馈信号时,将变得更清楚NARX网络中描述设计时间序列NARX神经网络的反馈。FTDNN网络,没有反馈信号。
返回参数preparets
网络的输入和输出之间的时移(转变
)、训练和仿真网络的输入(X
),初始输入(习
),加载输入权重的抽头延迟线,初始层输出(人工智能
),加载层权重的抽头延迟线,培训目标(T
),重量误差(电子战
)。
使用preparets消除了需要手动输入和目标转移和负载抽头延迟线。这是特别有用的更复杂的网络。