Преобразование обратной связи с открытым контуром нейронной сети в замкнутый контур
net = closeloop(net)
[net,xi,ai] = closeloop(net,xi,ai)
net = closeloop(net) принимает нейронную сеть и закрывает любую обратную связь с разомкнутым контуром. Для каждого выхода обратной связи i чья собственность net.outputs{i}.feedbackMode является 'open', он заменяет связанный с ним вход обратной связи и их входные веса связями весов слоев, выходящими из выхода. net.outputs{i}.feedbackMode свойство имеет значение 'closed', и net.outputs{i}.feedbackInput свойство имеет значение пустой матрицы. Наконец, значение net.outputs{i}.feedbackDelays добавляется к задержкам весов уровня обратной связи (т.е. к значениям задержек замененных входных весов).
[net,xi,ai] = closeloop(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);
Примеры использования closeloop и openloop для реализации многоступенчатого прогнозирования см. narxnet и narnet.