Die Fehler-Backpropagation-Methode, auch Backpropagation-Algorithmus genannt, ist eine gängige Methode zum Training neuronaler Netze. Es verwendet die Kettenregel, um den Fehler zwischen der Ausgabe des neuronalen Netzwerks und der Beschriftung zu berechnen, und gibt den Fehler Schicht für Schicht an jeden Knoten zurück, um den Gradienten jedes Knotens zu berechnen. Diese Gradienten können verwendet werden, um die Gewichte und Bias des neuronalen Netzwerks zu aktualisieren und das Netzwerk schrittweise näher an die optimale Lösung heranzuführen. Durch Backpropagation kann das neuronale Netzwerk automatisch Parameter lernen und anpassen, um die Leistung und Genauigkeit des Modells zu verbessern.
Bei der Fehler-Backpropagation verwenden wir die Kettenregel, um den Gradienten zu berechnen.
Wir haben ein neuronales Netzwerk, das einen Eingang x, einen Ausgang y und eine verborgene Schicht hat. Wir berechnen den Gradienten jedes Knotens in der verborgenen Schicht durch Backpropagation.
Zuerst müssen wir den Fehler jedes Knotens berechnen. Für die Ausgabeschicht ist der Fehler die Differenz zwischen dem tatsächlichen Wert und dem vorhergesagten Wert; für die verborgene Schicht ist der Fehler der Fehler der nächsten Schicht multipliziert mit dem Gewicht der aktuellen Schicht. Diese Fehler werden zur Anpassung der Gewichte verwendet, um die Differenz zwischen Vorhersagen und tatsächlichen Werten zu minimieren.
Dann verwenden wir die Kettenregel, um den Gradienten zu berechnen. Für jedes Gewicht berechnen wir seinen Beitrag zum Fehler und übertragen diesen Beitrag dann auf die vorherige Ebene zurück.
Konkret nehmen wir an, unser neuronales Netzwerk hat ein Gewicht w, das zwei Knoten verbindet. Dann ist der Beitrag dieses Gewichts zum Fehler das Produkt aus Gewicht und Fehler. Wir übertragen diesen Beitrag zurück auf die vorherige Schicht, indem wir diesen Beitrag mit dem Produkt aus der Ausgabe der vorherigen Schicht und der Eingabe der aktuellen Schicht multiplizieren.
Auf diese Weise können wir den Gradienten jedes Knotens berechnen und diese Gradienten dann verwenden, um die Gewichte und Verzerrungen des Netzwerks zu aktualisieren.
Angenommen, wir haben ein neuronales Netzwerk, das eine Eingabeschicht, eine verborgene Schicht und eine Ausgabeschicht hat. Die Aktivierungsfunktion der Eingabeschicht ist eine lineare Funktion, die Aktivierungsfunktion der verborgenen Schicht ist eine Sigmoidfunktion und die Aktivierungsfunktion der Ausgabeschicht ist ebenfalls eine Sigmoidfunktion.
1. Geben Sie die Trainingssatzdaten in die Eingabeschicht des neuronalen Netzwerks ein und erhalten Sie den Aktivierungswert der Eingabeschicht.
2. Übergeben Sie den Aktivierungswert der Eingabeebene an die verborgene Ebene und erhalten Sie den Aktivierungswert der verborgenen Ebene durch nichtlineare Transformation der Sigmoidfunktion.
3. Übergeben Sie den Aktivierungswert der verborgenen Schicht an die Ausgabeschicht und erhalten Sie den Aktivierungswert der Ausgabeschicht durch nichtlineare Transformation der Sigmoidfunktion.
Der Fehler wird anhand des Kreuzentropieverlusts zwischen den Aktivierungen der Ausgabeebene und den tatsächlichen Beschriftungen berechnet. Insbesondere wird für jede Probe die Kreuzentropie zwischen der vorhergesagten Bezeichnung und der tatsächlichen Bezeichnung berechnet und diese Kreuzentropie dann mit dem entsprechenden Probengewicht multipliziert (das Probengewicht wird normalerweise basierend auf der Wichtigkeit und Verteilung der Probe bestimmt). ).
1. Berechnen Sie den Gradienten jedes Knotens der Ausgabeschicht
Gemäß der Kettenregel berechnen wir für jeden Knoten seinen Beitrag zum Fehler und geben diesen Beitrag dann zurück der vorherigen Etage. Konkret berechnen wir für jeden Knoten seinen Beitrag zum Fehler (d. h. das Gewicht des Knotens multipliziert mit dem Fehler) und multiplizieren diesen Beitrag dann mit dem Produkt aus der Ausgabe der vorherigen Schicht und der Eingabe der aktuellen Schicht. Auf diese Weise erhalten wir den Gradienten jedes Knotens der Ausgabeschicht.
2. Berechnen Sie den Gradienten jedes Knotens in der verborgenen Ebene.
In ähnlicher Weise berechnen wir gemäß der Kettenregel für jeden Knoten seinen Beitrag zum Fehler und übertragen diesen Beitrag dann auf die vorherige Ebene zurück. Konkret berechnen wir für jeden Knoten seinen Beitrag zum Fehler (d. h. das Gewicht des Knotens multipliziert mit dem Fehler) und multiplizieren diesen Beitrag dann mit dem Produkt aus der Ausgabe der vorherigen Schicht und der Eingabe der aktuellen Schicht. Auf diese Weise erhalten wir den Gradienten jedes Knotens in der verborgenen Ebene.
3. Aktualisieren Sie die Gewichte und Bias des neuronalen Netzwerks
Gemäß dem Gradientenabstiegsalgorithmus berechnen wir für jedes Gewicht seinen Gradienten auf dem Fehler und multiplizieren diesen Gradienten dann mit einer Lernrate (d. h. eins). kann den Parameter der Aktualisierungsgeschwindigkeit steuern), um den Aktualisierungsbetrag des Gewichts zu erhalten. Für jeden Bias müssen wir auch seinen Gradienten auf dem Fehler berechnen und diesen Gradienten dann mit einer Lernrate multiplizieren, um den Aktualisierungsbetrag für diesen Bias zu erhalten.
Wiederholen Sie den obigen Vorgang (Vorwärtsausbreitung, Berechnungsfehler, Rückausbreitung, Aktualisierungsparameter), bis das Stoppkriterium erfüllt ist (z. B. die voreingestellte maximale Anzahl von Iterationen erreicht ist oder der Fehler erreicht ist). voreingestellter Minimalwert).
Dies ist der detaillierte Prozess der Fehler-Backpropagation. Es ist zu beachten, dass wir in praktischen Anwendungen normalerweise komplexere neuronale Netzwerkstrukturen und Aktivierungsfunktionen sowie komplexere Verlustfunktionen und Lernalgorithmen verwenden, um die Leistung und Generalisierungsfähigkeit des Modells zu verbessern.
Das obige ist der detaillierte Inhalt vonKonzepte und Schritte der Fehler-Backpropagation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!