Vorschläge für die nächste Version

Haben Sie Verbesserungsvorschläge oder Wünsche für eine neue MemBrain-Version? Haben Sie einen Bug entdeckt, der behoben werden sollte? Möchten Sie einfach nur eine positive oder negative Bewertung hinterlassen?

Dann ist dieses Forum der richtige Platz, um Ihren Beitrag einzubringen.
Post Reply
alexey7783
Posts: 7
Joined: Sun 16. Nov 2008, 23:42

Vorschläge für die nächste Version

Post by alexey7783 »

Hallo Thomas, hallo Forumsbesucher,

ich wollte mich mal nützlich für die Gesellschaft machen und hier eine Sache anmerken und einen Verbesserungsvorschlag angeben.

Verbesserung: wenn man in Membrain etwas lädt (Lessons z.B.) dann startet das Ladefenster immer im Stammordner von Membrain. Ich speichere die Lessons aber immer im selben Ordner wie die *.mbn Ginge es, dass man immer in dem Ordner startet, in dem die *.mbn liegt?
Ich lade öfter mal verschiedene Lessons in den Lesson Editor und muss mich immer ewig durch klicken (mein Dateisystem ist verwinkelter als das Labyrinth in Knossos :-)
Klar ist nur ne Kleinigkeit und auch nur sinnvoll, wenn das Ausbessern schnell geht und auch vom Rest erwünscht wird.

Die Anmerkung: wenn ich über das Beispielskript (von der Homepage) versuche die "Think on Lesson" Funktion zu nutzen, dann stürzt das Programm immer ab und es kommt die Fehlermeldung, die ich an den Thread angehängt habe. Und das egal auf welchem Rechner ich Membrain installiere. Echt komisch

Viele Grüße aus Erlangen

Alex
Attachments
fehlermeldung.JPG
(96.98 KiB) Downloaded 496 times
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Vorschläge für die nächste Version

Post by Admin »

Hallo Alex,

vielen Dank für die Rückmeldungen!

Die Sache mit den Dateipfaden beim Öffnen im Lesson-Editor macht definitiv Sinn. Das werde ich für die nächste Version vormerken: Wenn ein Netz geladen ist, dann sollte der Lesson-Editor beim Öffnen von Dateien am besten auch diesen Pfad als Default verwenden.

Die Fehlermeldung kann ich allerdings bei mir nicht nachvollziehen. Verwendest Du die aktuelle MemBrain Version 03.02.00.01?
Es gab einen Bug, der das von Dir beobachtete Verhalten erklären würde, der wurde aber bereits in der Version 03.01.04.00 behoben.

Kannst Du mir das betreffende Skript einmal zusenden oder es posten zusammen mit einer genauen Beschreibung, wie der Fehler zu reproduzieren ist? Auch die Dateien, die Dein Skript verwendet, sollten dabei sein.

Vielen Dank und viele Grüße!
Thomas Jetter
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Vorschläge für die nächste Version

Post by Admin »

Hallo Alex,

die neue MemBrain-Version, die gerade online gegangen ist, enthält u.a. auch Deinen Vorschlag bzgl. der Default-Pfade im Lesson-Editor.

Leider konnte ich wegen des von Dir beobachteten Bugs noch nichts unternehmen, da ich ihn wie gesagt bei mir nicht reproduzieren kann. Kannst Du dazu nochmals Details posten, bitte?

Danke und viele Grüße
Thomas Jetter
alexey7783
Posts: 7
Joined: Sun 16. Nov 2008, 23:42

Re: Vorschläge für die nächste Version

Post by alexey7783 »

Hallo Thomas,

sorry dass ich mich jetzt erst melde. Ich muss noch einmal die neuste Version in der Uni installieren. Dann kann ich dir sagen, ob das Problem behoben ist. Werde ich hoffentlich die Tage schaffen. Bin als Studienberater gerade ordentlich eingespannt :-)

Aber ich melde mich sobald ich die neuste Version ausprobiert habe!

Alex
alexey7783
Posts: 7
Joined: Sun 16. Nov 2008, 23:42

Re: Vorschläge für die nächste Version

Post by alexey7783 »

Hi Thomas,

so ich habe die neuste Version installiert und es klappt immer noch nicht. Ich poste mal die Dateien als zip File. Anders lässt er sie mich nicht hoch laden.

Also die Fehlerbeschreibung:

Ich führe das Skript "skriptexample.txt" aus, was nur das auf der Homepage angebotene Beispiel ist, das ich noch angepasst habe. In der ursprünglichen Datei stand "think_on_lessen" um die Ergebnisse dann in der Datei "ValidateResult.csv" zu speichern. Sobald er aber zu dem Schritt kommt stürzt er auf meinem Rechner, und auch auf dem bei mir zu Hause und denen in der Arbeit ab. Auch mit der neusten Membrain Version vom 24.11. Jetzt lasse ich ihn einfach 8 Sekunden warten und klicke mich einfach mit "Think on next input" durch.
Wichtig ist noch, dass du falls du den Grenzwert für den Fehler nicht herunter stellt den Lernprozess per Hand abschalten musst (Stop teacher). Das habe ich gemacht, weil ich das so ganz gut im Gefühl hatte wann er noch generalisieren kann und bis zu welcher Grenze er auswendig lernt.

Ich hoffe sehr du kannst mir helfen :D

Viele Grüße

Alex
Attachments
KNN Alex Kutter.zip
(4.54 KiB) Downloaded 899 times
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Vorschläge für die nächste Version

