Backpropagation XOR
Guten Abend, ich habe vor drei Tagen dieses kleine Script geschrieben, das ein mehrschichtiges Perzeptron aus Sigmoidneuronen mittels Backpropagation die XOR Funktion lernen lassen soll. Seitdem versuche ich den Fehler zu finden, warum der Lernvorgang einfach nicht funktioniert (Immer wenn ich drauf gucke, komme ich zum Schluss, dass die Implementierung stimmen sollte). Ich würde mich freuen, wenn jemand mal einen Blick darauf werfen, und mir sagen könnte, worin der Fehler liegt. Hier der Code: http://privatepaste.com/8ad1b3752e Ich hoffe, es findet sich jemand, der mir weiterhelfen kann. Vielen Dank Robert
Hi, was passiert, wenn du die Reihenfolge der Lernschritte zufällig variierst? Das Ergebnis kann einfach auf 'schlechtes lernen' zurückzuführen sein. greatz Johannes On 24.11.2012 22:42, Robert Heumüller wrote:
Guten Abend,
ich habe vor drei Tagen dieses kleine Script geschrieben, das ein mehrschichtiges Perzeptron aus Sigmoidneuronen mittels Backpropagation die XOR Funktion lernen lassen soll. Seitdem versuche ich den Fehler zu finden, warum der Lernvorgang einfach nicht funktioniert (Immer wenn ich drauf gucke, komme ich zum Schluss, dass die Implementierung stimmen sollte). Ich würde mich freuen, wenn jemand mal einen Blick darauf werfen, und mir sagen könnte, worin der Fehler liegt. Hier der Code:
http://privatepaste.com/8ad1b3752e
Ich hoffe, es findet sich jemand, der mir weiterhelfen kann.
Vielen Dank
Robert
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
Gute Idee, ich habe die Reihenfolge der Beispiele mal randomisiert: examples = [([0,0], [0]),([0,1], [1]),([1,0], [1]),([1,1], [0])] for i in range(15000): learn_example(random.choice(examples)) print calculate([0,0]) print calculate([0,1]) print calculate([1,0]) print calculate([1,1]) Leider trotzdem kein Erfolg :( Danke trotzdem schonmal, Grüße Robert Am Sun, 25 Nov 2012 13:39:01 +0100 schrieb Johannes <dajo.mail@web.de>:
Hi, was passiert, wenn du die Reihenfolge der Lernschritte zufällig variierst? Das Ergebnis kann einfach auf 'schlechtes lernen' zurückzuführen sein.
greatz Johannes
On 24.11.2012 22:42, Robert Heumüller wrote:
Guten Abend,
ich habe vor drei Tagen dieses kleine Script geschrieben, das ein mehrschichtiges Perzeptron aus Sigmoidneuronen mittels Backpropagation die XOR Funktion lernen lassen soll. Seitdem versuche ich den Fehler zu finden, warum der Lernvorgang einfach nicht funktioniert (Immer wenn ich drauf gucke, komme ich zum Schluss, dass die Implementierung stimmen sollte). Ich würde mich freuen, wenn jemand mal einen Blick darauf werfen, und mir sagen könnte, worin der Fehler liegt. Hier der Code:
http://privatepaste.com/8ad1b3752e
Ich hoffe, es findet sich jemand, der mir weiterhelfen kann.
Vielen Dank
Robert
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
Hi, ich habe vorhin mal etwas mit den einzelnen Beispielen gespielt. selbst im Fall, wo nur zwei Beispiele gelernt werden sollten ([0,1] -> 1 und [1,1] -> 0] schwankte meine 'Trefferquote' in der Ausgabe bei verschiedenen Durchläufen zwischen 0.6 und und 0.9. Mir scheint es sich hierbei auch eher um ein prinzipielles Problem zu handeln, weil du nur zwei Neuronen im HiddenLayer nutzt. Mit 4 Neuronen lassen sich ordentliche Ergebnisse erzielen: http://mnemstudio.org/neural-networks-backpropagation-xor.htm Dass kann man sich auch so klar machen, indem man die Lernschritte von Hand berechnet, und beobachte welcher Fehler in der Ausgabe zu welchen Änderungen der Gewichte führt. greatz Johannes On 25.11.2012 14:24, Robert Heumüller wrote:
Gute Idee,
ich habe die Reihenfolge der Beispiele mal randomisiert:
examples = [([0,0], [0]),([0,1], [1]),([1,0], [1]),([1,1], [0])] for i in range(15000): learn_example(random.choice(examples)) print calculate([0,0]) print calculate([0,1]) print calculate([1,0]) print calculate([1,1])
Leider trotzdem kein Erfolg :( Danke trotzdem schonmal,
Grüße
Robert
Am Sun, 25 Nov 2012 13:39:01 +0100 schrieb Johannes <dajo.mail@web.de>:
Hi, was passiert, wenn du die Reihenfolge der Lernschritte zufällig variierst? Das Ergebnis kann einfach auf 'schlechtes lernen' zurückzuführen sein.
greatz Johannes
On 24.11.2012 22:42, Robert Heumüller wrote:
Guten Abend,
ich habe vor drei Tagen dieses kleine Script geschrieben, das ein mehrschichtiges Perzeptron aus Sigmoidneuronen mittels Backpropagation die XOR Funktion lernen lassen soll. Seitdem versuche ich den Fehler zu finden, warum der Lernvorgang einfach nicht funktioniert (Immer wenn ich drauf gucke, komme ich zum Schluss, dass die Implementierung stimmen sollte). Ich würde mich freuen, wenn jemand mal einen Blick darauf werfen, und mir sagen könnte, worin der Fehler liegt. Hier der Code:
http://privatepaste.com/8ad1b3752e
Ich hoffe, es findet sich jemand, der mir weiterhelfen kann.
Vielen Dank
Robert
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
Hi, wenn ich in meinem Code 4 versteckte Neuronen einstelle, lernt er leider auch nicht. Die ausgabe liegt bei allen Eingaben immer ca. bei 0.5 -> also absoluter "Worst-Case". Ich sehe mir mal den Python-Code auf der von dir verlinkten Webseite an. Viele Grüße Robert Am Sun, 25 Nov 2012 14:51:23 +0100 schrieb Johannes <dajo.mail@web.de>:
Hi, ich habe vorhin mal etwas mit den einzelnen Beispielen gespielt.
selbst im Fall, wo nur zwei Beispiele gelernt werden sollten ([0,1] -> 1 und [1,1] -> 0]
schwankte meine 'Trefferquote' in der Ausgabe bei verschiedenen Durchläufen zwischen 0.6 und und 0.9.
Mir scheint es sich hierbei auch eher um ein prinzipielles Problem zu handeln, weil du nur zwei Neuronen im HiddenLayer nutzt. Mit 4 Neuronen lassen sich ordentliche Ergebnisse erzielen: http://mnemstudio.org/neural-networks-backpropagation-xor.htm
Dass kann man sich auch so klar machen, indem man die Lernschritte von Hand berechnet, und beobachte welcher Fehler in der Ausgabe zu welchen Änderungen der Gewichte führt.
greatz Johannes
On 25.11.2012 14:24, Robert Heumüller wrote:
Gute Idee,
ich habe die Reihenfolge der Beispiele mal randomisiert:
examples = [([0,0], [0]),([0,1], [1]),([1,0], [1]),([1,1], [0])] for i in range(15000): learn_example(random.choice(examples)) print calculate([0,0]) print calculate([0,1]) print calculate([1,0]) print calculate([1,1])
Leider trotzdem kein Erfolg :( Danke trotzdem schonmal,
Grüße
Robert
Am Sun, 25 Nov 2012 13:39:01 +0100 schrieb Johannes <dajo.mail@web.de>:
Hi, was passiert, wenn du die Reihenfolge der Lernschritte zufällig variierst? Das Ergebnis kann einfach auf 'schlechtes lernen' zurückzuführen sein.
greatz Johannes
On 24.11.2012 22:42, Robert Heumüller wrote:
Guten Abend,
ich habe vor drei Tagen dieses kleine Script geschrieben, das ein mehrschichtiges Perzeptron aus Sigmoidneuronen mittels Backpropagation die XOR Funktion lernen lassen soll. Seitdem versuche ich den Fehler zu finden, warum der Lernvorgang einfach nicht funktioniert (Immer wenn ich drauf gucke, komme ich zum Schluss, dass die Implementierung stimmen sollte). Ich würde mich freuen, wenn jemand mal einen Blick darauf werfen, und mir sagen könnte, worin der Fehler liegt. Hier der Code:
http://privatepaste.com/8ad1b3752e
Ich hoffe, es findet sich jemand, der mir weiterhelfen kann.
Vielen Dank
Robert
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
_______________________________________________ python-de maillist - python-de@python.org http://mail.python.org/mailman/listinfo/python-de
Am 24.11.2012 um 22:42 schrieb Robert Heumüller:
Guten Abend,
ich habe vor drei Tagen dieses kleine Script geschrieben, das ein mehrschichtiges Perzeptron aus Sigmoidneuronen mittels Backpropagation die XOR Funktion lernen lassen soll. Seitdem versuche ich den Fehler zu finden, warum der Lernvorgang einfach nicht funktioniert (Immer wenn ich drauf gucke, komme ich zum Schluss, dass die Implementierung stimmen sollte). Ich würde mich freuen, wenn jemand mal einen Blick darauf werfen, und mir sagen könnte, worin der Fehler liegt. Hier der Code:
http://privatepaste.com/8ad1b3752e
Ich hoffe, es findet sich jemand, der mir weiterhelfen kann.
Ist zwar keine direkte Lösung für Deinen Code, aber das hier könnte Dich evtl. interessieren (schön in Python gemacht): - http://scikit-learn.org/dev/modules/generated/sklearn.linear_model.Perceptro... - http://pyvideo.org/video/1419/machine-learning-mit-scikit-learn Gruß, Dinu
participants (3)
-
Dinu Gherman
-
Johannes
-
Robert Heumüller