Backpropagation verständlich erklärt
Zwei Lichtschalter, eine Lampe: Dieses Rätsel kann ein einfaches Rechenverfahren, das nur eine gerade Linie zieht, nicht lösen. Diese Seite zeigt, wie ein Verfahren mit einer Zwischenstufe es trotzdem lernt, indem es seine Fehler zurückverfolgt, und warum das nicht aus jedem Start gelingt.
Zuletzt aktualisiert:
Ein Wort unbekannt? Das Begriffsverzeichnis erklärt es in wenigen Sätzen.
Zwei Schalter und eine Lampe
Im Treppenhaus hängt eine Lampe mit zwei Schaltern, einer unten und einer oben an der Treppe. Die Lampe brennt, wenn die beiden Schalter verschieden stehen. Stehen beide oben oder beide unten, bleibt sie aus.
Ein Rechenverfahren soll diese Regel aus Beispielen lernen. Dazu wird jeder Fall ein Punkt auf einem Plan. Der erste Schalter bestimmt, ob der Punkt links oder rechts liegt, der zweite, ob oben oder unten. So entstehen vier Ecken. Zwei gegenüberliegende Ecken bedeuten Licht an, die beiden anderen Licht aus.
Das einfachste lernende Verfahren zieht auf dem Plan eine einzige gerade Linie. Eine Seite heißt ja, die andere nein. Hier scheitert es. Die zwei hellen Ecken liegen sich gegenüber, ebenso die zwei dunklen. Verbindet man die hellen Ecken und ebenso die dunklen, entstehen die beiden Diagonalen eines Quadrats. Sie kreuzen sich in der Mitte. Eine trennende Linie müsste diesen Kreuzungspunkt auf beide Seiten zugleich legen. Das geht nicht.
Der Umweg über Zwischenfragen
Von Hand löst man das Rätsel mit zwei Zwischenfragen. Erstens: Steht mindestens ein Schalter oben? Zweitens: Stehen beide oben? Die Lampe brennt, wenn die erste Antwort ja und die zweite nein lautet.
Jede Frage lässt sich auf dem Plan mit einer Linie beantworten. Die erste Linie schneidet die Ecke ab, in der beide Schalter unten stehen. Die zweite schneidet die Ecke ab, in der beide oben stehen. Die hellen Ecken liegen zwischen den Linien.
Ein Netz aus Rechenstufen mit einer Zwischenschicht arbeitet genauso. Die Zwischenschicht besteht aus kleinen Rechenbausteinen, den Einheiten. Jede Einheit stellt eine solche Frage, wie ein Prüfer am Band, der nur eine einzige Sache kontrolliert. Sie antwortet nicht nur mit Ja oder Nein, sondern mit einem Wert dazwischen: nahe bei Nein, nahe bei Ja oder unentschieden. Die letzte Stufe wägt die Antworten ab und entscheidet: Licht an oder aus. Fachleute nennen die Zwischenschicht verdeckt, weil man ihre Antworten von außen nicht sieht.
Mit nur einer Einheit geht es nicht. In diesem Aufbau kommt das Ergebnis nur aus den Antworten der Einheiten. Mit einer Einheit hängt es also allein von einer einzigen Frage ab, und die ist wieder nur eine Linie. Zwei Einheiten genügen dagegen der Möglichkeit nach. Ob das Lernen sie findet, ist eine andere Frage.
Wie das Netz seine Fragen selbst lernt
Niemand schreibt dem Netz die Fragen vor. Es hat viele Regler, Fachleute sagen Gewichte. Sie legen fest, was jede Einheit fragt und wie stark ihre Antwort zählt. Anfangs stehen die Regler zufällig. Das Netz bekommt einen Fall und antwortet. Bei einer richtigen Antwort bleibt alles, wie es ist. Bei einer falschen werden die Regler nachgestellt.
Das gleicht einem Mischpult mit zwei Stufen. Der Ton kommt falsch heraus. Welchen Regler drehen Sie, und wie weit? Das hängt davon ab, wie stark er den Ton am Ende beeinflusst. Bei der letzten Stufe sieht man das direkt, dort entsteht der Ton. Bei der ersten kommt es darauf an, wie viel die letzte von ihrem Signal weitergibt.
Deshalb beginnt das Verfahren hinten und arbeitet sich nach vorn. Erst fragt es, was jeder Regler der letzten Stufe am Fehler ändert. Daraus folgt, wie stark die Zwischenschicht beteiligt war. Dann wird jeder Regler ein kleines Stück gedreht, in die Richtung, die den Fehler verkleinert. Wie groß dieses Stück ist, heißt Schrittgröße. Das Zurückrechnen heißt Backpropagation, wörtlich Rückwärtsweitergabe des Fehlers.
Das wiederholt sich für alle Fälle, Durchgang um Durchgang. Ein Durchgang über alle Fälle heißt Epoche. Gibt es in einer ganzen Epoche keine Korrektur mehr, ist das Netz fertig.
Was die Demo zeigt
Zum Ausprobieren gibt es ein kleines Programm im Browser, die Demo. Sie erzeugt Fälle als Punktwolken um die vier Ecken und lässt das Netz lernen. Der erste Knopf unten öffnet sie, der zweite führt zum zweiten Teil für Fachleute. Zum Verstehen brauchen Sie sie nicht.
Die Demo zählt, wie oft das Lernen gelingt. Jeder Versuch beginnt mit anderen zufälligen Reglerstellungen, je Größe des Netzes sind es 30 Versuche. Gelungen heißt: eine ganze Epoche ohne Korrektur, spätestens in der letzten erlaubten Epoche. Voreingestellt sind höchstens 500 Epochen.
- 0 Einheiten (keine Zwischenschicht, die Antwort kommt direkt aus den Schaltern): 0 von 30 Versuchen gelungen. Das ist die einzelne Linie.
- 1 Einheit: 0 von 30 gelungen. Eine Frage ergibt wieder nur eine Linie.
- 2 Einheiten: 9 von 30 gelungen.
- 3 Einheiten: 30 von 30 gelungen. Auch in größeren Netzen scheiterte in den Tests höchstens ein Versuch von 30.
Zwei Einheiten reichen also nur manchmal. Dabei genügen sie der Möglichkeit nach: Die Demo enthält Reglerwerte, die ein Mensch von Hand ausgerechnet hat. Zwei Einheiten stellen genau die zwei Fragen aus dem Treppenhaus. Ohne jedes Lernen ordnet dieses Netz alle Punkte richtig ein, an denen die Demo es geprüft hat. Die Lösung hat also Platz. Nur findet das Lernen sie nicht aus jedem Start.
Ein Bild dazu ist eine Wanderung im Nebel: Wer immer bergab geht, kann in einer Mulde enden, die nicht der tiefste Ort ist. Ob das hier der Grund ist, ist nicht gemessen. Gemessen ist, dass kleinere Schritte und mehr Epochen es klar öfter gelingen ließen (Nachmessung dieser Seite).
Eine Überraschung: Dreht man die Regler „mit Schwung“, sodass sie wie ein rollender Ball in einmal gewählter Richtung weiterlaufen, gelang es bei gleicher Schrittgröße in 0 von 10 Versuchen. Das einfache Nachstellen schaffte 7 von 10. Vermutlich schießt der Schwung über das Ziel hinaus, untersucht ist das nicht. Bei kleinerer Schrittgröße gelang er 10 von 10 Mal (Nachmessung dieser Seite). Es kommt auf die Einstellung an.
Häufige Missverständnisse
- „Backpropagation heißt, das Netz rechnet auch rückwärts.“ Nein. Antworten entstehen von den Schaltern zur Lampe. Nur beim Lernen wird der Fehler zurückverfolgt, um die Regler zu verteilen.
- „Ein gelungener Lauf zeigt, was das Netz kann.“ Nein. Bei gleicher Größe gelang es mal, mal nicht, je nach Zufallsstart. Erst viele Starts zeigen, wie verlässlich es ist.
Woran Sie das im Alltag erkennen
Drei Fragen helfen bei „lernender Software“:
- Lautet die Regel „das eine oder das andere, aber nicht beides“, etwa ein Gericht, das mit Zutat A oder B gelingt, mit beiden verdirbt? Dann reicht eine einzelne Trennlinie nicht.
- Wird ein Erfolg gezeigt: Wie oft wurde mit anderem Zufallsstart wiederholt? Ein einzelner glücklicher Lauf sagt wenig.
- Werden zwei Lernverfahren verglichen: Hatte jedes seine eigene passende Schrittgröße? Sonst misst der Vergleich vielleicht nur die Einstellung.
Wie ernst ist das Modell zu nehmen?
Die Demo ist ein vereinfachtes Rechenbild, ein Modell: erfundene Punkte um vier Ecken, eine einzige Zwischenschicht, keine echten Daten. Sie prüft nur die Punkte, an denen gelernt wird, nicht neue Fälle. Alle Aussagen in diesem Teil beschreiben dieses Beispielmodell, nicht die Wirklichkeit.
Was Sie mitnehmen:
- Reicht eine einzelne Regel nicht, kann eine Zwischenstufe helfen, die erst einfache Teilfragen beantwortet.
- Dass eine Lösung möglich ist, heißt nicht, dass Lernen sie auch findet. Zählen Sie, wie oft.
- Ein Vergleich von Lernverfahren zählt nur, wenn jedes fair eingestellt war.
Hinweis: Alle Demos rechnen mit synthetischen oder frei verfügbaren Beispieldaten und laufen auf einem externen Anbieter (Datenschutz). Bitte geben Sie darin keine vertraulichen oder personenbezogenen Daten ein. Die Ergebnisse gelten für die jeweilige Demo-Instanz und lassen sich nicht ungeprüft auf reale Fälle übertragen; für darauf gestützte Entscheidungen übernehme ich keine Gewähr.
Modell und Annahmen
Dieser Teil fasst die Demo formal zusammen. „Rechnung dieser Seite“ kennzeichnet Standardwissen oder eigene Nachrechnung, keine Messung der Demo; „Nachmessung dieser Seite“ eine eigene Wiederholung der Demo-Rechnung mit anderen Einstellungen, ohne Anspruch auf Vollständigkeit.
- Netz: Eingabe \(x \in \mathbb{R}^2\), \(m\) verdeckte Einheiten mit tanh-Aktivierung (Regler 0–8; die Demo nennt diese Zahl ebenfalls \(h\), hier \(m\), damit \(h\) den Aktivierungsvektor bezeichnet), linearer Ausgang, keine direkte Verbindung von der Eingabe zum Ausgang. Parameter: \(W_1 \in \mathbb{R}^{m\times 2}\), \(b_1 \in \mathbb{R}^m\), \(w_2 \in \mathbb{R}^m\), \(b_2 \in \mathbb{R}\). Bei \(m=0\) ist die Ausgabe \(s = w\cdot x + b\) mit \(w \in \mathbb{R}^2\). Die Klasse ist \(+1\) bei \(s \ge 0\), sonst \(-1\). Start: Xavier-Initialisierung, also Einträge von \(W_1\) und \(w_2\) gleichverteilt in \([-\ell, \ell]\) mit \(\ell = \sqrt{6/(n_\text{ein}+n_\text{aus})}\), wobei \(n_\text{ein}\) und \(n_\text{aus}\) die Zahl der Eingänge und Ausgänge der Schicht sind (für \(W_1\) also 2 und \(m\), für \(w_2\) \(m\) und 1); Verschiebungen null. Ein Zufallsstart legt die Ziehung fest.
- Verlust und Lernen: Perceptron-Kriterium \(L = \max(0, -y s)\) mit \(y \in \{-1,+1\}\), punktweise (online) in fester Reihenfolge. Ein Update (Aufruf des Optimierers mit dem Gradienten) erfolgt nur bei \(y s \le 0\). Bei \(y s = 0\) hat \(L\) einen Knick; als Subgradienten, einer der möglichen Steigungen dort, nutzt die Demo \(-y\). Eine Epoche ist ein Durchlauf über alle Punkte. Konvergenz heißt für alle drei Optimierer gleich: eine Epoche, in der kein Punkt ein Update auslöst, also \(y s > 0\) bei jedem Punkt im Moment seines Besuchs. Bei Punkten ohne Update wird der Optimierer nicht aufgerufen, Geschwindigkeit (Momentum) und Mittelwerte (Adam) bleiben unverändert. Eine Epoche ohne Update lässt deshalb Parameter und Optimierer-Zustand unverändert, jede weitere Epoche wäre identisch (Rechnung dieser Seite aus dem Ablauf der Demo). Das Kriterium misst das Ende des Lernens durch strikte Einordnung aller Lernpunkte, nicht die Stabilität eines Optimierers. Sonst endet der Lauf bei der eingestellten Höchstzahl an Epochen (voreingestellt 500); gelingt die fehlerfreie Epoche erst als letzte erlaubte, zählt sie noch.
- XOR-Szenario: vier Wolken mit gleich vielen Punkten (insgesamt \(n\), voreingestellt vierzig), gleichverteilt in einer Scheibe mit festem Radius (3/5), um \((\pm\text{gap}, \pm\text{gap})\); gap ist einstellbar von 3/2 bis 5, voreingestellt 3. Die Wolken um \((+,+)\) und \((-,-)\) tragen Klasse \(+1\), die gemischten Klasse \(-1\). Ein zweites, trennbares Szenario (zwei Wolken um \((\pm\text{gap}/2, 0)\)) dient dem Vergleich mit der einzelnen Trenngeraden.
- Optimierer: Dabei ist \(g\) der Gradient, \(\theta\) der jeweilige Parameter und \(\eta\) die Lernrate (voreingestellt 1/2). SGD: \(\theta \leftarrow \theta - \eta g\). Momentum: \(v \leftarrow \mu v - \eta g\), \(\theta \leftarrow \theta + v\) mit \(\mu = 9/10\). Adam in der Standardform von Kingma und Ba: gleitende Mittel von \(g\) (Gewicht \(\beta_1 = 9/10\)) und \(g^2\) (Gewicht \(\beta_2 = 1-10^{-3}\)), Bias-Korrektur, Nenner mit \(\varepsilon = 10^{-8}\). Im Optimierer-Vergleich unten nutzen alle drei dieselbe Lernrate \(\eta = 0{,}1\).
Die Formeln
Vorwärtsdurchlauf mit der Aktivierung \(h\) der verdeckten Einheiten und der Ausgabe \(s\):
\[h = \tanh(W_1 x + b_1)\]
\[s = w_2 \cdot h + b_2\]
Der Verlust ist null bei richtiger Einordnung und wächst sonst linear mit dem Betrag von \(s\):
\[L = \max(0, -y s)\]
Rückwärtsdurchlauf (Kettenregel), nur bei \(y s \le 0\); sonst ist der Gradient null und es gibt kein Update. Mit \(z_1 = W_1 x + b_1\) gilt \(\partial L/\partial s = -y\), \(\partial L/\partial b_2 = -y\) und für die letzte Stufe:
\[\partial L/\partial w_2 = -y\,h\]
Das Fehlersignal läuft über \(w_2\) zu den Einheiten zurück und wird mit der Ableitung der Aktivierung \(\tanh'(z)=1-\tanh^2(z)\) gewichtet (\(\odot\) ist das komponentenweise Produkt):
\[\partial L/\partial z_1 = (-y\,w_2) \odot (1-h^2)\]
\[\partial L/\partial W_1 = (\partial L/\partial z_1)\, x^\top\]
Zudem ist \(\partial L/\partial b_1 = \partial L/\partial z_1\) (Standardrechnung). Rechnung dieser Seite: Ist eine Einheit gesättigt, also \(h_j \approx \pm 1\), verschwindet der Faktor \(1-h_j^2\) und ihre Gewichte bekommen kaum noch Korrektur, selbst wenn sie am Fehler beteiligt sind.
Reduktion auf das einzelne Perceptron: Bei \(m=0\) ist der Gradient bei \(y s \le 0\) gleich \(-y x\) für \(w\) und \(-y\) für \(b\). Ein SGD-Schritt lautet \(w \leftarrow w + \eta\, y x\), \(b \leftarrow b + \eta\, y\) und ist die Perceptron-Regel von Rosenblatt. Das gilt unter Bedingungen: Verlust \(\max(0,-y s)\), SGD (nicht Momentum oder Adam), gleiche Reihenfolge und Lernrate, Start in null. Beim Zufallsstart des Netzes bei \(m=0\) beginnt der Lauf nicht in null und folgt der Perceptron-Rechnung deshalb nicht Schritt für Schritt (Rechnung dieser Seite).
Warum eine Einheit nicht reicht und zwei genügen
Rechnung dieser Seite. Bei \(m=1\) ist \(s = w_2 \tanh(u\cdot x + c) + b_2\) mit \(u \in \mathbb{R}^2\). Da \(\tanh\) streng monoton ist, entsteht \(s \ge 0\) aus einer Schwelle für \(u\cdot x\) (oder für alle Punkte gleich). Die Entscheidungsgrenze ist also eine Gerade, wie bei \(m=0\). Eine Epoche ohne Update verlangt \(y s > 0\) bei jedem Punkt, also eine strikt trennende Gerade. Gibt es keine, konvergiert der Lauf im Sinne der Definition oben bei keiner Lernrate, keinem Optimierer (auch nicht Momentum oder Adam) und keiner Epochenhöchstzahl. Für die vier idealen Mittelpunkte des XOR-Musters kreuzen sich die Diagonalen, eine Trennung ist also unmöglich. Für die verrauschten Wolken prüfte eine Nachmessung dieser Seite mit linearer Optimierung je 30 erzeugte Datensätze beim kleinsten, beim voreingestellten und beim größten einstellbaren Abstand: In keinem fand sich eine trennende Gerade.
Dass zwei Einheiten genügen, zeigt eine Konstruktion von Hand. Die Eingaben seien durch den voreingestellten Abstand geteilt: Die Mittelpunkte liegen dann bei \((\pm 1, \pm 1)\), der Wolkenradius bei 1/5, und die Summe \(x_1+x_2\) weicht höchstens um \(\sqrt{2}/5\) vom Wert ihres Mittelpunkts ab, hat also von den Schwellen unten mindestens den Abstand \(1-\sqrt{2}/5\) (Rechnung dieser Seite). Mit einem großen Verstärkungsfaktor \(g\) (die Demo setzt \(g=8\)) sei \(h_1 = \tanh(g(x_1+x_2+1))\), \(h_2 = \tanh(g(x_1+x_2-1))\) und \(s = -h_1 + h_2 + 1\). Beide Einheiten prüfen dieselbe Summe \(x_1+x_2\) mit verschobener Schwelle: \(h_1\) fragt \(x_1+x_2>-1\) (ODER: nur die Wolke \((-,-)\) fällt durch), \(h_2\) fragt \(x_1+x_2>1\) (UND: nur \((+,+)\) besteht):
| Wolke | \(x_1+x_2\) | \((h_1, h_2)\) | \(s\) | Klasse |
|---|---|---|---|---|
| \((+,+)\) | \(\approx 2\) | \(\approx (1, 1)\) | \(\approx 1\) | \(+1\) |
| \((-,-)\) | \(\approx -2\) | \(\approx (-1, -1)\) | \(\approx 1\) | \(+1\) |
| \((+,-)\) und \((-,+)\) | \(\approx 0\) | \(\approx (1, -1)\) | \(\approx -1\) | \(-1\) |
Die beiden gemischten Wolken fallen im Raum der Aktivierungen auf denselben Punkt, was unschädlich ist, da sie dieselbe Klasse tragen. Die drei verbleibenden Punkte sind durch die Ausgabe linear trennbar. Eine Addition der Aktivierungen im Ausgang genügt; ein erster Ansatz mit je einer Einheit pro Achse scheiterte laut Demo bei 0 % Genauigkeit, weil ein linearer Ausgang Aktivierungen nur addieren, nicht multiplizieren kann. Die Näherungen in der Tabelle gelten, solange die Wolken klein gegen ihren Abstand sind; die Demo prüft die Konstruktion nur beim voreingestellten Abstand. Fazit (Rechnung dieser Seite): Das Netz kann das XOR-Muster mit zwei Einheiten darstellen. Scheitert das Lernen bei zwei Einheiten, ist das ein Scheitern der Optimierung, nicht der Darstellung.
Befunde
Alle Zahlen der Tabellen stammen aus Messungen der Demo, soweit nicht als Rechnung oder Nachmessung dieser Seite gekennzeichnet. Der Sweep verwendet ein XOR-Szenario mit einem festen Datensatz, 30 Zufallsstarts je Größe, einfaches SGD und höchstens 500 Epochen. Erfolg heißt: Eine Epoche ohne Update.
| Frage | Befund |
|---|---|
| Wie viele verdeckte Einheiten braucht das XOR-Muster? (Sweep) | 0 Einheiten: 0 von 30. 1 Einheit: 0 von 30. 2 Einheiten: 9 von 30 (30 %). 3 Einheiten: 30 von 30. 4 Einheiten: 29 von 30 (97 %). 6 und 8 Einheiten: je 30 von 30. |
| Stimmt der Rückwärtsdurchlauf? | Der größte relative Fehler gegen zentrale finite Differenzen (Schrittweite \(10^{-6}\)) liegt in der Größenordnung \(10^{-10}\), unter der Prüfgrenze \(10^{-9}\) (ein Netz mit 3 Einheiten, ein Punkt, an dem \(y s \le 0\) erzwungen wird). Ein Test mit der Complex-Step-Ableitung (\(f'(x) \approx \operatorname{Im} f(x+i\varepsilon)/\varepsilon\) mit sehr kleinem \(\varepsilon\), ohne Subtraktionsfehler) stimmt bei zufälligen Netzen ebenfalls überein. |
| Ist das Netz mit 0 Einheiten die Perceptron-Regel? | Ja, unter den Bedingungen oben: Beide Rechnungen starten in null und durchlaufen dieselben Punkte (trennbarer Datensatz) mit gleicher Lernrate. Nach einem Durchlauf sind die Gewichte identisch, \(w=(2{,}675;\,0{,}429)\), \(b=-1{,}0\), bis auf Maschinengenauigkeit. |
| Löst die Konstruktion von Hand das XOR-Muster? | Ja: 100 % Trainingsgenauigkeit ohne jedes Training (ein Datensatz, voreingestellter Abstand). |
| Einzelläufe der drei Voreinstellungen (jeweils ein Wert für Datensatz und Start, nicht der Sweep-Datensatz) | 0 Einheiten auf trennbaren Daten: konvergiert nach 2 Epochen. 2 Einheiten auf XOR: nach 15 Epochen. 1 Einheit auf XOR: erreicht auch nach 500 Epochen (Maximum) nie 0 Fehler. |
Optimierer-Vergleich: 2 verdeckte Einheiten, XOR, 10 Zufallsstarts, für alle drei dieselbe Lernrate \(\eta=0{,}1\) und eine höhere Epochenhöchstzahl als im Sweep (zweitausend). „Ø Epochen“ ist der Mittelwert nur über die konvergierten Läufe, also über unterschiedlich viele Läufe je Zeile.
| Optimierer | Konvergiert (von 10) | Ø Epochen (falls konvergiert) |
|---|---|---|
| SGD | 7 | 30,6 |
| Momentum | 0 | – |
| Adam | 9 | 38,0 |
Was die Befunde zeigen und was nicht:
- Erfolgsquote ist keine Eigenschaft der Größe allein: Die 30 % bei zwei Einheiten gelten für die Lernrate \(\eta = 1/2\), 500 Epochen und diesen Datensatz. Eine Nachmessung dieser Seite (einfaches SGD, zwei Einheiten, derselbe Datensatz, dieselben 30 Zufallsstarts, nicht in der Demo) ergab: bei \(\eta = 1/2\) und zehnfacher Epochenzahl sechzehn Erfolge; bei \(\eta = 0{,}1\) zwanzig (500 Epochen) und fünfundzwanzig (zweitausend Epochen); bei \(\eta = 5\cdot 10^{-2}\) und zweitausend Epochen sechsundzwanzig. Auch dann scheiterte ein Teil der Läufe. Bei den ersten zehn Zufallsstarts der Voreinstellung blieb die Zahl der Updates je Epoche in den gescheiterten Läufen in den letzten drei Epochen konstant. Das ist mit einem wiederkehrenden Zyklus verträglich, aber nicht nachgewiesen. Die Demo nennt als Grund lokale Minima; gemessen ist das nicht, und zu langsame Läufe sind zumindest ein Teil der Erklärung.
- Die Optimierer-Zeile mit 0 von 10 ist ein Befund zur gewählten Lernrate: Bei Momentum ist die Schrittweite im Mittel bei konstanter Richtung um den Faktor \(1/(1-\mu)\) größer (Rechnung dieser Seite). Eine Nachmessung dieser Seite (zwei Einheiten, derselbe Datensatz, dieselben zehn Zufallsstarts, zweitausend Epochen): Bei \(\eta = 2\cdot 10^{-2}\) und \(\eta = 10^{-2}\) konvergierte Momentum in allen zehn Läufen und im Mittel nach weniger Epochen als SGD bei gleicher Lernrate (sieben von zehn konvergiert; die Mittel laufen über unterschiedlich viele Läufe). Bei \(\eta = 5\cdot 10^{-2}\) waren es nur fünf von zehn (SGD neun von zehn). Die Erklärung durch Oszillation bei großem Schwung ist plausibel, aber nicht untersucht.
- Kleine Stichproben: Bei 30 Starts hat der Anteil 9 von 30 einen Standardfehler von etwa acht Prozentpunkten (Rechnung dieser Seite). Bei 10 Läufen je Optimierer liegt der Unterschied zwischen 9 und 7 im Bereich des Zufalls; der zwischen Momentum und SGD ist mit einseitig unter einem Prozent Wahrscheinlichkeit nach einem exakten Test kaum Zufall (Rechnung dieser Seite). Der Test unterstellt unabhängige Läufe; alle Läufe teilen einen Datensatz, die Aussage gilt also für diesen Datensatz.
- Gradientenprüfung: Sie vergleicht an einem Punkt und einem Netz, mit erzwungenem \(y s \le 0\), und prüft deshalb nur diesen glatten Zweig von \(L\), nicht den Knick bei \(y s = 0\).
Grenzen
- Kleiner Rahmen: Eine verdeckte Schicht, zweidimensionale erzeugte Punkte, keine echten Datensätze, und bewertet werden nur die Lernpunkte. Aussagen zur Verallgemeinerung auf neue Punkte macht die Demo nicht.
- Ein Datensatz je Messung: Sweep und Optimierer-Vergleich nutzen einen festen Datensatz und variieren nur die Zufallsstarts. Wie stark die Ergebnisse vom Datensatz abhängen, ist nicht untersucht.
- Lernraten nicht abgestimmt: Der Optimierer-Vergleich nutzt für alle dieselbe Lernrate, bewusst als naiver Vergleich. Ein einzeln abgestimmtes Momentum könnte besser abschneiden (siehe die Nachmessung oben).
- Verlustwahl: Das Perceptron-Kriterium hat keinen Rand und keine Wirkung auf richtig eingeordnete Punkte. Mit einem glatten Verlust wie der logistischen Kreuzentropie änderten sich Konvergenzverhalten und Fehlerzahlen (Standardwissen, nicht gemessen).
- Tiefe und Verschwinden der Gradienten: Die Demo bleibt bei einer Schicht. Bei tiefen oder rekurrenten Netzen können Gradienten verschwinden oder explodieren; das zeigt die Demo nicht.
- Darstellung mit direkten Verbindungen: Das hier gebaute Netz hat keine direkte Verbindung von der Eingabe zum Ausgang. Mit solchen Verbindungen reicht schon eine verdeckte Einheit für XOR (aus dem Gedächtnis, nicht geprüft).
Quellen
- Rumelhart, D. E., Hinton, G. E., Williams, R. J. (1986): Learning representations by back-propagating errors. Nature 323(6088), 533–536.
- Rosenblatt, F. (1958): The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain. Psychological Review 65(6), 386–408.
- Minsky, M., Papert, S. (1969): Perceptrons: An Introduction to Computational Geometry. MIT Press.
- Kingma, D. P., Ba, J. (2015): Adam: A Method for Stochastic Optimization. ICLR 2015.
- Quelltext, Szenarien und Tests der Demo: github.com/sebastian-hanisch/mlp-backprop-demo.
Rumelhart und Mitautoren, Rosenblatt sowie Minsky und Papert wurden nicht nachgeschlagen, die Angaben stammen aus der README der Demo. Kingma und Ba stammen aus dem Gedächtnis und wurden nicht nachgeschlagen.