Warum funktioniert die Backpropagation nicht, wenn Sie die Wertigkeiten mit demselben Wert initialisieren?


20

Warum funktioniert die Backpropagation nicht, wenn Sie alle Gewichte mit demselben Wert initialisieren (z. B. 0,5), aber wenn Sie Zufallszahlen angeben, funktioniert sie einwandfrei?

Sollte der Algorithmus den Fehler nicht berechnen und von dort aus arbeiten, obwohl die Gewichte anfangs gleich sind?

Antworten:


26

Symmetrie brechen.

Wenn alle Gewichte mit gleichen Werten beginnen und die Lösung die Entwicklung ungleicher Gewichte erfordert, kann das System niemals lernen.

Dies liegt daran, dass sich der Fehler proportional zu den Werten der Gewichte durch die Gewichte zurück ausbreitet. Dies bedeutet, dass alle versteckten Einheiten, die direkt mit den Ausgabeeinheiten verbunden sind, identische Fehlersignale erhalten. Da die Gewichtsänderungen von den Fehlersignalen abhängen, müssen die Gewichte von diesen Einheiten zu den Ausgabeeinheiten immer gleich sein. Das System startet an einer Art instabilem Gleichgewichtspunkt, der die Gewichte gleich hält, aber höher ist als einige benachbarte Punkte auf der Fehleroberfläche, und sobald es sich zu einem dieser Punkte entfernt, wird es niemals zurückkehren. Wir begegnen diesem Problem, indem wir das System mit kleinen Zufallsgewichten starten. Unter diesen Bedingungen treten derartige Symmetrieprobleme nicht auf.


Die Anfangsgewichte eines NN bestimmen also nicht nur die Geschwindigkeit, mit der es trainiert, sondern können auch die Ursache für Lernen sein oder nicht?
user1724140

2
Ja, manchmal trainieren wir nicht nur mit einem Gewichtssatz (z. B. einem neuronalen Netz). Wenn wir Zeit haben, ist es üblich, mehrere verschiedene Startgewichtskonfigurationen zu erstellen und das Netzwerk darauf zu trainieren. Denn manchmal kann es vorkommen, dass eine Konfiguration in einem lokalen Optimum endet oder das Gewicht leider nicht wirklich zufällig ist.
Do

Ist das nicht falsch, weil verschiedene Eingänge immer noch die Symmetrie brechen können? Siehe: open.wolframcloud.com/env/…
user3180

12

Um die Antwort von Thierry zu ergänzen, können Sie sich den Fehler als eine Funktion des Gewichtsvektors vorstellen, dh als eine Funktion von RnRwas Sie minimieren möchten. Der Back-Propagation-Algorithmus untersucht die lokale Umgebung eines Punktes und ermittelt, welche Richtung zu einem kleineren Fehler führt. Dies gibt Ihnen dann ein lokales Minimum.

Was Sie wollen, ist ein globales Minimum, aber Sie haben keine Garantie, wie Sie es finden können. Und wenn Ihre Oberfläche mehrere lokale Minima aufweist, sind Sie möglicherweise in Schwierigkeiten.

Wenn es jedoch nur wenige gibt, sollte Thierrys Strategie funktionieren. Wenn Sie mehrere Suchen nach lokalen Minima durchführen, indem Sie an zufällig ausgewählten Punkten beginnen, erhöht sich die Wahrscheinlichkeit, dass Sie das globale Minimum finden.

Und in dem glücklichen Fall, in dem es nur ein Minimum gibt, führt Sie jeder anfängliche Gewichtsvektor dorthin.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.