Stummel Was ist Backpropagation? - Unite.AI
Vernetzen Sie sich mit uns

AI 101

Was ist Backpropagation?

mm
Aktualisiert on

Was ist Backpropagation?

Deep-Learning-Systeme sind in der Lage, extrem komplexe Muster zu lernen und erreichen dies durch die Anpassung ihrer Gewichte. Wie werden die Gewichte eines tiefen neuronalen Netzwerks genau angepasst? Sie werden durch angepasst ein Prozess namens Backpropagation. Ohne Backpropagation wären tiefe neuronale Netze nicht in der Lage, Aufgaben wie das Erkennen von Bildern und das Interpretieren natürlicher Sprache auszuführen. Um zu verstehen, wie Backpropagation funktioniert, ist es von entscheidender Bedeutung, tiefe neuronale Netze im Allgemeinen zu verstehen. Lassen Sie uns daher Backpropagation besprechen und sehen, wie der Prozess zum Anpassen der Gewichte eines Netzwerks verwendet wird.

Backpropagation kann schwer zu verstehen sein und die zur Durchführung der Backpropagation verwendeten Berechnungen können recht komplex sein. Ziel dieses Artikels ist es, Ihnen ein intuitives Verständnis der Backpropagation zu vermitteln und dabei nur wenig komplexe Mathematik zu verwenden. Allerdings ist eine Diskussion der Mathematik hinter der Backpropagation notwendig.

Das Ziel der Backpropagation

Beginnen wir mit der Definition des Ziels der Backpropagation. Die Gewichte eines tiefen neuronalen Netzwerks sind die Stärke der Verbindungen zwischen Einheiten eines neuronalen Netzwerks. Bei der Einrichtung des neuronalen Netzwerks werden Annahmen darüber getroffen, wie die Einheiten in einer Schicht mit den damit verbundenen Schichten verbunden sind. Während sich die Daten durch das neuronale Netzwerk bewegen, werden die Gewichte berechnet und Annahmen getroffen. Wenn die Daten die letzte Schicht des Netzwerks erreichen, wird eine Vorhersage darüber getroffen, wie die Features mit den Klassen im Datensatz zusammenhängen. Der Unterschied zwischen den vorhergesagten Werten und den tatsächlichen Werten ist der Verlust/Fehler und das Ziel der Backpropagation besteht darin, den Verlust zu reduzieren. Dies wird erreicht, indem die Gewichte des Netzwerks angepasst werden, sodass die Annahmen eher den wahren Beziehungen zwischen den Eingabemerkmalen ähneln.

Training eines tiefen neuronalen Netzwerks

Bevor die Rückausbreitung auf a erfolgen kann neuronale Netzwerk, muss der reguläre/Vorwärts-Trainingsdurchlauf eines neuronalen Netzes durchgeführt werden. Wenn ein neuronales Netzwerk erstellt wird, wird eine Reihe von Gewichten initialisiert. Der Wert der Gewichte ändert sich, während das Netzwerk trainiert wird. Der Vorwärtstrainingsdurchlauf eines neuronalen Netzwerks kann als drei diskrete Schritte betrachtet werden: Neuronenaktivierung, Neuronentransfer und Vorwärtsausbreitung.

Beim Training eines tiefen neuronalen Netzwerks müssen wir mehrere mathematische Funktionen nutzen. Neuronen in einem tiefen neuronalen Netzwerk bestehen aus den eingehenden Daten und einer Aktivierungsfunktion, die den zur Aktivierung des Knotens erforderlichen Wert bestimmt. Der Aktivierungswert eines Neurons wird aus mehreren Komponenten berechnet, die eine gewichtete Summe der Eingaben darstellen. Die Gewichte und Eingabewerte hängen vom Index der Knoten ab, die zur Berechnung der Aktivierung verwendet werden. Bei der Berechnung des Aktivierungswerts muss eine weitere Zahl berücksichtigt werden, ein Bias-Wert. Bias-Werte schwanken nicht, daher werden sie nicht mit der Gewichtung und den Eingaben multipliziert, sondern nur addiert. All dies bedeutet, dass die folgende Gleichung zur Berechnung des Aktivierungswerts verwendet werden könnte:

Aktivierung = Summe(Gewicht * Eingabe) + Bias

Nachdem das Neuron aktiviert wurde, wird eine Aktivierungsfunktion verwendet, um zu bestimmen, wie die tatsächliche Ausgabe des Neurons aussehen wird. Verschiedene Aktivierungsfunktionen sind für unterschiedliche Lernaufgaben optimal. Zu den häufig verwendeten Aktivierungsfunktionen gehören jedoch die Sigmoidfunktion, die Tanh-Funktion und die ReLU-Funktion.

