Berechnungen zu einer Simulation mittels NN

Sie haben ein bestimmtes Projekt zu bearbeiten und wissen nicht, wie Sie an die Aufgabe heran gehen sollen? Sie sind sich nicht sicher, ob Ihr Netzentwurf zu Ihrem Problem passt oder ob es da Optimierungsmöglichkeiten gibt? Ist es überhaupt sinnvoll an Ihre Daten mit einem NN basierten Ansatz heranzugehen? Ist MemBrain das richtige Werkzeug für Ihr Problem und Ihre Infrastruktur?

Hier ist der richtige Platz für diese Art von Fragen.
DanieldB
Posts: 19
Joined: Wed 27. Jan 2010, 12:17

Berechnungen zu einer Simulation mittels NN

Post by DanieldB »

Hallo zusammen,

ich soll für meine Diplomarbeit ein neuronales Netz entwickeln, welches zur Vorhersage von Datenreihen führen soll. Dabei handelt es sich um einen Input und 61 Output Werte. Ich habe mein Netz nun wie folgt zusammengestellt. 1x Input Neuron dieses verlinkt mit einer Hiddenschicht von 20 Neuronen diese nochmals aufgeteilt auf 0 Hidden-Neuronen und diese schließlich mit den 61 Output-Neuronen verlinkt. Jedes Neuron ist mit jedem Neuron aus der über ihm liegenden Schicht verbunden. (liegt da evtl. schon der Fehler?). Ich habe es geschafft eine Trainingsdatei zu erstellen und zu trainieren, allerdings kommen nicht einmal ansatzweise die richtigen Ergebnisse heraus. Bitte helft mir. Ich verzweifle hier sonsts noch.

Vielen Dank und liebe Grüße
Daniel
Attachments
Membrain.rar
mein netz
(5.73 KiB) Downloaded 682 times
DanieldB
Posts: 19
Joined: Wed 27. Jan 2010, 12:17

Re: Berechnungen zu einer Simulation mittels NN

Post by DanieldB »

So ich bin nochmal da,

ich hab jetzt einigermaßen gescheite Werte. Leider habe ich nur sehr wenige Datensätze zur Verfügung (6 an der Zahl) und einen 7. hab ich mir mal zum testen zur Seite gelegt. Frage wie kann ich dem Netz jetzt einen Input geben so dass es dann selbstständig die 61 Outputs "ausspuckt"!

lg
und nochmals Danke
Daniel
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Berechnungen zu einer Simulation mittels NN

Post by Admin »

Hallo Daniel,
DanieldB wrote:Leider habe ich nur sehr wenige Datensätze zur Verfügung (6 an der Zahl) und einen 7. hab ich mir mal zum testen zur Seite gelegt
Das ist natürlich ganz ganz wenig... Da kannst Du nicht viel erwarten. Konnte mir Deinen Anhang bis jetzt noch nicht ansehen, vielleicht schaffe ich es heute abend noch...
DanieldB wrote:Frage wie kann ich dem Netz jetzt einen Input geben so dass es dann selbstständig die 61 Outputs "ausspuckt"!
Wenn Du das händisch machen willst (und bei einem Input ist das ja durchaus noch machbar ;) ) dann hast Du die folgenden Optionen:
1.) Input-neuron doppelklicken und die 'Activation' händisch editieren. Danach den 'Perform One Think Step' button in der Toolbar klicken.
oder
2.) Lesson-Editor öffnen, Input-Daten händisch eingeben oder aus CSV importieren. Dann auf dem Lesson-Editor 'Think On Input' klicken, um den Netzoutput des momentan angezeigten Musters zu berechnen oder 'Think On Next Input' klicken, um durch alle Muster im lesson-Editor durchzuwandern.

Die Outputs kannst Du entweder direkt am Bildschirm ablesen oder aber Du zeichnest die Ergebnisse im Lesson-Editor in einer neuen Lesson auf. Letzteres macht man am besten über ein kleines Skript: In der MemBrain Hilfe (F1 drücken) gibt es einen Abschnitt 'Validating Your Net' dazu.

Viele Grüße
Thomas Jetter
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Berechnungen zu einer Simulation mittels NN

Post by Admin »

