Eine kleine Auffälligkeit

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
Max
Posts: 1
Joined: Wed 12. Jan 2011, 15:26

Eine kleine Auffälligkeit

Post by Max » Wed 12. Jan 2011, 17:16

Hallo,

für mich sind neuronale Netze, sowie MemBrain selbst eine neue Thematik, in die ich mich gerade einarbeite.
Bei einer Spielerei mit dem Programm ist mir eine vielleicht auch unbedeutende Auffälligkeit ins Auge gestochen.
Mich interessiert, ob die angehängten Dateien auf anderen Computersystemen dieselbe Auffälligkeit zeigen bzw. worin
diese begründet ist, damit ich das beschriebene Verhalten zukünftig vermeiden kann.


Einstellungen für die Simulation:

View: on Show Links
on Show Activation Spikes on Links
on Show Fire Indicators
off Show Winner Neuron
off Show Links in Foreground
off Show Layer Info
on Use Display Cache
on Black Background

Simulation Speed: ca. 1000


Die NN und deren Auffälligkeit:

1.) Test1 - Start Thinking (Auto)
--> Die Neuronen 3 und 4 zeigen nacheinander ein Aktivierung, die meines erachtens nicht auftreten sollte.

2.) Test2 - Start Thinking (Auto)
--> Das selbe Netz nach diversen Aktionen:
- Umbenennung der Neuronen,
- Verschieben der Neuronen auf der Graphischen Oberfläche,
- Analyse Net sowie
- Reset Net
(Aktionen NICHT in chronologischer Reihenfolge; mehrfache Durchführung der einzelnen Aktionen)
--> Die Aktivierung der benannten Neuronen bleibt aus.
Anmerkung: "Die Auffälligkeit ist auf meinem Computersystem reproduzierbar"

3.) Wird "Analyse Net" nach einem erneuten Laden der Test2.mbn durchgeführt, erfolgt erneut das unter 1.) beschriebene Verhalten (beachte: Umbenennung der Neuronen wurde zuvor durchgeführt).

Genauer konnte ich die Auffälligkeit bisher nicht eingrenzen. Ich vermute, dass es mit der Order der Neuronen auf der graphischen Oberfläche zu tun hat.

Mit freundlichem Gruß
Max


PS.: Bitte keine E-Mails schicken!
PPS.: Vielen Dank für das hilfreiche Programm und insbesondere die umfangreiche Hilfe-Funktion!

Test1.mbn
(1.02 KiB) Downloaded 380 times
Test2.mbn
(1.02 KiB) Downloaded 384 times

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

Re: Eine kleine Auffälligkeit

Post by Admin » Wed 12. Jan 2011, 18:01

Hallo Max,

zunächst einmal Danke für die detaillierte Beschreibung. Ich kann das Verhalten bei mir nachvollziehen, und es scheint mir ebenso wie Dir nicht korrekt, dass die Neuronen eine Aktivität von 1 annehmen. Sobald ich Näheres weiss, melde ich mich wieder.

Viele Grüße,
Thomas
Thomas Jetter

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

Re: Eine kleine Auffälligkeit

Post by Admin » Wed 12. Jan 2011, 19:01

Hallo Max,

bei dieser Sache handelt es sich um einen sehr prinzipiellen Effekt, der auf die grundsätzliche Implementierung der Neuron-Berechnungen zurückzuführen ist. Der Effekt tritt immer dann auf, wenn Neuronen im selben logischen Layer in MemBrain miteinander verbunden sind:
- Aktiviere die Option <View><Show Layer Info>
--> Man sieht, dass alle Neuronen, bis auf eines im Context-Layer zu liegen kommen.

Nun muss MemBrain bei einem 'ThinkStep' zwangsweise eine Reihenfolge der Berechnung der Neuronen durchführen. Innerhalb eines Layers ist dabei die Berechnung vom Ergebnis der Netzanalyse abhängig, und diese orientiert sich auch an der Bildschirmposition.
Die Berechnung eines Neurons in MemBrain beinhaltet immer auch gleich das 'Weiterschieben' seines Ausgangssignals entlang aller angeschlossenen Links. Als Eingangssignale nimmt ein Neuron zum Zeitpunkt seiner Berechnung den Signalwert, der am Ausgang des Links momentan anliegt. Wenn nun vor dem anstehenden Berechnungsschritt (d.h. vor dem 'ThinkStep' des gesamten Netzes) die folgenden Signale an einem Neuron anliegen (wie in Deinem Beispiel):
Link 1: -1
Link 2: -1
Link 3: 1

so würde man nach dem ThinkStep erwarten, dass die Eingangssumme für das Neuron bei -1 zu liegen gekommen ist und somit keine Aktivierung auftritt.

Leider schlägt beim nun folgenden ThinkStep der unsichtbare 'Microschrittbetrieb' innerhalb des Context-Layers zu: Abhängig von der Berechnungsreihenfolge kann es sein, dass wenn das untersuchte Neuron berechnet wird, diese Signale sich gar nicht mehr in den Links befinden, sondern durch die Berechnungsschritte der anderen Neuronen im selben Layer bereits duech aktuellere ersetzt worden sind. D.h., die Signale, die zuvor in der grafischen Abbildung beobachtet wurden, wurden teilweise schon im vorhergehenden ThinkStep für dieses Neuron verarbeitet. In Deinem Beispiel passiert das genau mit den beiden '-1' Signalen, so dass nur die '1' und zweimal die '0' im aktuellen Berechnungsschritt in die Eingangssumme des betrachteten Neurons einfließen und dieses somit aktiviert wird.

Ich muss erst einmal etwas genauer darüber nachdenken, ob und was man da machen kann. Eine Möglichkeit wäre es vielleicht, innerhalb eines Layers zunächst alle Aktivitäten in den Zielneuronen zu 'Cachen', bevor die Neuronen ihre Berechnungen mitsamt dem nächsten Signaloutput machen. Alternativ könnte man den Output des Neurons cachen und das Weiterschieben in den Link erst dann machen, wenn der momentane Output vom Link durch das Zielneuron abgeholt wurde. Es gibt bestimmt noch mehrere andere Möglichkeiten.

Jedenfalls vermute ich, dass es eine etwas tiefgreifende Veränderung geben könnte und ich muss sorgfältig alle möglichen Nebenwirkungen prüfen und abwägen, bevor ich hier etwas ändere.
Auch bin ich mir noch nicht sicher, ob es sich dabei nicht um ein ganz prinzipielles Phänomen handelt, d.h., ob es überhaupt eine bessere Lösung als die momentan implementierte gibt, man bewegt sich eben in endlichen Zeitschritten in einer digitalen Welt und nicht in einer kontinuierlichen, analogen Welt.

Auf jeden Fall vielen Dank für die genaue Beobachtung, solche Rückmeldungen sind ungemein wertvoll!

Ich melde mich hier wieder, wenn es dazu Neuigkeiten gibt.

Viele Grüße
Thomas Jetter

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

Re: Eine kleine Auffälligkeit

Post by Admin » Sun 27. Mar 2011, 19:11

Die Berechnung ist in der gerade online gegangenen MemBrain-Version 03.08.00.00 optimiert worden, das Problem sollte damit jetzt behoben sein.

Viele Grüße

Post Reply