Sobald die Ausgaben des Neurons berechnet sind, indem der Aktivierungswert durch die gewünschte Aktivierungsfunktion laufen gelassen wird, erfolgt die Vorwärtsausbreitung. Bei der Vorwärtsausbreitung werden lediglich die Ausgaben einer Schicht zu Eingaben der nächsten Schicht gemacht. Die neuen Eingaben werden dann zur Berechnung der neuen Aktivierungsfunktionen verwendet und die Ausgabe dieser Operation an die folgende Ebene weitergeleitet. Dieser Prozess setzt sich bis zum Ende des neuronalen Netzwerks fort.

Backpropagation im Netzwerk

Der Backpropagation-Prozess berücksichtigt die endgültigen Entscheidungen des Trainingsdurchlaufs eines Modells und bestimmt dann die Fehler in diesen Entscheidungen. Die Fehler werden durch Gegenüberstellung der Ergebnisse/Entscheidungen des Netzwerks und der erwarteten/gewünschten Ergebnisse des Netzwerks berechnet.

Sobald die Fehler in den Entscheidungen des Netzwerks berechnet wurden, werden diese Informationen durch das Netzwerk zurückpropagiert und die Parameter des Netzwerks werden dabei geändert. Die Methode, die zum Aktualisieren der Gewichte des Netzwerks verwendet wird, basiert auf der Analysis, insbesondere auf der Kettenregel. Allerdings ist kein Verständnis der Analysis erforderlich, um die Idee hinter der Backpropagation zu verstehen. Sie müssen lediglich wissen, dass, wenn ein Ausgabewert von einem Neuron bereitgestellt wird, die Steigung des Ausgabewerts mit einer Übertragungsfunktion berechnet wird, wodurch eine abgeleitete Ausgabe entsteht. Bei der Backpropagation wird der Fehler für ein bestimmtes Neuron wie folgt berechnet Formel:

Fehler = (erwartete_Ausgabe – tatsächliche_Ausgabe) * Steigung des Ausgabewerts des Neurons

Bei der Bearbeitung der Neuronen in der Ausgabeschicht wird der Klassenwert als erwarteter Wert verwendet. Nachdem der Fehler berechnet wurde, wird der Fehler als Eingabe für die Neuronen in der verborgenen Schicht verwendet, was bedeutet, dass der Fehler für diese verborgene Schicht die gewichteten Fehler der innerhalb der Ausgabeschicht gefundenen Neuronen ist. Die Fehlerberechnungen wandern rückwärts durch das Netzwerk entlang des Gewichtungsnetzwerks.

Nachdem die Fehler für das Netzwerk berechnet wurden, müssen die Gewichte im Netzwerk aktualisiert werden. Wie bereits erwähnt, umfasst die Berechnung des Fehlers die Bestimmung der Steigung des Ausgabewerts. Nachdem die Steigung berechnet wurde, kann ein Prozess namens Gradientenabstieg verwendet werden, um die Gewichte im Netzwerk anzupassen. Ein Gefälle ist ein Gefälle, dessen Winkel/Steilheit gemessen werden kann. Die Steigung wird berechnet, indem „y über“ oder der „Anstieg“ über dem „Lauf“ aufgetragen wird. Im Fall des neuronalen Netzwerks und der Fehlerrate ist „y“ der berechnete Fehler, während „x“ die Parameter des Netzwerks sind. Die Parameter des Netzwerks stehen in Beziehung zu den berechneten Fehlerwerten, und wenn die Gewichte des Netzwerks angepasst werden, nimmt der Fehler zu oder ab.

Beim „Gradientenabstieg“ werden die Gewichte aktualisiert, sodass die Fehlerrate sinkt. Backpropagation wird verwendet, um die Beziehung zwischen den Parametern des neuronalen Netzwerks und der Fehlerrate vorherzusagen, die das Netzwerk für den Gradientenabstieg einrichtet. Das Training eines Netzwerks mit Gradientenabstieg umfasste die Berechnung der Gewichte durch Vorwärtsausbreitung, Rückwärtsausbreitung des Fehlers und anschließende Aktualisierung der Gewichte des Netzwerks.

Blogger und Programmierer mit Spezialisierung auf Maschinelles lernen und Tiefes Lernen Themen. Daniel hofft, anderen dabei zu helfen, die Macht der KI für das soziale Wohl zu nutzen.