Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Backpropagation

Fehlerrückführung bzw. Rückpropagierung ist ein verbreitetes Verfahren zum Einlernen künstlicher neuronaler Netze. Es gehört in der einfachen Form zur Gruppe …

Inhalt5 Abschnitte
  1. 1. Grundidee und Ablauf
  2. 2. Fehlerfunktion und Ziel der Anpassung
  3. 3. Neuron, Kettenregel und Fehlersignale
  4. 4. Aktivierungsfunktionen
  5. 5. Lernrate und Erweiterungen

Grundidee und Ablauf

Backpropagation (auch „Backpropagation of Error“, Fehlerrückführung oder Rückpropagierung) ist ein verbreitetes Verfahren zum Einlernen künstlicher neuronaler Netze. In seiner einfachen Form gehört es zu den überwachten Lernverfahren und ist eine Verallgemeinerung der Delta-Regel auf mehrschichtige Netze. Mathematisch ist es ein Spezialfall eines allgemeinen Gradientenverfahrens der Optimierung, das auf dem mittleren quadratischen Fehler basiert.

Ein neuronales Netz erhält numerische Eingabedaten und bildet sie auf einen Ausgabewert oder Ausgabevektor ab. In jeder Schicht werden die Eingaben mit einer Matrix von Gewichten multipliziert. Diese Gewichte sind die Parameter des Netzes. Beim Training wird die Ausgabe des Netzes mit einem Zielwert eines externen Lehrers verglichen. Der dabei entstehende Fehler wird rückwärts durch die Schichten propagiert. Dadurch lässt sich bestimmen, welche Verbindungen besonders stark zum Fehler beitragen. Ihre Gewichte werden anschließend verstärkt oder abgeschwächt, damit sich die Ausgabe bei einer erneuten Eingabe der gewünschten Ausgabe annähert.

Der Ablauf besteht aus drei Grundphasen: Ein Eingabemuster wird vorwärts durch das Netz propagiert, die Netzausgabe wird mit der gewünschten Ausgabe verglichen, und der Fehler wird von der Ausgabe- zurück zur Eingabeschicht propagiert. Die Gewichte werden abhängig von ihrem Einfluss auf den Fehler verändert. In weiterentwickelten Architekturen, etwa bei AlphaGo, kann der Zielwert auch aus anderen Teilen der Architektur stammen; ein menschlicher externer Lehrer ist dann nicht unbedingt erforderlich.

Fehlerfunktion und Ziel der Anpassung

Die Qualität der Abbildung von Eingabevektoren auf Ausgabevektoren wird durch eine Fehlerfunktion beschrieben. Im Artikel wird der quadratische Fehler verwendet:

E = ½ · ∑ᵢ₌₁ⁿ (tᵢ − oᵢ)².

Dabei bezeichnet E den Fehler, n die Anzahl der Ausgabe-Neuronen, tᵢ die gewünschte Soll-Ausgabe beziehungsweise den Zielwert (target) und oᵢ die errechnete Ist-Ausgabe (output). Der Faktor ½ dient lediglich der Vereinfachung der Ableitung.

Ziel des Lernens ist die Minimierung dieser Fehlerfunktion. Im Allgemeinen wird dabei nur ein lokales Minimum gefunden. Da die Netzausgabe – abgesehen von der Aktivierungsfunktion – direkt von den Gewichten abhängt, erfolgt das Einlernen durch deren Änderung. Das Gradientenverfahren bewegt sich auf der Fehleroberfläche in Richtung des stärksten Abfalls der Fehlerfunktion. Bei einem Neuron mit zwei Eingaben x₁ und x₂ und den Gewichten w₁ und w₂ kann diese Fehleroberfläche Minima besitzen, die durch diesen Abstieg gesucht werden.

Neuron, Kettenregel und Fehlersignale

Für ein künstliches Neuron j wird die Ausgabe durch oⱼ = φ(netⱼ) bestimmt. Die Netzeingabe lautet netⱼ = ∑ᵢ₌₁ⁿ xᵢwᵢⱼ. Dabei ist φ eine differenzierbare Aktivierungsfunktion, deren Ableitung nicht überall gleich null ist; n ist die Anzahl der Eingaben; xᵢ ist die Eingabe i; und wᵢⱼ ist die Gewichtung der Verbindung von Eingabe i zu Neuron j. Ein separater Schwellwert θⱼ wird nicht verwendet. Er kann durch ein stets „feuerndes“ on-Neuron mit dem konstanten Ausgangswert 1 realisiert werden.

