Testautomatisierung möglich?

Haben Sie Fragen zur Bedienung bestimmter Features von MemBrain? Sind Sie nicht sicher, welches Häkchen was bewirkt? Möchten Sie wissen, ob eine bestimmte Funktionalität in MemBrain vorhanden ist oder nicht?

Dann stellen Sie Ihre Fragen hier!
McForecast
Posts: 8
Joined: Mon 4. Jun 2012, 13:23

Testautomatisierung möglich?

Post by McForecast » Tue 31. Jul 2012, 12:37

Hallo zusammen,

zunächst einmal ein herzliches Dankeschön an Herrn Jetter, für die Möglichkeit ‚MemBrain’ im Rahmen meines Studiums kostenfrei nutzen zu dürfen!

Bei der Anwendung von MemBrain ist nun die eine oder andere Frage aufgetaucht, über deren Beantwortung ich mich sehr freuen würde. Bitte entschuldigt, falls dieses ‚Problem’ nur durch meine eigene Unfähigkeit bedingt sein sollte!

Folgende Situation:

Ich habe ein Netz konstruiert, das mich mit einer von mir erstellten Datenbasis anhand des Lesson-Editors trainiert habe.

Erste Frage:
Lässt man das Training so lange laufen, bis es von allein beendet wird, oder bricht man den Trainingsvorgang einfach irgendwann ab?

Habe bisher nämlich immer irgendwann abgebrochen, da das Training sehr lange angedauert hat. Das Training basiert auf ca. 1700 Pattern.

Zweite Frage:
Wenn ich das Netz nach dem Training validieren möchte, wie muss ich vorgehen?

Bisher habe ich einfach den Lesson Editor wieder aufgerufen, den Validierungs-Datensatz geladen (ca. 350 Pattern) und quasi wieder das Training bzw. den Teacher gestartet.

Dritte Frage:
Wie kann ich im Anschluss die Ergebnisqualität genau testen?

Bisher habe ich wiederum den Lesson Editor aufgerufen, den Testdatenbestand geladen (ca. 450 Pattern) und einfach jedes Pattern separat als ‚Next Input’ angeklickt, das Ergebnis von Hand notiert und mit dem nächsten Input-Wert weiter gemacht.

Fragen vier und fünf:
Ist dieses Vorgehen überhaupt korrekt und ließe sich das Testen evtl. auch ‚automatisieren’, so dass beispielsweise ein CSV-File generiert wird, in dem dann immer Input-Wert und Netzergebnis gegenüberstehen?

Da ich gerade an meiner Bachelor Thesis schreibe, würde ich mich riesig über eure Hilfe und kreativen Gedanken freuen!

Tausend Dank,
Markus

User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Testautomatisierung möglich?

Post by Admin » Wed 1. Aug 2012, 06:57

Hallo,
gerade ist die Zeit extrem knapp, deshalb nur ganz kurz ein erster Link hier ins Forum:
viewtopic.php?f=13&t=232

Damit solltest Du Dich als erstes mal beschäftigen, das klärt evtl. auch schon die eine oder andere Frage. Werde versuchen später etwas mehr zu posten.

Viele Grüße
Thomas Jetter

McForecast
Posts: 8
Joined: Mon 4. Jun 2012, 13:23

Re: Testautomatisierung möglich?

Post by McForecast » Wed 1. Aug 2012, 09:01

Tausend Dank für die Hilfe!
Werde mir das Skript gleich mal näher ansehen!

Für die unnötige Mühe, die ich bereitet habe, bitte ich um Entschuldigung.
Hätte ich im Forum besser recherchiert, dann hätte ich das Skript sicherlich gefunden!

Trotzdem nochmals vielen Dank...

User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Testautomatisierung möglich?

Post by Admin » Wed 1. Aug 2012, 11:40

Admin wrote:Erste Frage:
Lässt man das Training so lange laufen, bis es von allein beendet wird, oder bricht man den Trainingsvorgang einfach irgendwann ab?
Von alleine wird das Training nur beendet, wenn man im verwendeten Teacher einen 'Target Net Error' einträgt und dieser beim Training unterschritten wird.
Generell macht es Sinn das Training dann zu beenden, wenn der Net Error bzgl. der Validierungsdaten nicht mehr sinkt.
MemBrain kann während des Trainings bereits den Net Error bzgl. der Validierungsdaten berechnen und anzeigen (das geschieht z.B. im beschriebenen Script).

Weiteres später, viele Grüße
Thomas Jetter

User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Testautomatisierung möglich?

Post by Admin » Wed 1. Aug 2012, 12:27

McForecast wrote:Zweite Frage:
Wenn ich das Netz nach dem Training validieren möchte, wie muss ich vorgehen?

Bisher habe ich einfach den Lesson Editor wieder aufgerufen, den Validierungs-Datensatz geladen (ca. 350 Pattern) und quasi wieder das Training bzw. den Teacher gestartet.
Das ist deshalb die falsche Herangehensweise, weil dadurch mit den Validierungsdaten trainiert wird. Genau das möchte man vermeiden: Man möchte gerade sehen, wie das Netz auf UNTRAINIERTE Daten reagiert.
Um die Ergebnisse bzgl. der Validierung zu erhalten muss man den Validierungssatze laden und dann 'Think On Lesson' im Lesson Editor wählen. Der Net Error ist dann der bzgl. der Validierungsdaten. Diese Validierung kann man auch aufzeichnen und z.B. als CSV exportieren.
Genau das geschieht im beschriebenen Script am Ende.

