Exportieren des Net Errors

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!
Post Reply
Toddster
Posts: 15
Joined: Thu 17. Nov 2011, 17:49

Exportieren des Net Errors

Post by Toddster »

Hallo Zusammen, hallo Herr Jetter,

ist es möglich den Net Error Wert der in Membrain errechnet wird zu exportieren in eine csv Datei? Oder hilft da nur der Umweg, die Antworten des Netzes auf die vorgegebenen Muster zu exportieren und dann mit den Soll-Werten zu vergleichen?
Mein Skript durchläuft nämlich eine Vielzahl von Netzen und da wäre es irgendwie praktisch im Nachhinein noch einmal den Net Error anzuschaun, ohne ihn neu errechnen zu müssen.


Viele Grüße,

Toddster
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: Exportieren des Net Errors

Post by TJetter »

Hallo,

der Net Error kann während des Trainings durch eine Skript-Funktion 'GetNetError()' gelesen werden und damit könnte man ihn natürlich auch in eine Datei exportieren, durch Nutzung der file Klasse, die die Skriptsprache unterstützt (siehe MemBrain Hilfe, 'Abschnitt Scripting - Command Reference - Arbitrary File Access'.
Eine automatische Funktion gibt es dafür in MemBrain nicht.
Soll der Net Error als Verlauf in der Datei erscheinen oder geht es nur um den letzten Wert nach Ende des Trainings?

Viele Grüße
Thomas Jetter
Toddster
Posts: 15
Joined: Thu 17. Nov 2011, 17:49

Re: Exportieren des Net Errors

Post by Toddster »

Hallo,

vielen Dank für die Antwort. Es geht mir nur um den letzten Wert am Ende des Trainings. Ich werds mal versuchen damit.

Viele Grüße
Toddster
Posts: 15
Joined: Thu 17. Nov 2011, 17:49

Re: Exportieren des Net Errors

Post by Toddster »

Hallo,

also es klappt alles soweit, allerdings schaffe ich es nur Strings in eine .csv Datei zu schreiben. Sobald ich Zahlenwerte, wie Integer oder double schreiben möchte, erscheinen irgendwelche Sonderzeichen in meiner .csv Datei. Im Moment behelfe ich mir so, dass ich die Zahlenwerte in einen String umwandle und das funktioniert dann.
Ich würde mir diesen Schritt aber gerne sparen. Wo liegt mein Fehler?

Viele Grüße
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: Exportieren des Net Errors

Post by TJetter »

Hallo,
Toddster wrote:Ich würde mir diesen Schritt aber gerne sparen. Wo liegt mein Fehler?
Es liegt gar kein Fehler vor, das ist genau das Vorgehen, dass umgesetzt werden muss (Umwandlung in String).
Wenn man einen double oder int in die Datei schreibt, dann landet dieser auch genau so (also in binärem Format) in der Datei. Genau das ist der Sinn des binären Schreibens in die Datei. Solch eine Datei kann man natürlich in einem Texteditor nicht sinnvoll darstellen, man müsste sie genauso binär wieder auslesen.
Eine CSV-Datei ist eine Textdatei. Deshalb macht hier auch nur das Schreiben voin Strings Sinn.

Viele Grüße
Thomas Jetter
Toddster
Posts: 15
Joined: Thu 17. Nov 2011, 17:49

Re: Exportieren des Net Errors

Post by Toddster »

Hallo,

vielen Dank für die Antwort. Ich habe noch eine Frage zum Net Error. Und zwar ist mir aufgefallen, dass der Net Error, welcher am Ende eines Trainingsvorgangs angezeigt wird nicht immer mit dem identisch ist, welchen ich angezeigt bekomme, nachdem ich die Funktion "EvaluateNetError" genutzt habe. Was ist die Ursache dafür?

Viele Grüße
User avatar
TJetter
Posts: 346
Joined: Sat 13. Oct 2012, 12:04

Re: Exportieren des Net Errors

Post by TJetter »

Toddster wrote:Was ist die Ursache dafür?
Um das zu verstehen, muss man wissen, was 'Evaluate Net Error' macht:
Die Funktion legt alle Pattern aus der momentanen 'Net Error Lesson' an das Netz an, berechnet für jedes dieser Pattern den Netz-Output und zusammen mit den jeweiligen Sollwerten den Net Error.

Was nun Abweichungen zum angezeigten Net Error nach dem Training verursachen kann:
1.) Wenn ein zeitvariantes Netz verwendet wird, dann wird generell jeder Berechnungsdurchlauf im Ergebnis potentiell anders sein, als der vorherige, da das Netz ja auch interne Zustände in die Berechnung der nächsten Schritte mit einbezieht.
2.) Wenn die 'Net Error Lesson' gleich der 'Training Lesson' ist (siehe Auswahl im Lesson Editor) und im verwendeten Teacher die Option 'Use On-The-Fly Net Error Calculation' angehakt ist, dann nimmt der Teacher während des Trainings eine vereinfachende 'Abkürzung' zur Berechnung des Net Errors: Der Net Error wird dann während des eigentlichen Trainingsdurchlaufs bereits als Summe über alle Pattern berechnet. Es wird also nicht anschließend an jeden Lesson-Durchlauf nochmal ein separater Durchlauf zur Ermittlung des Net Errors durchgeführt. Das hat zur Folge, dass der Net Error nicht ganz der Wahrheit entspricht, weil sich das Netz während der Aufsummierung ja durch den Teacher stetig ändert. Dafür ist es schneller.

Ich hoffe, damit lässt sich die Abweichung im vorliegenden Fall erklären?

Viele Grüße
Thomas Jetter
Post Reply