DanieldB wrote:ich hab jetzt einigermaßen gescheite Werte
Konnte jetzt gerade mal reinschauen: Also wenn man die Warnung bzgl. Normalisierung zu Beginn des Trainings ernst nimmt und dementsprechend sinnvolle Normalisierungsgrenzen festlegt, dann erlernt das Netz die vorgegebenen Muster ziemlich perfekt. Was aber auch nicht wirklich verwundert: Es sind nur drei verschiedene Muster.

Kannst Du zum Ziel/Hintergrund Deiner Arbeit ein bisschen mehr sagen? Dann kann ich Dir vielleicht helfen einzuschätzen, was machbar ist und was nicht bzw. was Du brauchst, um Dein Ziel zu erreichen.
Zentraler Punkt hierbei: Wieso hast Du nur 7 Datensätze bzw. viel wichtiger: Wirst Du bald mehr Datensätze haben?

Viele Grüße und einen schönen Abend noch
Thomas Jetter
DanieldB
Posts: 19
Joined: Wed 27. Jan 2010, 12:17

Re: Berechnungen zu einer Simulation mittels NN

Post by DanieldB »

Hi Thomas, erstmal Danke für deine Hilfe.

Ich versuche mal etwas mehr von meinem Projekt Preis zugeben. Den Rahmen meines Projektes stellt ein Schiffsimulator dar. In meinem Netzt geht es um zwei Schiffe, die sich entweder begegnen oder überholen. Hierfür gibt es mehrere experimentell erworbene Datensätze. Ziel des Netzes soll sein über diese Datensätze hinaus auch Entscheidungen für das Verhalten des zu steuernde Schiffs vorher zusagen und im weiteren Ablauf der Software zu nutzen. Ich hoffe, dass das jetzt einigermaßen verständlich war, sonst frag nochmal nach.

Mir ist aufgefallen, dass ich den Aspekt begegnen / überholen im ersten Anlauf total vergessen habe. Ich habe nun einfach ein zweites Input-Neuron hinzugenommen um den Aspekt kommt mir das Schiff entgegen oder überholt es mich mit einzubeziehen. Ich hoffe dass ich das so machen kann. Allerdings liegt mein Net-Error nun bei 22,5xxx (bei nur einem Input-Neuron lag er bei 0,04xxx). Was sagt dieser eigentlich genau aus und was wäre ein akzeptabler Fehler? Was kann ich machen um diesen noch weiter zu drücken?

lg und vielen Dank
Daniel
Attachments
Membrain.rar
2. Versuch
(27.62 KiB) Downloaded 670 times
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Berechnungen zu einer Simulation mittels NN

Post by Admin »

DanieldB wrote:Was sagt dieser eigentlich genau aus und was wäre ein akzeptabler Fehler? Was kann ich machen um diesen noch weiter zu drücken?
Der Net Error ist die Summe aller quadrierten, normalisierten Abweichungen über alle Pattern der Lesson und über alle Ausgangsneuronen.
Insofern steigt der Net Error mit der Anzahl der Pattern in der Lesson und der Anzahl der Ausgangsneuronen im Netz.

Dies ist etwas, was im nächsten MemBrain Release (geplant in den nächsten Wochen) geändert wird: Der Net Error wird dann immer automatisch durch die Anzahl der Output-Neuronen und die Anzahl der Pattern in der Lesson geteilt, so dass er vergleichbar bleibt, auch wenn sich die lesson verändert. Er stellt dann also einen Wert dar, der den Mean Square Error pro Ausgangsneuron angibt, unabhängig von der Anzahl der Trainings- bzw. Validierungsmuster.

Trotzdem lässt sich nicht pauschal sagen, was ein guter und was ein schlechter Net Error ist, es sollte immer nur sein Verlauf und seine relative Änderung zwischen verschiedenen Netzvarianten beim selben Problem betrachtet werden.

Ob ein Netz gut ist oder nicht, ist sehr stark Problemabhängig: Nur Du selbst kannst sagen, ob Dein Netz für Dein Problem gut genug ist oder nicht. Und zwar sollte solch eine Betrachtung immer auf einem Validierungsdatensatz basieren, der nicht Teil des Trainingsdatensatzes ist. das Netz soll ja schließlich generalisieren und nicht nur 'auswendig lernen'.

