WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Neuronales Netzwerk trainieren

 

zesir1
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 22.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2011, 15:26     Titel: Neuronales Netzwerk trainieren
  Antworten mit Zitat      
Hallo zusammen, ich möchte folgendes neuronales Netz trainieren:
Code:

input  = newTB(1).data;
output = dataTB.output(1,1);
net1 = newcf(input,output,[2000,1]);
 

input ist ein Vektor der Grösse <1x2000 double>
output ist eine Zahl

Das NN sollte 2000 Neuronen im Input-Layer aufweisen und direkt (ohne Hidden Layer) auf den Outputlayer führen, der aus nur einem Neuron bestehen soll. Damit ich am Schluss 2000 Gewichtungen habe...

Wenn ich nun das erstellte NN trainieren will:
Code:

for q = 2:length(newTB)
    input  = newTB(q).data;
    output = dataTB.output(q,1);
    net1 = train(net1,input,output);
end
 


Wobei hier die Dimensionen von input und output die selben sind wie beim erstellen des NN. Nun spuckt Matlab folgende Fehlermeldung aus:
Code:

??? Error using ==> network.train at 146
Targets are incorrectly sized for network.
Matrix must have 2000 columns.
 


Nun bin ich etwas verwirrt! Ich habe ja keine 2000 Werte für den Output-Vektor.

Kann mir jemand weiterhelfen?

Besten Dank und Grüsse
zesir
_________________

Autoritätsdusel ist der grösste Feind der Wahrheit. (A. Einstein)
Private Nachricht senden Benutzer-Profile anzeigen


poloh85
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 22.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2011, 17:19     Titel:
  Antworten mit Zitat      
Hi!

Ich bin nicht so erfahren mit der NN Toolbox, beschäftige mich gerade aber intensiv mit NN und werde versuchen dir zu helfen.

Du willst, dass dein Netz nur einen Ausgang hat und nur einen Layer oder?
Aber es soll 2000 Neuronen beherbergen. Dies schließt sich aber gegenseitig aus, da der einzige Layer den du hast zwangsläufig 2000 Ausgänge hat (jedes Neuron stellt einen Ausgang dar).

Erklär mir mal was das Netz machen soll, dann kann ich dir vielleicht beim Netzaufbau helfen.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
zesir1
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 22.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2011, 19:26     Titel:
  Antworten mit Zitat      
Hallo Poloh85,
danke das du dich meinem Problem annimmst.
Also es geht um Batterien von Elektrofahrzeugen. Während dem Betrieb wird jede Sekunde einem Status zugeordnet (Strom, Temperatur und Entladetiefe). Es existieren 2000 Status. Zudem messe ich den Kapazitätsverlust der Batterie in dieser Zeit. Ziel ist nun herauszufinden welcher Status sich wie auf die Lebensdauer der Batterie auswirkt. Aus diesem Grund möchte ich einen Input-Layer mit 2000 Neuronen die direkt mit dem Output Layer verbunden ist, der nur noch ein Neuron besitzt, nämlich den Kapazitätsverlust. So hätte ich zum einen mit den Gewichtungen den Einfluss der jeweiligen Status und zum anderen könnte ich ein bestimmtes Fahrprofil einlesen und voraussagen wie viel Zyklen diese Batterie machen wird.

Als Neuling für neuronale Netze habe ich mir das vielleicht etwas zu leicht vorgestellt!? Kannst du mir weiterhelfen?

Danke und beste Grüsse
zesir

P.S.: Bin ab Do für eine Woche in den Ferien, nicht das du in dieser Zeit vergeblich auf eine Antwort von mir wartest.
_________________

Autoritätsdusel ist der grösste Feind der Wahrheit. (A. Einstein)
Private Nachricht senden Benutzer-Profile anzeigen
 
poloh85
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 22.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.07.2011, 12:27     Titel:
  Antworten mit Zitat      
Sorry, dass ich jetzt erst zurück schreibe!

Also, so wie ich das jetzt verstehe willst du im Grunde aus den Statuswerten eine Funktion
\frac{dC}{dt} = f(I,T,Q)
erhalten.

Ich glaube nicht, dass du von den Gewichten auf den Einfluss der einzelnen Statuswerte auf den Kapazitätsverlust schliessen kannst, da im Eingangslayer auch Gewichte und Schwellwerte definiert sind, die sich nicht gleichmäßig ändern. Im Grunde hast du ja den Einfluß des Status durch die Größe \frac{dC}{dt} gegeben. Je negativer der Wert, desto größer der Einfluss und umgekehrt.

Deshalb würde ich ein NN mit 3 Eingängen (I,T,Q) und einem Ausgang(\frac{dC}{dt}) aufstellen. Dieses Netz würde ich mit den 2000 Statuswerten trainieren. Daraus erhältst du dann die oben genannte Funktion, die das NN approximiert. Um nun das Fahrprofil zu simulieren, präsentierst du dem NN die Statuswerte in der gewünschten Reihenfolge und summierst dabei die einzelnen Ausgänge auf um den Kapazitätsverlust für das Fahrprofil zu erhalten.

Ich hoffe, ich habe das richtig verstanden und konnte dir helfen.
Falls nicht, kannst du gerne nochmals nachfragen.
Außerdem empfehle ich dir, die GUI zur NN Toolbox anzuschauen und mit dieser erst einmal zu arbeiten. Da verstehst du wahrscheinlich einfacher welche Eingabewerte das NN zum trainieren braucht, welche Form diese haben müssen und kannst dir relativ schnell ein NN aufbauen. Anschliessend kannst du dann wieder auf die Codeebene zurückkehren.

MfG PoloH85
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.