Die weiteren Fragen sollten damit auch beantwortet sein. Ist damit die Sache klar geworden? Bei weiteren Fragen einfach wieder melden.

Viele Grüße
Thomas Jetter

McForecast
Posts: 8
Joined: Mon 4. Jun 2012, 13:23

Re: Testautomatisierung möglich?

Post by McForecast » Thu 2. Aug 2012, 17:45

Zuerst einmal vielen Dank für die hilfreichen Informationen!
Da habe ich in der Tat einiges falsch gemacht.

Da jedoch auch die Ergebnisse mit dem Skript äußerst miserabel ausfallen, habe ich die Details meines Vorhabens inkl. aller Screenshots aus MemBrain, Excel etc. mit Erläuterungen in einem Word-Dokument zusammengefasst. Vielleicht haben Sie ja auf Basis dieser Informationen noch den ein oder anderen Tipp für mich parat! Dürfte ich diese Datei (gerne auch als PDF) evtl. ins Forum hochladen? Aktuell ist dies leider nicht möglich. :(

Wahrscheinlich oute ich mich anhand dieser Informationen als totaler DAU.
Sollte dass so sein, bitte ich um Nachsicht. Bin vollkommen jungfräulich auf diesem Gebiet unterwegs!!!

Herzlichen Dank und viele Grüße,
Markus

User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Testautomatisierung möglich?

Post by Admin » Fri 3. Aug 2012, 07:13

Jetzt sollte es mit dem Anhang klappen... Wenn es geht (wenn nicht vertraulich) dann am Besten auch das Netz und die Lessons anhängen.

Viele Grüße
Thomas Jetter

McForecast
Posts: 8
Joined: Mon 4. Jun 2012, 13:23

Re: Testautomatisierung möglich?

Post by McForecast » Fri 3. Aug 2012, 09:47

Super! Vielen Dank...
Anbei also mein "Versuchsaufbau" mit (Fehler-)Beschreibung...
Testaufbau.doc
(312.5 KiB) Downloaded 334 times
Elman.mbn
(10.27 KiB) Downloaded 294 times
MackeyGlass.mbn
(7.46 KiB) Downloaded 281 times
...die Lessons folgen in der nächsten Nachricht! :D

McForecast
Posts: 8
Joined: Mon 4. Jun 2012, 13:23

Re: Testautomatisierung möglich?

Post by McForecast » Fri 3. Aug 2012, 09:49

Hier die Lessons...
Train.mbl
(85.27 KiB) Downloaded 305 times
Validate.mbl
(14.92 KiB) Downloaded 304 times
Vielen Dank für die Mühe!!!!!

Grüße,
Markus

User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Testautomatisierung möglich?

Post by Admin » Fri 3. Aug 2012, 23:04

Hallo,

das Hauptproblem bei Deinem Netz lag zunächst einmal in der fehlenden Normalisierungseinstellung. Das ist die Anpassung der benutzerdefinierten Wertebereiche der Input- und Outputneuronen an die verwendeten Daten.
Du merkst dies daran, dass wenn Du Dein Netz in MemBrain lädtst und z.B. das Training startest, Du eine Warnung erhältst, dass die Daten der Lesson außerhalb der Normalisierungsgrenzen der Neuronen liegen.
MemBrain beinhaltet einen 'Normalization Wizard', den man dazu verwenden kann, die Normalisierungsgrenzen zu bestimmen. Das geht aber auch händisch solange die Anzahl Neuronen, die man einstellen muss, überschaubar bleibt (was bei Deinen vier Inputs und einem Output natürlich der Fall ist).

Anschließend habe ich Dein Netz auf ein echtes Elman reduziert: Ich habe alle Round-Robin Links entfernt, die Kontextneuronen über Links mit festem Gewicht = 1 verbunden, jedem Kontextneuron nur einen Input gegeben, das Netz auf eine Hiddenschicht reduziert und auch nur von dieser Hiddenschicht die Kontextneuronen versorgt. Die 'Activation Thresholds' der Kontextneuronen habe ich auf 0 gesetzt und festgenagelt ('Lock'), so dass der Teacher sie nicht mehr verändern kann. Das ist klassiches Elman und mehr Schichten bzw. Links machen wahrscheinlich auch keinen Sinn. Außerdem habe ich für die Hiddenschicht 'Logistic' gewählt, das bringt meist bessere Ergebnisse.

Das Ergebnis sieht zwar nicht sehr schön aus, aber doch viel mehr nach dem, was Du in Deiner Arbeit beschreiben möchtest, denke ich. Dass die Ergebnisse nicht gut sind liegt daran, dass aus den Inputs, die Du anlegst, die zukünftigen Werte nun einmal nicht sehr gut abgeleitet werden können. Wahrsagen kann ein NN eben auch nicht, aber nach Deinem Dokument ist Dir das ja bewusst und Du suchst nicht den 'heiligen Gral' der Vorhersage von Börsenkursen. Meiner Meinung nach eine weise Erkenntnis ;-)

Hoffe, geholfen zu haben, viele Grüße und viel Erfolg!
Attachments
Elman_TJ.mbn
Überarbeitetes Netz
(4.4 KiB) Downloaded 271 times
Thomas Jetter

Post Reply