Die partielle Ableitung des Fehlers nach einem Gewicht wird mithilfe der Kettenregel berechnet:

∂E/∂wᵢⱼ = (∂E/∂oⱼ) · (∂oⱼ/∂netⱼ) · (∂netⱼ/∂wᵢⱼ).

Die Gewichtsänderung ist

Δwᵢⱼ = −η · (∂E/∂wᵢⱼ) = −ηδⱼoᵢ.

η ist die feste Lernrate und bestimmt die Stärke der Gewichtsänderung. δⱼ ist das Fehlersignal des Neurons j und entspricht ∂E/∂netⱼ. Für ein Neuron der Ausgabeschicht gilt:

δⱼ = φ′(netⱼ)(oⱼ − tⱼ).

Für ein Neuron einer verdeckten Schicht, also einer nicht direkt sichtbaren Zwischenschicht, gilt:

δⱼ = φ′(netⱼ) · ∑ₖ δₖwⱼₖ.

Das Fehlersignal eines verdeckten Neurons wird somit aus den Fehlersignalen der nachfolgenden Neuronen berechnet. Bei einem einschichtigen Netzwerk gilt oᵢ = xᵢ. Die Gewichte werden schließlich aktualisiert mit

wᵢⱼⁿᵉᵘ = wᵢⱼᵃˡᵗ + Δwᵢⱼ.

Die Kettenregel erklärt das Rückwärtsarbeiten: Man beginnt beim Fehler, geht jeweils ein Neuron zurück und bildet die partielle Ableitung des aktuellen Neurons nach dem Neuron der vorhergehenden Schicht. Die einzelnen Ableitungen werden miteinander verkettet. Für Matrizen und Vektoren lautet die entsprechende Form ∂E/∂W = (∂E/∂O)(∂O/∂Net)(∂Net/∂W). Bei der umgekehrten Differentiation werden Ableitungssignale durch einen Berechnungsgraphen zurückpropagiert. Obwohl eine allgemeine Matrixformel Summen über viele Indizes enthält, müssen wegen der Struktur von Matrixfunktionen normalerweise nicht alle möglichen Terme einzeln berechnet werden.

Aktivierungsfunktionen

Für das Gradientenverfahren muss die Fehlerfunktion stetig und differenzierbar sein. Deshalb benötigt ein Backpropagation-Netz eine geeignete differenzierbare Aktivierungsfunktion. Eine der beliebtesten Funktionen ist die Sigmoidfunktion

s_c(x) = 1/(1 + e^(−cx)).

Die Konstante c ist frei wählbar; ihr Kehrwert 1/c wird in stochastischen neuronalen Netzen Temperaturparameter genannt. Mit zunehmendem c nähert sich die Form des Sigmoids der Heaviside-Funktion an. Für c → ∞ konvergiert das Sigmoid gegen eine Heaviside-Funktion. Seine Ableitung lautet

∂s_c(x)/∂x = c · e^(−cx)/(1 + e^(−cx))² = c · s_c(x) · (1 − s_c(x)).

Eine Alternative ist das symmetrische Sigmoid:

S(x) = 2s(x) − 1 = (1 − e^(−x))/(1 + e^(−x)) = tanh(x/2).

Der Backpropagation-Algorithmus kann auch mit anderen Aktivierungsfunktionen verwendet werden, sofern die von der Netzstruktur berechnete Funktion differenzierbar bleibt. Das gilt, weil ein neuronales Netz aus zusammengesetzten Funktionen besteht und die Netzeingabe an jedem Knoten als Summe der Eingaben gebildet wird.

Lernrate und Erweiterungen

Die Wahl der Lernrate η ist entscheidend. Ein zu hoher Wert kann zu starken Änderungen führen, sodass das Minimum verfehlt wird. Ein zu kleiner Wert verlangsamt das Einlernen unnötig. Optimierungen wie Quickprop sollen vor allem die Fehlerminimierung beschleunigen; andere Erweiterungen zielen auf eine höhere Zuverlässigkeit.

Bei einer variablen Lernrate wird versucht, Oszillationen des Netzes zu vermeiden, bei denen die Verbindungsgewichte abwechselnd in verschiedene Richtungen verändert werden.

