14 Stimmen

Der Fehler des neuronalen XOR-Netzwerks nimmt während des Trainings nicht mehr ab

Ich trainiere ein neuronales XOR-Netz über Back-Propagation mit stochastischem Gradientenabstieg. Die Gewichte des neuronalen Netzes werden mit Zufallswerten zwischen -0,5 und 0,5 initialisiert. Das neuronale Netz trainiert sich in etwa 80 % der Zeit erfolgreich selbst. Manchmal bleibt es jedoch beim Backpropagating "stecken". Mit "stecken bleiben" meine ich, dass die Fehlerkorrekturrate abnimmt. Während eines erfolgreichen Trainings nimmt der Gesamtfehler zum Beispiel ziemlich schnell ab, wenn das Netz lernt, etwa so:

...
...
Total error for this training set: 0.0010008071327708653
Total error for this training set: 0.001000750550254843
Total error for this training set: 0.001000693973929822
Total error for this training set: 0.0010006374037948094
Total error for this training set: 0.0010005808398488103
Total error for this training set: 0.0010005242820908169
Total error for this training set: 0.0010004677305198344
Total error for this training set: 0.0010004111851348654
Total error for this training set: 0.0010003546459349181
Total error for this training set: 0.0010002981129189812
Total error for this training set: 0.0010002415860860656
Total error for this training set: 0.0010001850654351723
Total error for this training set: 0.001000128550965301
Total error for this training set: 0.0010000720426754587
Total error for this training set: 0.0010000155405646494
Total error for this training set: 9.99959044631871E-4

Testing trained XOR neural network
0 XOR 0: 0.023956746649767453
0 XOR 1: 0.9736079194769579
1 XOR 0: 0.9735670067093437
1 XOR 1: 0.045068688874314006

Wenn er jedoch feststeckt, nimmt die Gesamtzahl der Fehler ab, aber anscheinend mit abnehmender Geschwindigkeit:

...
...
Total error for this training set: 0.12325486644721295
Total error for this training set: 0.12325486642503929
Total error for this training set: 0.12325486640286581
Total error for this training set: 0.12325486638069229
Total error for this training set: 0.12325486635851894
Total error for this training set: 0.12325486633634561
Total error for this training set: 0.1232548663141723
Total error for this training set: 0.12325486629199914
Total error for this training set: 0.12325486626982587
Total error for this training set: 0.1232548662476525
Total error for this training set: 0.12325486622547954
Total error for this training set: 0.12325486620330656
Total error for this training set: 0.12325486618113349
Total error for this training set: 0.12325486615896045
Total error for this training set: 0.12325486613678775
Total error for this training set: 0.12325486611461482
Total error for this training set: 0.1232548660924418
Total error for this training set: 0.12325486607026936
Total error for this training set: 0.12325486604809655
Total error for this training set: 0.12325486602592373
Total error for this training set: 0.12325486600375107
Total error for this training set: 0.12325486598157878
Total error for this training set: 0.12325486595940628
Total error for this training set: 0.1232548659372337
Total error for this training set: 0.12325486591506139
Total error for this training set: 0.12325486589288918
Total error for this training set: 0.12325486587071677
Total error for this training set: 0.12325486584854453

Als ich mich über neuronale Netze informierte, stieß ich auf eine Diskussion über lokale Minima und globale Minima und darüber, dass neuronale Netze nicht wirklich "wissen", auf welche Minima sie zusteuern sollen.

Bleibt mein Netzwerk in einem lokalen Minima statt in einem globalen Minima stecken?

7voto

LiKao Punkte 10228

Ja, neuronale Netze können in lokalen Minima stecken bleiben, abhängig von der Fehleroberfläche. Allerdings diese Zusammenfassung legt nahe, dass es keine lokalen Minima in der Fehleroberfläche des XOR-Problems gibt. Ich kann jedoch nicht auf den vollständigen Text zugreifen, so dass ich nicht überprüfen kann, was die Autoren getan haben, um dies zu beweisen und wie es auf Ihr Problem zutrifft.

