Bilden einer "Sublesson"

Dieses Forum beschäftigt sich mit allen Fragen, Kommentaren und Anregungen zu MemBrain Skripten. Auch der Austausch von Skripten zwischen MemBrain Benutzern soll hiermit gefördert werden.
Wenn Sie ein interessantes Skript haben, das Sie anderen MemBrain Benutzern zur Verfügung stellen wollen, dann Erstellen Sie dafür jeweils bitte ein neues Thema in diesem Forum. Der Titel des Themas sollte es anderen Benutzern erlauben möglichst schnell zu erfassen, wozu Ihr Skript dient.
Post Reply
Toddster
Posts: 15
Joined: Thu 17. Nov 2011, 17:49

Bilden einer "Sublesson"

Post by Toddster »

Hallo Zusammen,

ich habe eine theoretische Frage. Ich möchte ein NN mit einer Lesson trainieren lassen. Anschließend möchte ich dass das Netz nur die Pattern, in welchen z.B. das Inputneuron Nr.5 den Wert 1 hat, auswählt und mir einen Output für diese Pattern gibt und den aufzeichnet. Als nächsten Schritt möchte ich bei den vorher ausgewählten Pattern mit dem Wert 1 für Inputneuron Nr.5 den Wert von 1 auf 0 setzen und mir wieder einen Output geben lassen für diese Muster, welcher auch aufgezeichnet werden soll.
Wäre es möglich sowas in ein Skript zu schreiben? Die Ausgangslesson soll dabei auch nicht permanent verändert werden, da ich das Spiel für mehrere Inputneuronen machen möchte und wenn dann alle nach und nach 0 gesetzt sind wäre das sicher nicht sinnvoll. Es wäre also schön wenn irgendwie eine neue "Sublesson" erstellt werden würde mit der vorher getroffenen Auswahl an Mustern, welche das Kriterium (z.B. Wert=1) erfüllen und wo dieses Kriterium dann auch abgeändert werden kann.

Der Gedanke ist folgender: Ich habe sehr große Lessons, wo allein das importieren der Lessons aus .csv Dateien in den Lesson Editor sehr lange dauert. Wenn ich nun in der Lage wäre solche Sublessons in Membrain zu bilden könnte ich mir das langwierige importieren neuer Lessons sparen. Zudem müsste ich nicht für jedes Inputneuron einzeln extra eine Lesson aufbereiten und per "hand" alle Muster auswählen welche das Kriterium enthalten, eine .csv datei erstellen mit Wert=1 und eine .csv mit Wert=0.

Mein eigentliches Ziel ist es mit diesem Verfahren den Einfluss des Inputwertes eines jeden Inputneurons zu isolieren. Dies erscheint mir zwar recht aufwändig, ist aber bis jetzt irgendwie die einzige Idee die ich habe. Ich möchte auch nicht alle anderen Neuronen einfach auf einen Mittelwert setzen und dann den Wert des betrachteten Neurons abändern und mir die Outputs geben lassen. Ich denke, die Mittelwertbildung anderer Neuronen würde das Ergebnis zu sehr verfälschen, von daher möchte ich das an "realen" Mustern prüfen. Vielleicht hat ja da jemand noch eine bessere Idee?

Vielen Dank schonmal für eure Antworten
User avatar
TJetter
Posts: 342
Joined: Sat 13. Oct 2012, 12:04

Re: Bilden einer "Sublesson"

Post by TJetter »

Toddster wrote:Wäre es möglich sowas in ein Skript zu schreiben?
Absolut, die Skriptsprache bietet hierzu alles.
Wahrscheinlich empfielt es sich, das Trainings- und Validierungsskript einmal durchzuarbeiten:
viewtopic.php?f=13&t=232
Da sind bereits einige Aspekte drin, die sich für den beschriebenen Zweck u.U. wiederverwenden lassen oder zumindest als Anschauungsmaterial dienen können. Dort wird z.B. auch schon eine neue Lesson erzeugt und modifiziert (in diesem Falle um weitere Spalten).
Wichtig bei umfangreichen Datensätzen: CSV nur nutzen, wenn es unbedingt sein muss: Das interne MemBrain Lesson-Format (*.mbl) ist um ein Vielfaches performanter! Im Skript geht das mit 'LoadLesson' und 'SaveLesson' im Gegensatz zu den 'Import...' bzw. 'Export...' Funktionen. Wenn man dann eine Lesson mal doch als CSV benötigt, kann man sie ja problemlos exportieren.

Bei konkreten Fragen einfach wieder melden...

Viele Grüße und viel Erfolg!
Thomas Jetter
Post Reply