Post by Admin »

Hallo Alex,

vielen Dank für die Dateien, werde es mir bei nächster Gelegenheit mal anschauen.

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

Re: Vorschläge für die nächste Version

Post by Admin »

Hallo Alex,

mit Deinen Dateien konnte ich den Fehler jetzt nachvollziehen und schon mal einkreisen, ich werde ihn möglichst bald beheben.

Zur Ursache muss ich etwas ausholen:
MemBrain führt beim ersten Verwenden einer neuen Lesson (oder wenn deren Struktur sich verändert, z.B. neue Spalten) einen Abgleich mit dem Netz durch (Check auf identische I/O Namen). Dabei werden zur Performance-Optimierung den Spalten der Lesson direkt Ihre Neuronen zugewiesen (über Pointer).
Wenn nun das Kontrollkästchen 'Output Data' im Lesson-Editor nicht gesetzt ist, dann wird dieser Abgleich nicht für die Ausgangsdaten/-Neuronen durchgeführt, da MemBrain davon ausgehen muss, dass diese nicht zusammenpassen und deshalb vom Benutzer dieses Kästchen gesetzt wurde. Es ist also dazu da, die Input-Daten einer Lesson verwenden zu können, ohne dass die Outputdaten zu den Ausgangsneuronen passen. Typischerweise macht man das, wenn man nur Input-Daten hat, aber auch ein oder mehrere Ausgangsneuronen.

Nun ist seit Version 03.00.05.00 ein zusätzlicher Check implementiert: Bevor 'Think On Lesson' oder 'Teach' ausgeführt wird, prüft MemBrain auf Einhaltung der Normalisierungsgrenzen durch die aktuelle Lesson. Leider beachtet dieser Check nicht das besagte Kontrollkästchen und versucht, auch die Limits für die Ausgangsneuronen zu prüfen, die ja aber während des Abgleichs nicht zugewisen wurden. Damit versucht MemBrain auf einen Nullpointer zuzugreifen und es kracht...

Die gute Nachricht ist: Für Dich gibt es einen einfachen 'Workaround':
Unterlasse einfach die Aufrufe

LESSON_OUTPUTS NO

in Deinem Skript. Setze zur Sicherheit ganz oben, direkt vor
LESSON_COUNT 3
die Zeile
LESSON_OUTPUTS YES

Das führt dazu, dass vor dem Erzeugen der neuen leeren Lessons das Häkchen gesetzt ist und die neuen Lessons somit auch mit Häkchen erzeugt werden.

Damit läuft Dein Skript schon mal ohne Absturz durch.
Jetzt musst Du nur Deinen Eintrag
SLEEP 8000
wieder durch
SLEEP THINK_END

ersetzen und alles ist OK.

Meld' Dich doch bitte nochmal, wenn Du es ausprobiert hast.

Der Bug wird, wie gesagt, so schnell wie möglich behoben, da er schon 'fies' ist, tausend Dank nochmal für die Meldung!

Übrigens verletzen Deine Validierungsdaten die Normalisierungsgrenzen des Netzes. Allerdings wird bei Ausführung von 'ThinkLesson' durch ein Skript keine Meldung gegeben. Ich werde mal darüber nachdenken, ob es Sinn macht, ein Skript durch so eine Meldung anzuhalten oder nicht... ich denke aber eigentlich schon.

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

Re: Vorschläge für die nächste Version

Post by Admin »

Hallo Alex,

noch eine kurze Anmerkung:

In Deinem Fall, wo die Validierungs-Lesson Ausgangsdaten hat, ist es ohnehin besser, diese zu aktivieren, da Du dann im Pattern Error Viewer direkt nach dem THINK_LESSON Soll und Ist grafisch vergleichen kannst.

Grüße
Thomas Jetter
alexey7783
Posts: 7
Joined: Sun 16. Nov 2008, 23:42

Re: Vorschläge für die nächste Version

Post by alexey7783 »

Hi Thomas,

ja richtig geil. Funktioniert ohne Probleme :D

Das wird meinen HiWi freuen, der sich jetzt noch die Finger wund klickt :lol:

Vielen Dank dafür. An unserem Lehrstuhl findest du mit deinem Programm/deiner Arbeit und meiner Werbung viele Anhänger. Wir sollten ne Firma gründen ;)

Schönen Abend noch!!!!

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

Re: Vorschläge für die nächste Version

Post by Admin »

Hallo Alex,

freut mich, dass es jetzt klappt und natürlich vielen Dank für die Werbung!

Mir ist da bei Deinem Skript noch etwas aufgefallen, von dem ich mir nicht ganz sicher bin, ob es Absicht oder Versehen ist:

Die Zeile
RECORDING_TYPE OUT

legt fest, dass Du bei der Validierung nicht die auf Deinen Datenbereich umgerechneten Aktivitäten aufzeichnest, sondern die normalisierten Ausgangssignale Deiner Neuronen. Damit liegen Deine aufgezeichneten Daten alle im Bereich 0..1, weil MemBrain intern auf diese normalisiert.
Wenn Du also Deine 'echten' Daten sehen willst, dann musst Du

RECORDING_TYPE ACT

in Dein Skript schreiben oder die Zeile ganz weglassen (die Einstellung ist nach dem Start von MemBrain der Default).
Hinschreiben ist natürlich immer sicherer, dann wird eine evtl. fehlerhafte Einstellung auf jeden Fall überschrieben.

Viele Grüße,
Thomas Jetter
Post Reply