2017-02-27 2 views
0

Ich beginne mit neuronalen Netzen, und ich würde gerne wissen, wie ich tun kann, mehrere Eingangslisten als ein Beispiel für das Lernen zu haben. In der Dokumentation präsentiert das Beispiel ist die folgende:Elman neuronales Netzwerk Lernen multiple-Serie-Serie

[X,T] = simpleseries_dataset; 
net = elmannet(1:2,10); 
[Xs,Xi,Ai,Ts] = preparets(net,X,T); 
net = train(net,Xs,Ts,Xi,Ai); 
view(net) 
Y = net(Xs,Xi,Ai); 
perf = perform(net,Ts,Y) 

wo Xs und Ts die Eingabe und das Ziel sind, wenn i Serval Serie haben, sollte ich das Lernen für jede Serie wiederholen? Danke

Antwort

0

Sie sollten Zellenarrays von Arrays verwenden. Wenn Sie beispielsweise zwei Serien haben: x1_1,x1_2,x1_3,... und x2_1,x2_2,x2_3,..., sollte das Zellenarray {[x1_1,x2_1],[x1_2,x2_2],[x1_3,x2_3],...} lauten. Wenn die Serien unterschiedliche Längen haben, sollte die kürzere Serie mit NaNs aufgefüllt werden. Die catsamples Funktion verwendet werden kann, um den Code zu vereinfachen:

[X,T] = simpleseries_dataset; 
x1= X(1:30); t1= T(1:30); % first subsequence 
x2= X(50:75); t2= T(50:75); % second subsequence 
Xm = catsamples(x1,x2,'pad'); % concatenate to the cell array 
Tm = catsamples(t1,t2,'pad'); % padding whith NaNs 
net = elmannet(1:2,10); 
[Xs,Xi,Ai,Ts] = preparets(net,Xm,Tm); 
net = train(net,Xs,Ts,Xi,Ai); 
Y = net(Xs,Xi,Ai); 
perf = perform(net,Ts,Y) 
+0

Danke für Ihre Antwort, in meinem Fall meine zwei Reihen der Form sind: (x1_1, y1_1), (x1_2, y1_2), (x1_3, y1_3) .... (x1_N, y1_N) und (x2_1, y2_1), (x2_2, y2_2), (x2_3, y2_3) .... (x2_N, y2_N) –

+0

In diesem Fall (die Serien sind gleich groß) , Sie müssen die Zellenfelder nicht auffüllen: 'Xm = catamples (x1, x2); Ym = csamples (y1, y2); ' – AVK

+0

Nein, tut mir leid, ich denke, dass ich meine Frage nicht gut erklärt habe, ich möchte mehrere Zeitreihen verwenden, es ist eine Form von mehreren Trajektorien, (x1, y1) sollte verwendet werden Vorhersagen (x'1, y'1) und (x2, y2) sollten verwendet werden, um (x'2, y'2) vorherzusagen –