目录
语法
说明
示例
准备开环和闭环网络的数据
preparets函数的功能是为网络模拟或训练准备输入和目标时间序列数据
[Xs,Xi,Ai,Ts,EWs,shift] = preparets(net,Xnf,Tnf,Tf,EW)
[Xs, Xi, Ai, Ts, EWs, shift] = preparets(net, Xnf, Tnf, Tf, EW) 这个函数接受以下参数:
net — 神经网络
Xnf — 无反馈输入
Tnf — 无反馈目标
Tf — 反馈目标
EW — 错误权重(可选)
并返回以下参数:
Xs — 被移位的输入
Xi — 初始输入延迟状态
Ai — 初始层延迟状态
Ts — 被移位的目标
EWs — 被移位的错误权重
shift — 从X和T前面截断的时间步数,以便正确填充Xi和Ai。
该函数简化了通常复杂且容易出错的重新格式化输入和目标时间序列的任务。它会自动将输入和目标时间序列移动多个时间步,以填充初始输入和层延迟状态。如果网络具有开环反馈,它会根据需要将反馈目标复制到输入中,以定义开环输入。
每当设计一个新的网络,具有不同数量的延迟或反馈设置,preparets 可以相应地重新格式化输入和目标数据。此外,每当使用 openloop、closeloop、removedelay 或adddelay 转换网络时,此函数也可以相应地重新格式化数据。
这个示例展示了如何为开环和闭环网络准备数据。
首先创建一个具有20个隐藏神经元的时滞网络,然后对其进行训练和模拟。
[X,T] = simpleseries_dataset;
net = timedelaynet(1:2,20);
[Xs,Xi,Ai,Ts] = preparets(net,X,T);
net = train(net,Xs,Ts);
view(net)
如图所示:
Y = net(Xs,Xi,Ai);
设计一个NARX网络。NARX网络具有标准输入和一个用于关联反馈输入的开环反馈输出。
[X,T] = simplenarx_dataset;
net = narxnet(1:2,1:2,20);
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T);
net = train(net,Xs,Ts,Xi,Ai);
如图所示:
view(net)
如图所示:
y = net(Xs,Xi,Ai);
现在将网络转换为闭环,并重新格式化数据以模拟网络的闭环响应。
net = closeloop(net);
view(net)
如图所示:
[Xs,Xi,Ai] = preparets(net,X,{},T);
y = net(Xs,Xi,Ai);
参数说明
net — 输入网络
输入网络,指定为网络对象。要创建一个网络对象,可以使用例如 feedforwardnet 或 narxnet。
Xnf — 无反馈输入
无反馈输入数据(不与开环反馈输出相关联的输入),指定为单元数组。
Tnf — 无反馈目标
非反馈输出的目标数据,指定为单元数组。
Tf — 反馈目标
反馈输出的目标数据,指定为单元数组。
EW — 错误权重
错误权重,指定为单元数组。
Xs — 移位后的输入
移位后的输入,以单元数组形式返回。
Xi — 初始输入延迟状态
初始输入延迟状态,以单元数组形式返回。
Ai — 初始层延迟状态
初始层延迟状态,以单元数组形式返回。
Ts — 移位后的目标
移位后的目标,以单元数组形式返回。
EWs — 移位后的错误权重
移位后的错误权重,以单元数组形式返回。
shift — 时间步数
从X和T前截断的时间步数,以正确填充Xi和Ai,以标量形式返回。