Probleme eine Progamm-Noobs ;)

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
signum
Posts: 2
Joined: Thu 9. Jun 2011, 14:05

Probleme eine Progamm-Noobs ;)

Post by signum »

Hallo,

ich habe zwar schon früher mit NN gearbeitet, benutze aber Membrain erst seit kurzem.
Vielleicht kann mir jemand helfen und, sozusagen für Programm-Noobs, einfache Erklärungen geben ;)

Ich habe über 100 Inputvariablen, ein paar dutzend Hiddenunits und 1 Outputvariable.
Problem A: Synchronisation - Wenn ich Daten einlesen möchte und diese mit dem Netz synchronisieren wird entweder a) die Ordnung im Netz zerstört oder b) die Daten verstauscht. Ich nehme an, das liegt an der Nicht-Übereinstimmung der Variablenreihenfolgen zwischen Netz und Datensatz. Meine Frage: Wenn ich eine CSV zum Training vorbereite, muss ich die Variablen immer nach der Ordnung im Netz anordnen oder gibt es eine alternative Synchronisation?
Problem B: Testen des Netzes - Wenn ich es richtig verstanden habe, kann man im Lesson Editor unter Import current Lesson Inputs (raw csv) Testdaten einlesen. Da kommt immer die Meldung: "There were less input patterns in the csv than there are output patterns in the lesson, thus empty input patterns have been added to the lesson." Naja, ich habe >100 inputs und nur 1 output, da finde ich die Meldung irgendwie seltsam. Was hat sie denn nun zu bedeuten?
Problem C: Auslesen von Daten - Nachdem ich das Netz mit einem Datensatz trainiert habe und es implizite Muster gelernt haben sollte, möchte ich dem Netz ein "unbekanntes" Inputmuster zeigen und den "zu erwartenden" Output (also vom Netz vorhergesagt) ermitteln / auslesen. Müssen die Testdaten auch eine (leere) Spalte für den Output enthalten? Kann ich mir die berechneten Outputs als CSV ausgeben lassen, wenn ja wie?

Die assoziierten Themen im Tutorial bzw. in der F1-Hilfe haben mir leider nicht wesentlich geholfen und auch das Bsp. Skript bringt nur die Meldung "Abortion due to command execution error. Details: Unable to import raw csv lesson file V10 Val.csv"

Ich würde mich sehr über Anregungen und Hilfe freuen.
VIELEN DANK schon mal im Voraus.

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

Re: Probleme eine Progamm-Noobs ;)

Post by Admin »

Hallo,
signum wrote:Problem A: Synchronisation - Wenn ich Daten einlesen möchte und diese mit dem Netz synchronisieren wird entweder a) die Ordnung im Netz zerstört oder b) die Daten verstauscht. Ich nehme an, das liegt an der Nicht-Übereinstimmung der Variablenreihenfolgen zwischen Netz und Datensatz. Meine Frage: Wenn ich eine CSV zum Training vorbereite, muss ich die Variablen immer nach der Ordnung im Netz anordnen oder gibt es eine alternative Synchronisation?
MemBrain benötigt zur Synchronisation zwischen Daten und Netz die Eindeutigkeit und Übereinstimmung der Namen der Input- und Output Neuronen (case sensitive).
Am Einfachsten geht man dabei so vor:
1.) Namen im Netz so definieren wie gewünscht.
2.) Im Lesson Editor 'Names From Net' klicken.
3.) Im Lesson Editor im Menü 'Raw CSV Files' den Punkt 'Export Current Lesson (Raw CSV)' wählen. Den Vorschlag zur Anzahl der Spalten pro Zeile einfach mit OK übernehmen.

Die entstandene CSV Datei enthält nun in der ersten Zeile die korrekten Namen. Diese Zeile sollte in alle zu importierenden CSV Dateien als erste Zeile kopiert werden.

Die Reihenfolge der Spalten spielt beim Import tatsächlich keine Rolle, MemBrain richtet sich bei der Zuordnung einzig nach Namen.
signum wrote:Problem B: Testen des Netzes - Wenn ich es richtig verstanden habe, kann man im Lesson Editor unter Import current Lesson Inputs (raw csv) Testdaten einlesen. Da kommt immer die Meldung: "There were less input patterns in the csv than there are output patterns in the lesson, thus empty input patterns have been added to the lesson.
MemBrain richtet sich beim Import nicht nach den Zeilenumbrüchen im CSV. Das darf es nicht tun, da es auch logisch zusammengehörige Zeilen einlesen können muss, die physikalisch im CSV umgebrochen sind.
Deshalb richtet sich MemBrain beim Import von Roh-CSV Dateien immer nach der Anzahl Inputs und Outputs, die im Lesson-Editor eingestellt sind. Es betrachtet diese als Vorgabe für die Anzahl Input- und Outputspalten und teilt die CSV 'Datenwurst' in abwechselnde Pakete INput und Outputs auf. Wenn das nicht aufgeht, füllt MemBrain auf und gibt die entsprechende Meldung aus.
Vorgehensweise ist also:
1.) Entweder Anzahl Inputs und Outputs manuell im Lesson Editor einstellen oder 'Names From Net' verwenden.
2.) Roh-CSV Datei importieren, wobei die erste Zeile die (zum Netz passenden!) Spaltennamen enthalten muss

Solange man die Daten nicht manuell editieren muss, verwendet man am Besten das MemBrain interne Lesson-Format zum Speichern und Laden. Dann muss man sich übere Anzahl Spalten und die Namen keine Gedanken machen, die Datei enthält alls ddiese Informationen. Wenn man die Daten lesbar braucht, kann man sie jederzeit als CSV exportieren.

Ein Zwischending ist das MemBrain 'Sectioned CSV File' Format, das ebenfalls zur Verfügung steht: Es verbindet das lesbare Format des CSV Files mit den Zusatzinhalten, die für die Verwaltung der Namen und Anzahl der Spalten benötigt wird.
signum wrote:roblem C: Auslesen von Daten - Nachdem ich das Netz mit einem Datensatz trainiert habe und es implizite Muster gelernt haben sollte, möchte ich dem Netz ein "unbekanntes" Inputmuster zeigen und den "zu erwartenden" Output (also vom Netz vorhergesagt) ermitteln / auslesen. Müssen die Testdaten auch eine (leere) Spalte für den Output enthalten?
Nein, dazu kann man die Option 'Import Current Lesson Inputs' verwenden. Diese Option geht davon aus, dass das CSV File nur Inputs enthält.
signum wrote:Kann ich mir die berechneten Outputs als CSV ausgeben lassen, wenn ja wie?
Ja, man kann im Lesson Editor einstellen, dass bei jedem ThinkStep die Eingangs- und Ausgangsdaten in einem neuen Pattern in einer weiteren Lesson aufgezeichnet werden, die man dann natürlich auch in CSV exportieren kann. Dazu verwendet man die Option 'Record one pattern every...' des Lesson Editors.

Wenn man solche Dinge öfters macht, ist man allerdings mit einem kleinen Script besser beraten, das ist schneller und weniger fehlerträchtig.

Viele Grüße und viel Erfolg!
Thomas Jetter
signum
Posts: 2
Joined: Thu 9. Jun 2011, 14:05

Re: Probleme eine Progamm-Noobs ;)

Post by signum »

=) recht vielen Dank für die schnelle und patente Hilfe
Post Reply