Main Content

preparets

ネットワークのシミュレーションまたは学習用の入力およびターゲット時系列データの準備

説明

[Xs,Xi,Ai,Ts,EWs,shift] = preparets(net,Xnf,Tnf,Tf,EW) は、次の引数を取ります。

  • net — ニューラル ネットワーク

  • Xnf — 非フィードバック入力

  • Tnf — 非フィードバック ターゲット

  • Tf — フィードバック ターゲット

  • EW — 誤差の重み (オプション)

これは、次の引数を返します。

  • Xs — シフトされた入力

  • Xi — 初期の入力遅延状態

  • Ai — 初期の層の遅延状態

  • Ts — シフトされたターゲット

  • EWs — シフトされた誤差の重み

  • shiftXi および Ai を適切に入力するために、X および T の前方から切り捨てられたタイム ステップの数。

通常、入力およびターゲット時系列の再構築は複雑でエラーが発生しやすいタスクですが、この関数はこのタスクを単純化します。これにより、初期の入力遅延状態と層の遅延状態を入力するのに必要なステップ数だけ、入力およびターゲット時系列が自動的にシフトされます。ネットワークに開ループ フィードバックがある場合、開ループの入力を定義するために必要に応じて、フィードバックのターゲットが入力にコピーされます。

異なる遅延の数やフィードバック設定を使用して新しいネットワークが設計されるたびに、preparets で入力データとターゲット データを適宜再構築できます。また、openloopcloseloopremovedelay、または 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);

Figure Neural Network Training (11-Feb-2022 22:21:17) contains an object of type uigridlayout.

view(net)

y = net(Xs,Xi,Ai);

次に、ネットワークを閉ループに変換し、ネットワークの閉ループ応答のシミュレーションを行うようにデータを再構築します。

net = closeloop(net);
view(net)

[Xs,Xi,Ai] = preparets(net,X,{},T);
y = net(Xs,Xi,Ai);

入力引数

すべて折りたたむ

入力ネットワーク。ネットワーク オブジェクトとして指定します。ネットワーク オブジェクトを作成するには、feedforwardnetnarxnet などを使用します。

非フィードバック入力データ (開ループ フィードバック出力に関連付けられていない入力)。cell 配列として指定します。

非フィードバック出力のターゲット データ。cell 配列として指定します。

フィードバックをもつ出力のターゲット データ。cell 配列として指定します。

誤差の重み。cell 配列として指定します。

出力引数

すべて折りたたむ

シフトされた入力。cell 配列として返されます。

初期の入力遅延状態。cell 配列として返されます。

初期の層の遅延状態。cell 配列として返されます。

シフトされたターゲット。cell 配列として返されます。

シフトされた誤差の重み。cell 配列として返されます。

Xi および Ai を適切に入力するために、X および T の前方から切り捨てられたタイム ステップの数。スカラーとして返されます。

バージョン履歴

R2010b で導入