Ableitungen, Gradient und Kettenregel: wie ein Modell herausfindet, in welche Richtung es lernen soll
Die Ableitung als Änderungsrate, partielle Ableitungen, der Gradient und die Kettenregel — und Backpropagation Zahl für Zahl an einem einzelnen Neuron durchgerechnet.
Serie KI-Grundlagen Teil 10 von 52
- Landkarte der künstlichen Intelligenz: was was ist und wie alles zusammenpasst
- Eine kurze Geschichte der künstlichen Intelligenz: von Turing bis zu Sprachmodellen
- Daten, Modell, Training, Inferenz: die Grundbegriffe an einem einzigen Beispiel
- Mathematische Notation lesen: Symbole, Indizes, Summen und Quantoren
- Mengen und Relationen: der Baukasten, aus dem Definitionen in der KI bestehen
- Funktionen und Abbildungen: warum jedes KI-Modell eine Funktion ist
- Logik und Beweise: die Regeln, nach denen KI schließt
- Graphen und Bäume: die Struktur, auf der Suche und neuronale Netze stehen
- Lineare Algebra für maschinelles Lernen: Vektoren, Matrizen und warum KI vor allem multipliziert
- Ableitungen, Gradient und Kettenregel: wie ein Modell herausfindet, in welche Richtung es lernen soll
- Gradientenabstieg: wie ein Modell lernt
- Was ist Wahrscheinlichkeit: vom Würfelwurf zu den Kolmogorow-Axiomen
- Bedingte Wahrscheinlichkeit und der Satz von Bayes: wie du deine Einschätzung änderst, wenn du etwas Neues erfährst
- Zufallsvariable und Verteilungsfunktion: eine Funktion, die alles über eine Verteilung verrät
- Dichtefunktion und Wahrscheinlichkeitsfunktion: warum eine stetige Zufallsvariable in einem Punkt die Wahrscheinlichkeit null hat
- Erwartungswert, Varianz und Kovarianz: wo eine Verteilung liegt, wie breit sie ist und was womit zusammenhängt
- Überblick über Wahrscheinlichkeitsverteilungen: Bernoulli-, Binomial-, Poisson-, Gleich-, Normal- und Exponentialverteilung
- Gesetz der großen Zahlen und zentraler Grenzwertsatz: Warum sich Durchschnitte so vorhersagbar verhalten
- Statistik und Parameterschätzung: Maximum Likelihood, MAP und Konfidenzintervalle
- Informationstheorie: Entropie, Kreuzentropie und KL-Divergenz — woher Verlustfunktionen kommen
- Zustandsraumsuche: BFS, DFS, UCS und A* mit Animationen
- Spiele und Gegner: Minimax, Alpha-Beta-Suche und Monte Carlo Tree Search
- Constraint Satisfaction: Backtracking, Constraint-Propagierung und AC-3 an Sudoku und einer Karte tschechischer Regionen
- Logik und wissensbasierte Systeme: Vorwärts- und Rückwärtsverkettung, Resolution und Expertensysteme
- Planung: STRIPS, die Blockwelt, Heuristiken aus Relaxierung und Planung in KI-Agenten
- Lokale Suche und simulierte Abkühlung: ein Handlungsreisender durch die tschechischen Regionalhauptstädte
- Genetische Algorithmen: Population, Kreuzung, Mutation und Selektion am Rucksack für die Wanderung
- Evolutionsstrategien und genetische Programmierung: von der 1/5-Erfolgsregel zum Keplerschen Gesetz
- Ameisenkolonieoptimierung: wie eine Pheromonspur einen kurzen Weg findet
- Partikelschwarmoptimierung: Trägheit, eigene Erfahrung und die Erfahrung des Schwarms
- Neuroevolution: Evolution der Gewichte und der Gestalt neuronaler Netze und der Algorithmus NEAT
- Fuzzy-Mengen und Zugehörigkeitsfunktionen: wie man „etwas warm“ aufschreibt
- Fuzzy-Logik und Wahrscheinlichkeit: warum „etwas warm“ nicht „wahrscheinlich warm“ bedeutet
- Fuzzy-Logik: t-Normen, Implikationen und WENN–DANN-Regeln
- Fuzzy-Regelung: Mamdani und Sugeno vom Ventilator bis zum Pendel auf dem Wagen
- Fuzzy-Clustering: der Algorithmus fuzzy c-means und Punkte zwischen den Clustern
- Neuro-Fuzzy-Systeme (ANFIS): Fuzzy-Regeln, die aus Daten lernen
- Markow-Ketten: Übergangsmatrix, stationäre Verteilung und PageRank
- Hidden-Markov-Modelle: der Viterbi-Algorithmus und das unehrliche Kasino
- Bayessche Netze: warum das Gras nass ist und was das für den Rasensprenger bedeutet
- Der Kalman-Filter: wie man aus ungenauen Messungen schätzt, wo ein Auto ist und wie schnell es fährt
- Arten des maschinellen Lernens: überwacht, unüberwacht, halbüberwacht und mehr
- Prompts, Kontext und RAG: wie man einem Modell die richtigen Informationen gibt
- Variational Autoencoder (VAE): neue Bilder aus einem stetigen latenten Raum
- Generative Adversarial Networks (GAN): der Fälscher gegen den Detektiv
- Diffusionsmodelle: wie aus reinem Rauschen ein Bild wird
- Markow-Entscheidungsprozesse: Zustände, Aktionen, Belohnungen und Bellman-Gleichungen
- Q-Learning und DQN: den Wert von Aktionen lernen, von der Tabelle bis zum neuronalen Netz
- Policy Gradient und PPO: die Strategie direkt lernen
- Wie ein KI-Agent funktioniert: ein Sprachmodell in einer Schleife mit Werkzeugen
- Programmieren mit KI-Agenten: Auftrag, Tests und Kontrolle
- Bewertung und Sicherheit von KI-Systemen: wie man misst und wie man überwacht
Der ganze Lehrplan der Serie 52 von 83 Themen fertig
- Was eine Ableitung ist, wie man sie berechnet und warum sie im Minimum null ergibt.
- Was der Gradient ist und warum er in die steilste Richtung bergauf zeigt — und −∇f bergab.
- Wie die Kettenregel die Backpropagation berechnet, Schritt für Schritt an einem einzelnen Neuron.
Vorher gut zu wissen: Funktionen und Abbildungen: warum jedes KI-Modell eine Funktion ist, Graphen und Bäume: die Struktur, auf der Suche und neuronale Netze stehen
Ein Modell lernt, indem es seine Parameter in kleinen Schritten verändert. Damit es weiß, in welche Richtung, braucht es die Antwort auf eine einzige Frage: Wenn ich diesen Regler ein wenig drehe, wie ändert sich der Fehler? Diese Frage beantwortet die Ableitung. Für Millionen Regler auf einmal ist es der Gradient. Und wie man ihn durch ein ganzes neuronales Netz berechnet, sagt die Kettenregel.
Dieser Teil ist das letzte Stück Mathematik, das dir noch fehlt, um zu verstehen, wie ein neuronales Netz wirklich lernt. Er baut auf den Funktionen und auf dem Berechnungsgraphen eines Neurons aus dem Teil über Graphen auf.
1. Die Ableitung: wie schnell sich eine Funktion ändert
Definition — Ableitung
Sei I ⊆ ℝ ein offenes Intervall, f : I → ℝ eine Funktion und x ∈ I. Die Ableitung der Funktion f an der Stelle x ist die Zahl
f ′(x) = limh → 0 f(x + h) − f(x)/h,
sofern dieser Grenzwert existiert und endlich ist (eine reelle Zahl); andernfalls existiert die Ableitung an der Stelle x nicht. Der Bruch ist für h ≠ 0 mit x + h ∈ I definiert. Mit dem Grenzwert ist gemeint: limh → 0 q(h) = L ∈ ℝ genau dann, wenn
∀ ε > 0 ∃ δ > 0 ∀ h : 0 < |h| < δ ∧ x + h ∈ I ⇒ |q(h) − L| < ε.
Hat f an jeder Stelle von I eine Ableitung, so ist die Ableitungsfunktion von f die Funktion f ′ : I → ℝ, x ↦ f ′(x). Andere (Leibniz-)Schreibweise: f ′(x) = df/dx(x).
Der Bruch unter dem Grenzwert ist die Steigung der Sekante des Graphen zwischen den Punkten (x, f(x)) und (x + h, f(x + h)); die Ableitung ist also der Grenzwert der Sekantensteigungen, die Steigung der Tangente an der Stelle x.
Die Ableitung ist eine Geschwindigkeit. Wenn f beschreibt, wo ein Auto zur Zeit x ist, ist die Ableitung die Geschwindigkeit auf dem Tacho in diesem Moment. Beim Graphen ist es die Neigung: positive Ableitung — die Funktion steigt, negative — sie fällt, null — sie verläuft flach.
f ′(x) = limh → 0 f(x + h) − f(x)/h
- f ′(x)
- Ableitung — die Steigung der Tangente an der Stelle x; das, was wir berechnen wollen
- limh → 0
- Grenzwert — eine Sekante über einen endlichen Abschnitt misst die durchschnittliche Steigung; erst wenn wir den Abschnitt auf null schrumpfen lassen, erhalten wir die Steigung in einem einzigen Punkt
- f(x + h) − f(x)
- um wie viel sich der Wert geändert hat, als wir uns um h verschoben haben
- h
- die Länge der Verschiebung — durch das Teilen machen wir aus der Gesamtänderung eine Änderung pro Einheit, also eine Steigung
Die Sekante des Graphen von f(x) = x2 im Punkt 3 hat für h = 2 die Steigung 8, für h = 1 die Steigung 7, für 0,5 die Steigung 6,5 und für 0,1 die Steigung 6,1. Je kleiner der Schritt, desto näher liegt die Sekante an der Tangente — und die Ableitung ist f ′(3) = 6:
Beispiel — die Ableitung von x2 direkt aus der Definition
f(x + h) − f(x)/h = (x + h)2 − x2/h = 2xh + h2/h = 2x + h (für h ≠ 0)
limh → 0 (2x + h) = 2x, im Punkt 3: f ′(3) = 6
(Farben nach der Formel oben)
Die Steigung der Sekante im Punkt 3 ist also genau 6 + h — deshalb kam 8, 7, 6,5 und 6,1 für h = 2, 1, 0,5 und 0,1 heraus. Der Unterschied zur Tangente ist bei x2 genau h.
2. Regeln und Ableitungen von Funktionen aus der KI
In der Praxis berechnet man Ableitungen nicht über den Grenzwert, sondern nach Regeln. Die wichtigsten:
Ableitungsregeln
Ableitungen elementarer Funktionen: Für eine Konstante c ∈ ℝ und alle x ∈ ℝ ist (c)′ = 0 und (ex)′ = ex; für n ∈ ℕ, n ≥ 1 und x ∈ ℝ ist (xn)′ = nxn−1 (für einen reellen Exponenten n gilt dasselbe für x > 0); für x > 0 ist (ln x)′ = 1/x.
Sei I ⊆ ℝ ein offenes Intervall, seien f, g : I → ℝ an der Stelle x ∈ I differenzierbar und c ∈ ℝ. Dann gilt an der Stelle x
(f + g)′ = f ′ + g ′, (cf)′ = cf ′, (fg)′ = f ′g + fg ′,
und ist außerdem g(x) ≠ 0, dann
(f/g)′ = f ′g − fg ′/g2.
Definition — differenzierbare Funktion
Sei I ⊆ ℝ ein offenes Intervall, f : I → ℝ und x ∈ I. Die Funktion f ist an der Stelle x differenzierbar genau dann, wenn der Grenzwert
limh → 0 f(x + h) − f(x)/h
existiert und endlich ist. Äquivalent: Beide einseitigen Ableitungen f ′−(x) (Grenzwert nur über h < 0, Sekanten von links) und f ′+(x) (Grenzwert nur über h > 0, Sekanten von rechts) existieren, sind endlich und f ′−(x) = f ′+(x). Die Funktion ist auf I differenzierbar genau dann, wenn sie an jeder Stelle von I differenzierbar ist.
ReLU(x) = max(0, x) ist in null nicht differenzierbar: Für h < 0 ist ReLU(h) − ReLU(0)/h = 0/h = 0, für h > 0 ist es h/h = 1, also f ′−(0) = 0 ≠ 1 = f ′+(0). Lernbibliotheken nehmen dort per Konvention 0. Weil die Eingabe nur ausnahmsweise genau 0 ist, stört das beim Lernen nicht.
| Funktion | Ableitung | Wo sie dir begegnet |
|---|---|---|
| x2 | 2x | mittlerer quadratischer Fehler |
| ln x | 1/x | Kreuzentropie |
| σ(x) = 1/1 + e−x | σ(x)(1 − σ(x)) | logistische Regression, Ausgabe des Netzes |
| tanh x | 1 − tanh2 x | rekurrente Netze |
| ReLU(x) = max(0, x) | 0 für x < 0, 1 für x > 0 | verborgene Schichten von Netzen |
Beachte, dass sich die Ableitung der Sigmoidfunktion aus dem Wert der Sigmoidfunktion selbst berechnen lässt — das spart Arbeit, weil das Netz diesen Wert beim Vorwärtsdurchlauf ohnehin schon berechnet hat. Und die Ableitung von ReLU ist die einfachste überhaupt: entweder 0 oder 1. Auch deshalb ist ReLU so beliebt.
3. Die Ableitung zeigt den Weg zum Minimum
Satz — notwendige Bedingung für ein Extremum
Sei I ⊆ ℝ ein offenes Intervall, f : I → ℝ und x* ∈ I. Die Funktion f hat an der Stelle x* ein lokales Minimum genau dann, wenn
∃ δ > 0 ∀ x ∈ I : |x − x*| < δ ⇒ f(x) ≥ f(x*),
und ein lokales Maximum genau dann, wenn dasselbe mit f(x) ≤ f(x*) gilt. Beides zusammen heißt lokales Extremum; das Extremum ist strikt, wenn für x ≠ x* die strikte Ungleichung gilt.
Satz. Sei f : I → ℝ an der Stelle x* ∈ I differenzierbar und habe in x* ein lokales Extremum. Dann ist f ′(x*) = 0.
Die Umkehrung gilt nicht: f ′(x*) = 0 kann auch an einer Stelle gelten, an der kein Extremum liegt — für f(x) = x3 ist f ′(0) = 0, aber f(x) < 0 für x < 0 und f(x) > 0 für x > 0 (Wendepunkt).
Am Boden eines Tals ist das Gelände flach. Die Ableitung verrät außerdem, wo es bergab geht: Ist sie positiv, geh nach links, ist sie negativ, nach rechts. Genau das macht der Gradientenabstieg — nur in Millionen Dimensionen gleichzeitig.
Bei f(x) = x2 ist f ′(x) = 2x, null nur im Punkt 0 — und dort liegt das Minimum. Bei komplizierteren Funktionen können wir die Gleichung f ′ = 0 nicht lösen, und deshalb sucht man das Minimum Schritt für Schritt: ein Stückchen gegen die Richtung der Ableitung, neu rechnen, das nächste Stückchen.
Satz — hinreichende Bedingung für ein Minimum
Sei I ⊆ ℝ ein offenes Intervall und f : I → ℝ auf I differenzierbar. Die zweite Ableitung von f an der Stelle x ∈ I ist die Ableitung der Funktion f ′ an dieser Stelle, f ″(x) = (f ′)′(x), sofern sie existiert.
Satz. Sei f : I → ℝ auf I differenzierbar, x* ∈ I, f ″(x*) existiere und f ′(x*) = 0. Dann gilt:
- ist f ″(x*) > 0, hat f an der Stelle x* ein striktes lokales Minimum;
- ist f ″(x*) < 0, hat f an der Stelle x* ein striktes lokales Maximum;
- ist f ″(x*) = 0, entscheidet der Satz nichts (ein Extremum kann dort liegen oder auch nicht).
Für x2: f ″(x) = (2x)′ = 2 > 0, also ist der Punkt 0 tatsächlich ein Minimum. Für x3: f ″(0) = 6 · 0 = 0 — der Satz schweigt, und in null liegt tatsächlich kein Extremum.
xk+1 = xk − η · f ′(xk)
- xk+1
- die neue Schätzung des Minimums — einen Schritt näher am Boden
- xk
- wo wir gerade stehen — wir gehen von der letzten Schätzung aus und fangen nicht neu an
- −
- minus — die Ableitung zeigt, wohin die Funktion wächst; wir wollen nach unten, also in die Gegenrichtung
- η
- Schrittweite (Lernrate) — die Ableitung gilt nur in der Nähe des Punktes, deshalb gehen wir in kleinen Schritten; ein zu großes η springt über das Minimum hinweg
- f ′(xk)
- Ableitung — gibt die Richtung (durch das Vorzeichen) und die Größe des Schritts: weit vom Minimum ist der Hang steil und wir gehen schnell, nahe am Boden verkürzt sich der Schritt von selbst
def gradientni_sestup(df, x, eta, kroky):
for _ in range(kroky):
x = x - eta * df(x) # ein Stückchen gegen die Richtung der Ableitung
return x
f(x) = x2, f ′(x) = 2x, Start x0 = 3, η = 0,1
x1 = 3 − 0,1 · 6 = 2,4, x2 = 2,4 − 0,1 · 4,8 = 1,92, x3 = 1,92 − 0,1 · 3,84 = 1,536
(Farben nach der Formel oben)
Jeder Schritt multipliziert hier die Position mit der Zahl 1 − 2η = 0,8, also nähern wir uns null geometrisch. Mit η = 1 wäre es −1, und der Abstieg würde ewig zwischen 3 und −3 hin- und herspringen.
4. Partielle Ableitungen
Definition — partielle Ableitung
Seien n ≥ 1, f : ℝn → ℝ, x = (x1, …, xn) ∈ ℝn und i ∈ {1, …, n}; ei ∈ ℝn ist der i-te Einheitsvektor (an der i-ten Stelle 1, sonst 0). Die partielle Ableitung der Funktion f nach xi an der Stelle x ist die Zahl
∂f/∂xi(x) = limh → 0 f(x + hei) − f(x)/h,
sofern dieser Grenzwert existiert und endlich ist. Weil x + hei = (x1, …, xi + h, …, xn), ist das die gewöhnliche Ableitung der Funktion einer Variablen t ↦ f(x1, …, t, …, xn) (t an der i-ten Stelle) an der Stelle t = xi: Alle anderen Variablen halten wir konstant.
Bei einer Funktion mit mehreren Reglern drehst du an einem und lässt die anderen, wie sie sind. Die partielle Ableitung sagt, wie empfindlich das Ergebnis genau auf diesen einen Regler reagiert.
f(x, y) = x2y
∂f/∂x = 2xy, ∂f/∂y = x2
im Punkt (3, 2): ∂f/∂x = 12, ∂f/∂y = 9
Beispiel — die partielle Ableitung als Grenzwert und ihre Überprüfung
Nach der Definition oben ist ∂f/∂xi(x) der Grenzwert des Quotienten f(x + hei) − f(x)/h, wobei ei der Einheitsvektor in Richtung der i-ten Achse ist — wir verschieben uns nur entlang einer Achse. Für kleines h liefert der Quotient selbst eine gute Schätzung:
Verschiebung um h = 0,01 entlang der x-Achse: f(3,01; 2) = 3,012 · 2 = 18,1202, f(3, 2) = 18
18,1202 − 18/0,01 = 12,02 ≈ 12
Die restlichen 0,02 sind der Fehler des endlichen Schritts, mit kleinerem h verschwindet er. Bei der Rechnung hat sich y = 2 überhaupt nicht bewegt — das ist das ganze „Partielle“.
5. Der Gradient: die Richtung des steilsten Anstiegs
Definition — Gradient
Seien n ≥ 1, f : ℝn → ℝ und x ∈ ℝn ein Punkt, in dem alle partiellen Ableitungen ∂f/∂xi(x), i = 1, …, n, existieren. Der Gradient der Funktion f im Punkt x ist der Vektor
∇f(x) = (∂f/∂x1(x), …, ∂f/∂xn(x)) ∈ ℝn.
Satz. Habe f : ℝn → ℝ stetige partielle Ableitungen und sei x ∈ ℝn ein Punkt mit ∇f(x) ≠ 0. Dann gilt für jeden Vektor u ∈ ℝn mit ‖u‖ = 1 für die Richtungsableitung (Definition unten)
−‖∇f(x)‖ ≤ Duf(x) ≤ ‖∇f(x)‖,
- die obere Schranke wird genau für u = ∇f(x)/‖∇f(x)‖ angenommen — der Gradient zeigt in die Richtung des schnellsten Wachstums, und seine Länge ist diese größte Wachstumsrate;
- die untere Schranke wird genau für u = −∇f(x)/‖∇f(x)‖ angenommen — −∇f(x) ist die Richtung des steilsten Abstiegs;
- Duf(x) = 0 genau dann, wenn u · ∇f(x) = 0 — der Gradient steht im Punkt x senkrecht auf der Höhenlinie {y ∈ ℝn : f(y) = f(x)} (auf ihren Tangentialrichtungen).
Du stehst im Nebel an einem Hang und ertastest die Neigung unter deinen Füßen. Der Gradient ist ein Pfeil, der so steil wie möglich bergauf zeigt. Wer hinunter will, geht genau in die Gegenrichtung.
Für die Schüssel f(x, y) = x2 + 3y2 ist ∇f = (2x, 6y); im Punkt (1, 1) ist das (2, 6). Die Pfeile im Bild zeigen −∇f, also wo es bergab geht — und alle kreuzen die Höhenlinien senkrecht in Richtung Boden:
Die Pfeile zeigen nicht direkt zur Mitte: In y-Richtung ist die Schüssel steiler, deshalb ist dort der Gradient größer. Genau dieses „Zickzack“ macht dem Gradientenabstieg später in engen Tälern zu schaffen.
Warum zeigt der Gradient gerade am steilsten bergauf? Die Antwort gibt die Richtungsableitung.
Definition — Richtungsableitung
Seien n ≥ 1, f : ℝn → ℝ, x ∈ ℝn und u ∈ ℝn ein Einheitsvektor, ‖u‖ = 1 (Skalarprodukt und Länge führt der Teil Lineare Algebra ein). Die Richtungsableitung der Funktion f im Punkt x in Richtung u ist die Zahl
Duf(x) = limh → 0 f(x + hu) − f(x)/h,
sofern dieser Grenzwert existiert und endlich ist — die Neigung des Geländes, wenn wir vom Punkt x aus in Richtung u losgehen. Partielle Ableitungen sind ihr Spezialfall: ∂f/∂xi(x) = Deif(x).
Satz. Hat f stetige partielle Ableitungen (ist sie stetig differenzierbar), dann existiert für jedes x ∈ ℝn und jeden Einheitsvektor u ∈ ℝn die Richtungsableitung, und
Duf(x) = ∇f(x) · u.
Ist ∇f(x) ≠ 0 und φ ∈ [0, π] der Winkel zwischen u und ∇f(x), ist das nach der Definition des Winkels dasselbe wie ‖∇f(x)‖ cos φ.
Duf = ∇f · u = ‖∇f‖ cos φ
- Duf
- die Neigung in der gewählten Richtung — wie schnell die Funktion wächst, wenn wir in Richtung u gehen
- ∇f
- Gradient — fasst die Neigungen entlang aller Achsen zusammen; aus ihnen setzt sich die Neigung in einer beliebigen Richtung per Skalarprodukt zusammen
- u
- die Richtung des Schritts, mit Länge 1 — damit das Ergebnis eine Neigung ist und nicht Neigung mal Schrittlänge
- ‖∇f‖
- die Länge des Gradienten — die größtmögliche Neigung in diesem Punkt; sie hängt nicht davon ab, wohin wir gehen
- cos φ
- der Winkel zwischen u und dem Gradienten — das Einzige, was wir durch die Wahl der Richtung beeinflussen; am größten (1) ist er für φ = 0, am kleinsten (−1) für die Gegenrichtung, null entlang der Höhenlinie
Beispiel — die Neigungen der Schüssel im Punkt (1, 1) und ein Schritt bergab
∇f(1, 1) = (2, 6), ‖∇f‖ = √4 + 36 = √40 ≈ 6,32
entlang der x-Achse, u = (1, 0): Duf = (2, 6) · (1, 0) = 2; entlang der y-Achse, u = (0, 1): Duf = (2, 6) · (0, 1) = 6 (Farben nach der Formel oben)
Schritt gegen den Gradienten mit η = 0,1: (1, 1) − 0,1 · (2, 6) = (0,8; 0,4)
f(1, 1) = 1 + 3 = 4 → f(0,8; 0,4) = 0,64 + 3 · 0,16 = 1,12
Keine Richtung ergibt eine größere Neigung als 6,32 — auch nicht die y-Achse, die „fast“ in Richtung des Gradienten liegt.
6. Die Kettenregel
Satz — Ableitung einer verketteten Funktion
Seien I, J ⊆ ℝ offene Intervalle, f : I → ℝ und g : J → ℝ Funktionen mit f(I) ⊆ J und x ∈ I. Sei f an der Stelle x differenzierbar und g an der Stelle f(x) differenzierbar. Dann ist die verkettete Funktion h = g ∘ f : I → ℝ, h(x) = g(f(x)), an der Stelle x differenzierbar, und
h ′(x) = g ′(f(x)) · f ′(x).
In Leibniz-Schreibweise, mit y = g(u) und u = f(x):
dy/dx = dy/du · du/dx.
Bei einer längeren Kette werden alle Glieder multipliziert: Ist h = fk ∘ … ∘ f1, u0 = x und uj = fj(uj−1) für j = 1, …, k, und ist jede fj in uj−1 differenzierbar, dann gilt durch Induktion h ′(x) = fk′(uk−1) · … · f1′(u0).
Zahnräder: Wenn sich das erste Rad einmal dreht, das zweite dreimal und das dritte sich bei jeder Umdrehung des zweiten zweimal dreht, dann dreht sich das dritte Rad sechsmal. Empfindlichkeiten multiplizieren sich entlang der Kette.
h(x) = (2x + 1)2, äußere g(u) = u2, innere u = 2x + 1
h ′(x) = 2u · 2 = 4(2x + 1), im Punkt 1 ist u = 3: h ′(1) = 6 · 2 = 12
(Farben nach der Formel unten)
h ′(x) = g ′(f(x)) · f ′(x)
- h ′(x)
- die Empfindlichkeit der ganzen Kette — wie sich das Endergebnis ändert, wenn wir die Eingabe x bewegen
- g ′(f(x))
- die Empfindlichkeit der äußeren Funktion — ausgewertet in f(x), weil g nicht x bekommt, sondern das Zwischenergebnis; im Beispiel 2u = 2 · 3 = 6
- f ′(x)
- die Empfindlichkeit der inneren Funktion — um wie viel sich das Zwischenergebnis pro Einheit von x bewegt; im Beispiel 2
Beispiel — woher die Ableitung der Sigmoidfunktion kommt
Die Sigmoidfunktion ist eine verkettete Funktion: σ(x) = u−1 mit der inneren u = 1 + e−x.
äußere: (u−1)′ = −u−2, innere: (1 + e−x)′ = −e−x (wieder per Kettenregel: (e−x)′ = e−x · (−1))
σ ′(x) = −(1 + e−x)−2 · (−e−x) = e−x/(1 + e−x)2
= 1/1 + e−x · e−x/1 + e−x = σ(x)(1 − σ(x))
(Farben nach der Formel der Kettenregel oben: äußere und innere Ableitung)
Letzter Schritt: 1 − σ(x) = 1 + e−x − 1/1 + e−x = e−x/1 + e−x. Für x = 0,5: σ ≈ 0,622, und damit σ ′ ≈ 0,622 · 0,378 ≈ 0,235 — eine Zahl, der wir gleich im Rückwärtsdurchlauf begegnen.
7. Backpropagation in einem einzelnen Neuron
Jetzt setzen wir alles zusammen. Das Neuron aus dem Teil über Graphen berechnet ŷ = σ(wx + b) und sein Fehler ist L = (ŷ − y)2. Nehmen wir die Eingabe x = 2, das Gewicht w = 0,5, den Bias b = −0,5 und die richtige Antwort y = 1.
Der Vorwärtsdurchlauf berechnet die Werte von links nach rechts: wx = 1, z = 0,5, ŷ = σ(0,5) ≈ 0,622 und der Fehler L ≈ 0,143.
Der Rückwärtsdurchlauf geht denselben Graphen von rechts nach links und multipliziert in jedem Knoten das, was ankommt, mit der Ableitung der jeweiligen Operation:
∂L/∂ŷ = 2(ŷ − y) ≈ −0,755
∂L/∂z = ∂L/∂ŷ · σ(z)(1 − σ(z)) ≈ −0,755 · 0,235 ≈ −0,177
∂L/∂w = ∂L/∂z · x ≈ −0,177 · 2 ≈ −0,355, ∂L/∂b = ∂L/∂z · 1 ≈ −0,177
(Farben nach der Formel unten)
∂L/∂w = ∂L/∂ŷ · ∂ŷ/∂z · ∂z/∂w
- ∂L/∂w
- um wie viel der Fehler pro Einheit Änderung des Gewichts wächst — genau das braucht der Gradientenabstieg
- ∂L/∂ŷ = 2(ŷ − y)
- wie die Antwort des Neurons den Fehler verändert — umso größer, je weiter die Antwort von der Wahrheit entfernt ist, und das Vorzeichen sagt, ob sie zu groß oder zu klein ist (≈ −0,755)
- ∂ŷ/∂z = σ(1 − σ)
- wie die Sigmoidfunktion die Antwort verändert — wenn das Neuron „gesättigt“ ist (σ nahe 0 oder 1), ist dieses Glied fast null, und das Signal kommt nicht weiter (≈ 0,235)
- ∂z/∂w = x
- wie das Gewicht die innere Summe verändert — das Gewicht multipliziert die Eingabe, also ist sein Einfluss so groß wie die Eingabe (= 2); bei einer Eingabe von null hat das Gewicht nichts, woraus es lernen könnte
Beide Gradienten sind negativ. Das heißt: Wenn wir w und b ein wenig vergrößern, sinkt der Fehler — das Neuron antwortet dann näher an der Eins. Der Gradientenabstieg macht genau das: Er verschiebt die Parameter ein Stückchen gegen den Gradienten. Ein ganzes neuronales Netz lernt genauso, nur hat es statt eines Neurons Millionen, und der Rückwärtsdurchlauf geht durch Hunderte von Schichten. Übrigens lässt sich das Ergebnis mit roher Gewalt überprüfen — w um ein winziges Stück verschieben, den Fehler neu berechnen und teilen. Es kommt dasselbe heraus, nur langsamer.
Das ganze Vorgehen als Algorithmus — Vorwärtsdurchlauf, Rückwärtsdurchlauf, Schritt:
def krok_uceni(w, b, x, y, eta):
# Vorwärtsdurchlauf: Werte von links nach rechts (und sie sich merken)
z = w * x + b
y_hat = sigmoida(z)
L = (y_hat - y) ** 2
# Rückwärtsdurchlauf: Ableitungen von rechts nach links, Kettenregel
dL_dyhat = 2 * (y_hat - y)
dL_dz = dL_dyhat * y_hat * (1 - y_hat) # σ′ aus dem gemerkten Wert
dL_dw = dL_dz * x
dL_db = dL_dz * 1
# Gradientenabstieg: ein Stückchen gegen den Gradienten
return w - eta * dL_dw, b - eta * dL_db
Beispiel — ein Lernschritt und die Überprüfung des Gradienten
Schritt mit η = 1: w ← 0,5 − 1 · (−0,355) ≈ 0,855, b ← −0,5 − 1 · (−0,177) ≈ −0,323
neu: z ≈ 0,855 · 2 − 0,323 ≈ 1,387, ŷ = σ(1,387) ≈ 0,800, L ≈ 0,040 (vorher 0,143)
Überprüfung mit dem zentralen Differenzenquotienten, h = 0,001: L(w + h) − L(w − h)/2h ≈ −0,355
Ein einziger Schritt hat den Fehler auf knapp ein Drittel gedrückt, und die Antwort hat sich von 0,622 auf 0,800 verschoben. Der zentrale Differenzenquotient (Verschiebung in beide Richtungen) ist genauer als der einseitige aus der Definition: Der Fehler sinkt mit h2, nicht mit h.
8. Ableitungen in der künstlichen Intelligenz
- Automatisches Differenzieren — Bibliotheken wie PyTorch und JAX bauen beim Rechnen einen Berechnungsgraphen auf und berechnen den Gradienten selbst per Rückwärtsdurchlauf. Niemand schreibt die Ableitungen von Netzen von Hand.
- Numerisches Differenzieren (kleines h) ist für Millionen Parameter viel zu langsam — pro Parameter eine zusätzliche Berechnung. Backpropagation berechnet alle partiellen Ableitungen zum Preis von ungefähr einem Vorwärtsdurchlauf.
- Verschwindender Gradient — die Ableitung der Sigmoidfunktion ist höchstens 0,25. Die Kettenregel über fünf Sigmoidfunktionen hintereinander multipliziert mit höchstens 0,255 ≈ 0,001, sodass tiefe Schichten kaum lernen. Deshalb hat sich in verborgenen Schichten ReLU mit der Ableitung 1 durchgesetzt.
- Der Gradient nach der Eingabe zeigt, welche Pixel eines Bildes die Entscheidung des Netzes am stärksten beeinflusst haben — so zeichnet man „Saliency Maps“ und sucht nach Schwachstellen von Modellen.
Satz — die Ableitung der Sigmoidfunktion ist höchstens ¼
Sei σ : ℝ → ℝ, σ(x) = 1/1 + e−x, die Sigmoidfunktion. Dann gilt für alle x ∈ ℝ
0 < σ ′(x) ≤ 1/4,
und Gleichheit σ ′(x) = 1/4 tritt genau für x = 0 ein.
Beweis. Sei p = σ(x); weil e−x > 0, ist p ∈ (0, 1). Nach dem Beispiel oben ist σ ′(x) = p(1 − p) > 0 und p(1 − p) = 1/4 − (p − 1/2)2 ≤ 1/4, mit Gleichheit genau für p = 1/2, also e−x = 1, x = 0. ∎
Über n Sigmoidfunktionen hintereinander multipliziert die Kettenregel n solcher Glieder und dazwischen die Gewichte. Hat kein Gewicht einen Betrag größer als 1, ist das Ergebnis betragsmäßig höchstens (1/4)n — für n = 5 ist das 1/1024 ≈ 0,001.
9. Zusammenfassung
- Die Ableitung ist die Änderungsrate — die Steigung der Tangente, der sich die Sekanten nähern.
- Im Minimum ist die Ableitung null, und ihr Vorzeichen sagt, wo es bergab geht.
- Eine partielle Ableitung dreht an einem Regler, der Gradient ist der Vektor aller davon und zeigt am steilsten bergauf.
- Die Kettenregel multipliziert die Ableitungen der Glieder einer verketteten Funktion.
- Backpropagation ist die Kettenregel auf einem Berechnungsgraphen — so wird der Gradient eines ganzen neuronalen Netzes berechnet.
Siehst du das anders? Schreib an support@coden-app.com.