Es könnte auch andere Faktoren geben, die zu diesem Problem führen. Wenn man zum Beispiel sehr schnell in ein steiles Tal hinabfährt, kann es sein, dass man bei einem reinen Gradientenabstieg erster Ordnung an den gegenüberliegenden Hang gelangt und ständig hin und her springt. Sie könnten auch versuchen, die durchschnittliche Änderung aller Gewichte bei jeder Iteration anzugeben, um zu testen, ob Sie wirklich ein "festgefahrenes" Netz haben, oder eher eines, das nur in einen Grenzzyklus geraten ist.

Sie sollten zunächst versuchen, an Ihren Parametern herumzuprobieren (Lernrate, Schwungkraft, wenn Sie sie implementiert haben usw.). Wenn Sie das Problem durch Ändern der Parameter beseitigen können, ist Ihr Algorithmus wahrscheinlich in Ordnung.

4voto

William Chen Punkte 51

Ein mögliches Problem ist ein schlechter Gradientenabstieg mit zu großen Schritten, wie von LiKao beschrieben. Ein anderes ist, dass es sehr flache Regionen in der XOR-Fehlerlandschaft gibt, was bedeutet, dass es sehr lange dauert, bis die Konvergenz erreicht ist, und dass der Gradient so schwach sein kann, dass der Abstiegsalgorithmus einen nicht in die richtige Richtung zieht.

Diese beiden Arbeiten befassen sich mit 2-1-1- und 2-2-1-XOR-Landschaften. Die eine verwendet eine "Kreuzentropie"-Fehlerfunktion, die ich nicht kenne. In der ersten Arbeit wird erklärt, dass es keine lokalen Minima gibt, aber in der zweiten Arbeit heißt es, dass es lokale Minima bei Unendlichkeit gibt - im Grunde dann, wenn die Gewichte auf sehr große Werte ansteigen. Für den zweiten Fall deuten die Ergebnisse also darauf hin, dass man an den unendlichen Punkten hängen bleiben kann, wenn man nicht in der Nähe von "genügend" wahren Minima beginnt. Sie sagen auch, dass andere Analysen von 2-2-1-XOR-Netzwerken, die keine lokalen Minima zeigen, aufgrund bestimmter Definitionen nicht im Widerspruch zu ihren Ergebnissen stehen.

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.31.4770

http://www.ncbi.nlm.nih.gov/pubmed/12662806

2voto

Tomoki Tsuchida Punkte 21

Ich bin auf dasselbe Problem gestoßen und habe festgestellt, dass die Aktivierungsfunktion 1,7159*tanh(2/3*x), die in LeCun's "Effizienter Backprop" Papier hilft. Dies liegt vermutlich daran, dass diese Funktion nicht um die Zielwerte {-1, 1} herum sättigt, während dies bei der normalen tanh-Funktion der Fall ist.

1voto

Burrito Punkte 1273

Die in der Antwort von @LiKao zitierte Arbeit von Hamey beweist, dass es keine strengen "regionalen lokalen Minima" für XOR in einem neuronalen 2-2-1-Netzwerk gibt. Es gibt jedoch "asymptotische Minima", bei denen die Fehlerfläche abflacht, wenn sich ein oder mehrere Gewichte der Unendlichkeit nähern.

In der Praxis müssen die Gewichte nicht einmal so groß sein, damit dies geschieht, und es ist durchaus üblich, dass ein 2-2-1-Netz in diesem flachen asymptotischen Bereich stecken bleibt. Der Grund dafür ist Sättigung: Der Gradient der Sigmoid-Aktivierung nähert sich 0, wenn die Gewichte groß werden, so dass das Netz nicht mehr weiter lernen kann.

Siehe meine Notizbuch-Experiment - In der Regel bleiben 2 oder 3 von 10 Netzen stecken, selbst nach 10.000 Epochen. Die Ergebnisse unterscheiden sich geringfügig, wenn Sie die lear

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X