Rückwärtspropagation
Rückwärtspropagation oder Backpropagation ist der Prozess, bei dem bestimmt wird, wie sich die Verlustfunktion in Bezug auf jeden Parameter im neuronalen Netzwerk verändert. Das Ziel ist es, diese Parameter so anzupassen, dass der Gesamtverlust verringert wird.
Dieser Prozess basiert auf dem Gradientenabstiegsalgorithmus, der die Ableitungen des Verlusts in Bezug auf die Pre-Aktivierungswerte jeder Schicht (die Rohwerte vor Anwendung der Aktivierungsfunktion) verwendet und diese rückwärts durch das Netzwerk propagiert.
Da jede Schicht zur endgültigen Vorhersage beiträgt, werden die Gradienten schrittweise berechnet:
- Vorwärtspropagation durchführen, um die Ausgaben zu erhalten;
- Die Ableitung des Verlusts in Bezug auf die Pre-Aktivierung des Ausgangs berechnen;
- Diese Ableitung mithilfe der Kettenregel rückwärts durch die Schichten propagieren;
- Die Gradienten für Gewichte und Bias berechnen und verwenden, um diese während des Trainings zu aktualisieren.
Gradienten stellen die Änderungsrate einer Funktion in Bezug auf ihre Eingaben dar, das heißt, sie sind deren Ableitungen. Sie zeigen an, wie stark eine kleine Änderung der Gewichte, Bias oder Aktivierungen die Verlustfunktion beeinflusst und steuern so den Lernprozess des Modells durch den Gradientenabstieg.
Notation
Um die Erklärung zu verdeutlichen, verwenden wir die folgende Notation:
- Wl ist die Gewichtsmatrix der Schicht l;
- bl ist der Bias-Vektor der Schicht l;
- zl ist der Pre-Aktivierungsvektor der Schicht l;
- al ist der Aktivierungsvektor der Schicht l;
Wenn man also a0 auf x (die Eingaben) setzt, kann die Vorwärtspropagation in einem Perzeptron mit n Schichten durch die folgende Abfolge von Operationen beschrieben werden:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Um die Rückpropagation mathematisch zu beschreiben, werden folgende Notationen eingeführt:
- dal: Ableitung des Verlusts bezüglich der Aktivierungen in Schicht l;
- dzl: Ableitung des Verlusts bezüglich der Präaktivierungen in Schicht l (vor Anwendung der Aktivierungsfunktion);
- dWl: Ableitung des Verlusts bezüglich der Gewichte in Schicht l;
- dbl: Ableitung des Verlusts bezüglich der Biases in Schicht l.
Gradientenberechnung für die Ausgabeschicht
In der letzten Schicht n besteht der erste Schritt darin, den Gradienten des Verlusts bezüglich der Aktivierungen der Ausgabeschicht, bezeichnet als dan, zu berechnen.
Anschließend wird mithilfe der Kettenregel der Gradient des Verlusts bezüglich der Präaktivierungen der Ausgabeschicht wie folgt berechnet:
dzn=dan⊙f′n(zn)Hierbei steht f′n(zn) für die Ableitung der Aktivierungsfunktion in Schicht n, und das Symbol ⊙ bezeichnet die elementweise Multiplikation.
Das Symbol ⊙ bezeichnet die elementweise Multiplikation, bei der jedes Element eines Vektors mit dem entsprechenden Element eines anderen Vektors multipliziert wird. Im Gegensatz dazu steht das Symbol ⋅ für das Skalarprodukt, das bei der üblichen Matrix- oder Vektormultiplikation verwendet wird. Der Ausdruck f′n bezeichnet die Ableitung der Aktivierungsfunktion in der Ausgabeschicht.
Dieser Wert gibt an, wie empfindlich die Verlustfunktion auf Änderungen der Voraktivierungswerte der Ausgabeschicht reagiert.
Nach der Berechnung von dzn besteht der nächste Schritt darin, die Gradienten für die Gewichte und Biases zu berechnen:
dWndbn=dzn⋅(an−1)T,=dznDiese Gradienten beschreiben, wie stark jedes Gewicht und jeder Bias in der Ausgabeschicht angepasst werden sollte, um den Verlust zu verringern.
Hierbei ist (an−1)T der transponierte Aktivierungsvektor der vorherigen Schicht. Wenn der ursprüngliche Vektor die Form nneurons×1 hat, besitzt seine Transponierte die Form 1×nneurons.
Um die Rückpropagation fortzusetzen, wird die Ableitung des Verlusts bezüglich der Aktivierungen der vorherigen Schicht wie folgt berechnet:
dan−1=(Wn)T⋅dznDieser Ausdruck ermöglicht es, das Fehlersignal rückwärts durch das Netzwerk zu leiten, sodass frühere Schichten während des Trainings angepasst werden können.
Gradientenweitergabe an die versteckten Schichten
Für jede versteckte Schicht l ist das Vorgehen identisch. Gegeben dal:
- Berechnung der Ableitung des Verlusts bezüglich der Voraktivierungen;
- Berechnung der Gradienten für die Gewichte und Biases;
- Berechnung von dal−1 zur Weitergabe der Ableitung nach hinten.
Dieser Prozess wird für jede vorhergehende Schicht schrittweise wiederholt, bis die Eingabeschicht erreicht ist.
Aktualisierung von Gewichten und Biases
Nach der Berechnung der Gradienten für alle Schichten werden die Gewichte und Biases mithilfe des Gradientenabstiegs-Algorithmus aktualisiert:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Hierbei steht α für die Lernrate, die steuert, wie stark die Parameter bei jedem Trainingsschritt angepasst werden.
Hierbei ist α die Lernrate, ein Hyperparameter, der die Größe der Anpassung der Gewichte und Biases bei jedem Aktualisierungsschritt bestimmt.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain how the chain rule is applied in backpropagation?
What is the difference between pre-activations and activations in a neural network?
Can you provide an example of calculating gradients for a simple neural network?
Awesome!
Completion rate improved to 4
Rückwärtspropagation
Swipe um das Menü anzuzeigen
Rückwärtspropagation oder Backpropagation ist der Prozess, bei dem bestimmt wird, wie sich die Verlustfunktion in Bezug auf jeden Parameter im neuronalen Netzwerk verändert. Das Ziel ist es, diese Parameter so anzupassen, dass der Gesamtverlust verringert wird.
Dieser Prozess basiert auf dem Gradientenabstiegsalgorithmus, der die Ableitungen des Verlusts in Bezug auf die Pre-Aktivierungswerte jeder Schicht (die Rohwerte vor Anwendung der Aktivierungsfunktion) verwendet und diese rückwärts durch das Netzwerk propagiert.
Da jede Schicht zur endgültigen Vorhersage beiträgt, werden die Gradienten schrittweise berechnet:
- Vorwärtspropagation durchführen, um die Ausgaben zu erhalten;
- Die Ableitung des Verlusts in Bezug auf die Pre-Aktivierung des Ausgangs berechnen;
- Diese Ableitung mithilfe der Kettenregel rückwärts durch die Schichten propagieren;
- Die Gradienten für Gewichte und Bias berechnen und verwenden, um diese während des Trainings zu aktualisieren.
Gradienten stellen die Änderungsrate einer Funktion in Bezug auf ihre Eingaben dar, das heißt, sie sind deren Ableitungen. Sie zeigen an, wie stark eine kleine Änderung der Gewichte, Bias oder Aktivierungen die Verlustfunktion beeinflusst und steuern so den Lernprozess des Modells durch den Gradientenabstieg.
Notation
Um die Erklärung zu verdeutlichen, verwenden wir die folgende Notation:
- Wl ist die Gewichtsmatrix der Schicht l;
- bl ist der Bias-Vektor der Schicht l;
- zl ist der Pre-Aktivierungsvektor der Schicht l;
- al ist der Aktivierungsvektor der Schicht l;
Wenn man also a0 auf x (die Eingaben) setzt, kann die Vorwärtspropagation in einem Perzeptron mit n Schichten durch die folgende Abfolge von Operationen beschrieben werden:
a0z1a1=x,=W1a0+b1,=f1(z1),...zlal...=Wlal−1+bl,=fl(zl),...znany^...=Wnan−1+bn,=fn(zn),=an.Um die Rückpropagation mathematisch zu beschreiben, werden folgende Notationen eingeführt:
- dal: Ableitung des Verlusts bezüglich der Aktivierungen in Schicht l;
- dzl: Ableitung des Verlusts bezüglich der Präaktivierungen in Schicht l (vor Anwendung der Aktivierungsfunktion);
- dWl: Ableitung des Verlusts bezüglich der Gewichte in Schicht l;
- dbl: Ableitung des Verlusts bezüglich der Biases in Schicht l.
Gradientenberechnung für die Ausgabeschicht
In der letzten Schicht n besteht der erste Schritt darin, den Gradienten des Verlusts bezüglich der Aktivierungen der Ausgabeschicht, bezeichnet als dan, zu berechnen.
Anschließend wird mithilfe der Kettenregel der Gradient des Verlusts bezüglich der Präaktivierungen der Ausgabeschicht wie folgt berechnet:
dzn=dan⊙f′n(zn)Hierbei steht f′n(zn) für die Ableitung der Aktivierungsfunktion in Schicht n, und das Symbol ⊙ bezeichnet die elementweise Multiplikation.
Das Symbol ⊙ bezeichnet die elementweise Multiplikation, bei der jedes Element eines Vektors mit dem entsprechenden Element eines anderen Vektors multipliziert wird. Im Gegensatz dazu steht das Symbol ⋅ für das Skalarprodukt, das bei der üblichen Matrix- oder Vektormultiplikation verwendet wird. Der Ausdruck f′n bezeichnet die Ableitung der Aktivierungsfunktion in der Ausgabeschicht.
Dieser Wert gibt an, wie empfindlich die Verlustfunktion auf Änderungen der Voraktivierungswerte der Ausgabeschicht reagiert.
Nach der Berechnung von dzn besteht der nächste Schritt darin, die Gradienten für die Gewichte und Biases zu berechnen:
dWndbn=dzn⋅(an−1)T,=dznDiese Gradienten beschreiben, wie stark jedes Gewicht und jeder Bias in der Ausgabeschicht angepasst werden sollte, um den Verlust zu verringern.
Hierbei ist (an−1)T der transponierte Aktivierungsvektor der vorherigen Schicht. Wenn der ursprüngliche Vektor die Form nneurons×1 hat, besitzt seine Transponierte die Form 1×nneurons.
Um die Rückpropagation fortzusetzen, wird die Ableitung des Verlusts bezüglich der Aktivierungen der vorherigen Schicht wie folgt berechnet:
dan−1=(Wn)T⋅dznDieser Ausdruck ermöglicht es, das Fehlersignal rückwärts durch das Netzwerk zu leiten, sodass frühere Schichten während des Trainings angepasst werden können.
Gradientenweitergabe an die versteckten Schichten
Für jede versteckte Schicht l ist das Vorgehen identisch. Gegeben dal:
- Berechnung der Ableitung des Verlusts bezüglich der Voraktivierungen;
- Berechnung der Gradienten für die Gewichte und Biases;
- Berechnung von dal−1 zur Weitergabe der Ableitung nach hinten.
Dieser Prozess wird für jede vorhergehende Schicht schrittweise wiederholt, bis die Eingabeschicht erreicht ist.
Aktualisierung von Gewichten und Biases
Nach der Berechnung der Gradienten für alle Schichten werden die Gewichte und Biases mithilfe des Gradientenabstiegs-Algorithmus aktualisiert:
Wlbl=Wl−α⋅dWl,=bl−α⋅dbl.Hierbei steht α für die Lernrate, die steuert, wie stark die Parameter bei jedem Trainingsschritt angepasst werden.
Hierbei ist α die Lernrate, ein Hyperparameter, der die Größe der Anpassung der Gewichte und Biases bei jedem Aktualisierungsschritt bestimmt.
Danke für Ihr Feedback!