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 Prä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:
- Durchführung der Vorwärtspropagation, um die Ausgaben zu erhalten;
- Berechnung der Ableitung des Verlusts in Bezug auf die Präaktivierung des Ausgangs;
- Rückpropagieren dieser Ableitung durch die Schichten mithilfe der Kettenregel;
- Berechnung und Verwendung der Gradienten für Gewichte und Biases, 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, Biases oder Aktivierungen die Verlustfunktion beeinflusst und steuern so den Lernprozess des Modells durch den Gradientenabstieg.
Notation
Zur besseren Verständlichkeit verwenden wir folgende Notation:
- Wl ist die Gewichtsmatrix der Schicht l;
- bl ist der Bias-Vektor der Schicht l;
- zl ist der Präaktivierungsvektor der Schicht l;
- al ist der Aktivierungsvektor der Schicht l;
Wenn a0 auf x (die Eingaben) gesetzt wird, kann die Vorwärtspropagation in einem Perzeptron mit n Schichten durch folgende Operationsfolge 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 bezieht sich auf 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 bestimmen:
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ückwärtspropagation 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 Vorgang 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
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 Prä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:
- Durchführung der Vorwärtspropagation, um die Ausgaben zu erhalten;
- Berechnung der Ableitung des Verlusts in Bezug auf die Präaktivierung des Ausgangs;
- Rückpropagieren dieser Ableitung durch die Schichten mithilfe der Kettenregel;
- Berechnung und Verwendung der Gradienten für Gewichte und Biases, 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, Biases oder Aktivierungen die Verlustfunktion beeinflusst und steuern so den Lernprozess des Modells durch den Gradientenabstieg.
Notation
Zur besseren Verständlichkeit verwenden wir folgende Notation:
- Wl ist die Gewichtsmatrix der Schicht l;
- bl ist der Bias-Vektor der Schicht l;
- zl ist der Präaktivierungsvektor der Schicht l;
- al ist der Aktivierungsvektor der Schicht l;
Wenn a0 auf x (die Eingaben) gesetzt wird, kann die Vorwärtspropagation in einem Perzeptron mit n Schichten durch folgende Operationsfolge 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 bezieht sich auf 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 bestimmen:
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ückwärtspropagation 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 Vorgang 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!