Преобразование обратной связи по замкнутому контуру нейронной сети в разомкнутый контур
net = openloop(net)
[net,xi,ai] = openloop(net,xi,ai)
net = openloop(net) берет нейронную сеть и открывает любую замкнутую обратную связь. Для каждого выхода обратной связи i чья собственность net.outputs{i}.feedbackMode является 'closed'он заменяет связанные с ним весовые коэффициенты уровня обратной связи новыми входными и входными весовыми соединениями. net.outputs{i}.feedbackMode свойство имеет значение 'open', и net.outputs{i}.feedbackInput установлено значение индекса нового входа. Наконец, значение net.outputs{i}.feedbackDelays вычитается из задержек входных весов обратной связи (т.е. из значений задержек весов замененного слоя).
[net,xi,ai] = openloop(net,xi,ai) преобразует замкнутую сеть и ее текущие состояния задержки на входе xi и состояния задержки уровня ai в форму с разомкнутым контуром.
Здесь сеть NARX конструируется в форме с разомкнутым контуром и затем преобразуется в форму с замкнутым контуром, а затем обратно.
[X,T] = simplenarx_dataset;
net = narxnet(1:2,1:2,10);
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T);
net = train(net,Xs,Ts,Xi,Ai);
view(net)
Yopen = net(Xs,Xi,Ai)
net = closeloop(net)
view(net)
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T);
Yclosed = net(Xs,Xi,Ai);
net = openloop(net)
view(net)
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T);
Yopen = net(Xs,Xi,Ai)
Примеры использования closeloop и openloop для реализации многоступенчатого прогнозирования см. narxnet и narnet.