Frage

Vor kurzem habe ich das Backpropagation-Netz untersucht und habe einige manuelle Übung durchgeführt. Danach kam ich mit einer Frage auf (vielleicht keinen Sinn macht): Gibt es irgend etwas wichtiges in der folgenden zwei verschiedene Ersatzmethoden: 1. Mehr Training: Gewichte werden sofort aktualisiert, sobald alle der Delta Wij die bekannt sind und vor dem nächsten Trainingsvektor präsentiert. 2. Batch-Training: Delta Wij der berechnet und für jedes Exemplar Trainingsvektor gespeichert. Allerdings sind die Delta Wij die nicht sofort verwendet, um die Gewichte zu aktualisieren. Gewicht Aktualisierung ist am Ende einer Trainings Epoche gemacht.

Ich habe für eine Weile gegoogelt haben aber festgestellt keine Ergebnisse.

War es hilfreich?

Lösung

Also, was Sie sich beziehen sind die beiden Modi Gradientenabfallsaktualisierung Lernen durchzuführen. Im Batch-Modus, Änderungen der Gewichtungsmatrix werden über eine gesamte Darstellung des Trainingsdatensatzes angesammelt (eine ‚Epoche‘); Online-Training aktualisiert das Gewicht nach der Präsentation jeden Vektors des Trainingssatz umfasst.

Ich glaube, der Konsens ist, dass Online-Training überlegen ist, weil es konvergiert viel schneller (die meisten Studien berichten, keine offensichtlichen Unterschiede in der Genauigkeit). (Siehe zum Beispiel Randall Wilson & Tony Martinez, Die allgemeine Ineffizienz von Batch-Training für Gradient Descent Learning , in Neuronale Netze (2003).

Der Grund, warum Online-Training konvergiert schneller ist, dass es Kurven in der Fehleroberfläche über jede Epoche folgen kann. Die praktische Bedeutung ist, dass Sie eine größere Lernrate verwenden können (und daher mit weniger Zyklen durch die Trainingsdaten zusammenlaufen).

Um es anders auszudrücken, die akkumulierte Gewichtsänderung für Batch-Training steigt mit der Größe des Trainingssatzes. Das Ergebnis ist, dass Batch-Training nutzt große Schritte bei jeder Iteration, und daher fehlt lokale Minima in dem Fehlerraum Topologie -. Ihre Solver oszillieren statt konvergent

Batch-Training ist in der Regel die ‚default‘ (meist in ML Lehrbücher verwendet, etc.) und es gibt nichts falsch mit ihm mit, solange es innerhalb Ihrer akzeptablen Fristen konvergiert. Auch hier (Genauigkeit Auflösung oder Klassifizierung) der Unterschied in der Leistung klein oder vernachlässigbar ist.

Andere Tipps

Ja, es gibt einen Unterschied zwischen diesen beiden Methoden. Die Deltas, die berechnet erhalten sind eine Funktion des Eingangsvektors und der Gewichte des Netzwerks. Wenn Sie die Gewichte ändern, wird die Deltas, die von dem nächsten Eingangsvektor berechnet werden als unterschiedlich sein, wenn Sie nicht die Gewichte ändern.

Also, für den ersten Eingangsvektor, werden die gleichen Deltas berechnet bekommen, unabhängig von der Methode, die Sie wählen. Nun, für die aufeinanderfolgenden Verfahren, die Gewichte im Netzwerk ändert sich, während in der Simultan-Methode, die Gewichte werden das gleiche für jetzt bleiben. Wenn der zweite Eingangsvektor dargestellt wird, werden beide Methoden produzieren nun verschiedene Deltas, da die Gewichte zwischen den beiden Netzen unterschiedlich sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top