Bei Dir ist nun der Net Error stark angestiegen, als Du ein weiteres Eingangsneuron und neue Pattern hinzugenommen hast. Statistisch hätte er bei gleicher Netzqualität nur linear mit der Anzahl der Pattern steigen sollen. (siehe Beschreibung oben).
Wenn Dein Netz die daten nicht gut erlernen kann, dann liegt das daran, dass sie aus Sicht des Netzes widersprüchlich sind: Das Netz kann keine Regeln finden, die es ihm erlauben von den Inputs auf die Outputs zu schließen. Ich vermute, dass das an den neu hinzugefügten Datensätzen liegt: Diese scheinen im Widerspruch zu den vorigen zu stehen.

Muss nun leider erst mal Schluss machen, ich hoffe, das hat etwas geholfen...

Viele Grüße
Thomas Jetter
DanieldB
Posts: 19
Joined: Wed 27. Jan 2010, 12:17

Re: Berechnungen zu einer Simulation mittels NN

Post by DanieldB »

Hi Thomas,

also ich konnte den Fehler nun doch noch etwas drücken. Allerdings bemekte ich etwas sehr merkwürdiges:
nach ca 51000 Übungen lag der Fehler bei ca 3,4 Von da an nahm der Fehler auf einmal langsam aber beständig wieder zu, so dass er dann bei ca 66000 Übungen bei 4,3 und schließlich bei 77000 bei 5,1 lag. Ich habe dann das training abgebrochen.
Woran könnte dies liegen?

hab gerade festgestllt, dass leider nicht alle lessons mit einbezogen wurden. Habe jetzt das ganze nochmal mit dem BP-Teacher gestartet und warte mal ab was rauskommt. wieviele Durchläufe sollte man eigenltich abwarten? Ich warte derzeit immer ca 100k ab, bevor ich abbreche.
Vielen Dank schon einmal im Voraus
Gruß
Daniel
DanieldB
Posts: 19
Joined: Wed 27. Jan 2010, 12:17

Re: Berechnungen zu einer Simulation mittels NN

Post by DanieldB »

ich melde mich direkt noch einmal.
Ich habe jetzt das Netz noch einmal neu aufgebaut und konnte somit den Netzfehler auf ca. 7 drücken. So dachte ich zumind. denn Millesec. nachdem die 7er Marke geknackt war sprang der Fehler auf einmal auf 14 wie kann das sein?
Vielen Dank
Daniel
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Berechnungen zu einer Simulation mittels NN

Post by Admin »

DanieldB wrote:nachdem die 7er Marke geknackt war sprang der Fehler auf einmal auf 14 wie kann das sein?
Beim Training eines NN kann es immer wieder mal passieren, dass ein Minimum verlassen wird. Das kann sich positiv auswirken, wenn es ein lokales Minimum war und ein noch besseres Minimum gefunden wird. Es kann aber auch umgekehrt laufen, wenn kein besseres Minimum eingenommen wird.
Da hilft nur viel Probieren.

Um was handelt es ich denn bei Deinen ganzen Ausgangsneuronen? Ich frage mich ja schon, welche 61 sinnvollen Werte man aus nur zwei Eingangswerten ableiten könnte...
Kannst Du noch einen kleinen Tipp geben, um was es da geht? Sind das Verhaltensparameter? Und woher bekommst Du die Lernvorgaben, kommen die aus einem Experiment oder so?

Viele Grüße
Thomas Jetter
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Berechnungen zu einer Simulation mittels NN

Post by Admin »

Seit gestern gibt es übrigens eine neue MemBrain Version (03.06.00.00).

Diese normalisiert den Net Error jetzt wie weiter oben beschrieben. Ich empfehle Dir dringend, diese neue Version zu verwenden, das macht Deine Netze einfacher vergleichbar.
Initial wirst Du natürlich mit dieser Version einen kleineren Net Error feststellen als bisher (da er jetzt immer auf EIN Ausgangsneuron und EIN Pattern normalisiert wird).
Dafür ist er unabhängig inbesondere von der Größe der verwendeten Lesson.

Viele Grüße
Thomas Jetter
Post Reply