Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

openloop

ニューラル ネットワークの閉ループ フィードバックから開ループへの変換

構文

net = openloop(net)
[net,xi,ai] = openloop(net,xi,ai)

説明

net = openloop(net) は、ニューラル ネットワークを受け取り、閉ループ フィードバックを開ループに変換します。これは、net.outputs{i}.feedbackMode プロパティが 'closed' である各フィードバック出力 i について、関連するフィードバック層の重みを、新しい入力と入力重みの接続に置き換えます。net.outputs{i}.feedbackMode プロパティが 'open' に設定され、net.outputs{i}.feedbackInput プロパティが新しい入力のインデックスに設定されます。最後に、フィードバック入力の重みの遅延 (置き換えられた層重みの遅延の値) から net.outputs{i}.feedbackDelays の値が減算されます。

[net,xi,ai] = openloop(net,xi,ai) は、閉ループ ネットワーク、およびその現在の入力遅延状態 xi と層遅延状態 ai を、開ループの形式に変換します。

NARX ネットワークから開ループ形式への変換

この例では、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);

Figure Neural Network Training (27-Jul-2023 15:30:27) contains an object of type uigridlayout.

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);

遅延状態の変換

closeloopopenloop を使用して複数ステップの予測を実装する例については、narxnet および narnet を参照してください。

バージョン履歴

R2010b で導入