Eine weitere Erweiterung ist der Trägheitsterm (Momentum) mit dem Parameter α. Er macht die aktuelle Gewichtsänderung zusätzlich von der vorherigen Änderung abhängig:

Δwᵢⱼ(t + 1) = (1 − α)ηδⱼxᵢ + αΔwᵢⱼ(t).

Der erste Summand berücksichtigt den aktuellen Gradienten der Fehlerfunktion, der zweite die Gewichtsänderung zum vorherigen Zeitpunkt. Für α = 0 hängt die Änderung allein vom Gradienten ab, für α = 1 lediglich von der letzten Änderung. Der Trägheitsterm kann Probleme in steilen Schluchten und auf flachen Plateaus der Fehleroberfläche verringern. Auf einem flachen Plateau ist der Gradient sehr klein; ohne Momentum würde der Abstieg daher unmittelbar abbremsen. Die zusätzliche Berücksichtigung der vorherigen Änderung kann dieses Abbremsen verzögern.

Zusammengefasst werden die Fehlersignale in einer Ausgabeschicht mit δⱼᴸ = (∂E/∂oⱼᴸ)φ′(netⱼᴸ) und in einer verdeckten Schicht mit δⱼˡ = ((wˡ⁺¹)ᵀδˡ⁺¹) ∘ φ′(netⱼˡ) berechnet. Danach ergeben sich die Gradienten der Gewichte und Schwellenwerte aus ∂E/∂wᵢⱼᴸ = oⱼˡ⁻¹δᵢˡ und ∂E/∂tⱼᴸ = δⱼˡ. Der vollständige Rechengang setzt zunächst die Aktivierung der Eingabeschicht, berechnet anschließend die Vorwärtsaktivierungen für l = 2, 3, …, L und bestimmt danach die Fehlersignale rückwärts für l = L − 1, L − 2, …, 2. Sobald der Fehler minimal ist, kann das Einlernen beendet werden; das mehrschichtige Netz ist dann bereit, die erlernten Muster zu klassifizieren.

Lernvideos zu Backpropagation

Weiterlesen

Maschinelles Lernen Maschinelles Lernen (ML) entwickelt, untersucht und verwendet statistische Algorithmen, auch Lernalgorithmen genannt. Solche Algorithmen können lernen, … Künstliches neuronales Netz Ein künstliches neuronales Netz besteht aus mehreren künstlichen Neuronen, die miteinander verbunden sind und in der Regel in Schichten organisiert werden. Im … Überwachtes Lernen Überwachtes Lernen (englisch supervised learning) ist eine wichtige Kategorie des Maschinellen Lernens. Dabei wird ein Lernalgorithmus mit Datensätzen … Zahl Zahlen sind abstrakte mathematische Objekte beziehungsweise Objekte des Denkens, die sich historisch aus Vorstellungen von Größe und Anzahl entwickelten. Matrix (Mathematik) In der Mathematik versteht man unter einer Matrix (Plural Matrizen) eine rechteckig angeordnete Tabelle von sogenannten Elementen. Gewichtung Unter Gewichtung (auch Wichtung, Wägungsschema) versteht man die Bewertung einzelner Einflussgrößen eines mathematischen Modells beispielsweise hinsichtlich … Parameter (Mathematik) Als Parameter (griechisch παρά para, deutsch ‚neben' und μέτρον metron ‚Maß'), auch Formvariable, wird in der Mathematik eine Variable bezeichnet, … Subtraktion Die Subtraktion (von lat. subtrahere „wegziehen“, „entfernen“), umgangssprachlich auch Minusrechnen genannt, ist eine der vier Grundrechenarten der … AlphaGo AlphaGo ist ein Computerprogramm, das das Brettspiel Go spielt und von DeepMind entwickelt wurde und sich auch gegen professionelle Spieler durchsetzen … Algorithmus Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten. ... Damit können sie zur Ausführung in ein Computerprogramm implementiert, aber auch in … Englische Sprache Die englische Sprache (Eigenbezeichnung: [ˈɪŋɡlɪʃ]) ist eine ursprünglich in England beheimatete germanische Sprache, die zum westgermanischen Zweig gehört. Funktion (Mathematik) In der Mathematik ist eine Funktion (lateinisch functio) oder Abbildung eine Beziehung (Relation) zwischen zwei Mengen, die jedem Element der einen Menge …