Die Differentialrechnung ist das mathematische Rückgrat von Machine Learning und Deep Learning. In diesem Tutorial werden insbesondere Themen wie Funktionen, Analysis, Differentialquotienten und Gradienten behandelt.
Wir werden aus mathematischer Sicht formulieren, was Funktionen sind und welche Eigenschaften sie haben können. Dies werden sowohl Funktionen mit einer als auch mit mehreren unabhängigen Variablen sein. Außerdem werden wir den ersten Differentialquotienten – „Ableitung einer Funktion“ – Schritt für Schritt herleiten und auf dieser Grundlage partielle und totale Ableitungen definieren.
Im Anschluss werden wir Gradienten von Funktionen mit mehreren Variablen diskutieren. Gradienten machen es uns überhaupt erst möglich, neuronale Netze im Deep Learning zu trainieren.
Inhaltsverzeichnis
- Was sind Funktionen?
- Lokale und globale Minima und Sattelpunkte
- Differentialquotienten: Ableitung einer Funktion
- Partielle Ableitungen
- Gradient einer Funktion
1. Was sind Funktionen?
In der Mathematik stellt eine Funktion eine Abbildung zwischen zwei Mengen dar, :
. Die Menge
ist der Definitionsbereich des Funktionsarguments
, die auch als die unabhängige Variable bezeichnet wird. Der unabhängigen Variablen
wird genau ein Element
zugeordnet.
bezeichnet die Zielmenge und
ist die abhängige Variable bzw. der Funktionswert. Die funktion
definiert damit eine Abbildung von der Definitionsmenge auf die Zielmenge. Dabei wird jedem Element
ein Wert
zugeordnet. I.d.R wird
als
geschrieben.
Ein sehr einfaches Beispiel für eine Funktion ist die Quadratische Funktion bzw.
bzw.
. Hier wird dem unabhängigen Wert
, das Quadrat dieses Wertes zugeordnet. Bspw. wird dem Wert §x§=2, der Funktionswert
=4 zugeordnet.
In diesem Beispiel ist die unabhängige Variable und die Funktion
, wäre das Quadrat von
.
beschreibt eine Funktion einer einzelnen Variable. In diesem Fall der Variable
. Neben der quadratischen Funktion, sind weitere Funktionen einer einzelnen Variablen zum Beispiel die Kubische Funktion
,
oder
.
Funktionen von mehreren Variablen
Deutlich interessanter für uns sind die Funktionen von mehreren Variablen. Beispielsweise . Hier sind
,
und
die unabhängigen Variablen, die beliebige Werte annehmen können und von denen der Wert der Funktion
abhängt. Diese sehen komplizierter aus, als im Falle von einer einzelnen Variable. Denn mit jeder unabhängigen Variable einer Funktion kommt eine zusätzliche Raumdimension, die wir brauchen, um die Funktion grafisch darzustellen.
Bereits eine Variable mehr und unsere Funktion kann sehr viel komplexer aussehen. Wie zum Beispiel die Funktion Funktion, die neben
noch
als unabhängige Variable aufweist:

Tatsächlich können Funktion eine beliebige Menge von Variablen und damit an Raumdimensionen aufweisen. Ob 2, 3, 5 100, oder eine Milliarde. Hier ist der Mathematik einfach keine Grenze Gesetzt. Wir Menschen kommen allerdings schnell an unsere Grenzen sich die Funktionen für mehr als 2 Raumdimensionen grafisch vorzustellen.
Tatsächlich ist es im Deep Learning der Fall, dass wir nur mit Funktionen zu tun haben werden, die Tausende oder sogar Millionen an Variablen und somit an Dimensionen aufweisen. Zwar können wir diese Funktionen nicht grafisch darstellen, aber sehr wohl mit ihnen mathematische Berechnungen anstellen.
Weiterhin können Funktionen neben Variablen noch sog. Funktionsparameter besitzen. Als Parameter, wird in der Mathematik eine Variable bezeichnet, die gemeinsam mit anderen Variablen auftritt, aber von anderer Qualität ist. Man spricht auch davon, dass ein Parameter beliebig, aber fest ist. Er unterscheidet sich damit von den Variablen, die wir zuvor betrachtet haben dahingehend, dass der Parameter für de gerade betrachteten Fall konstant ist und nur für den nächsten Fall variiert werden kann.
Nehmen wir als Beispiel . Die Variable
nimmt hier jeden Wert aus der Definitionsmenge an. Der Wert von
kann beliebig sein, aber während der gesamten Rechnung fest. In diesem Beispiel bestimmt der Wert des Parameters
die „Öffnung“ der quadratischen Funktion. Für verschiedene feste Werte von
, ergibt sich eine andere Öffnung der Funktion.

- Unabhängige Variable
kann jeden Wert annehmen
- Parameter
kann beliebigen Wert annehmen, bleibt aber konstant
Per Konvention werden Parameter meist mit Buchstaben vom Anfang des lateinischen oder griechischen Alphabets bezeichnet (wie ,
,
oder mit Indizes
,
,
usw.). Variablen hingegen mit Buchstaben vom Ende des Alphabets (
,
,
, oder
,
,
).
2. Lokale und globale Minima, Sattelpunkte
Jetzt möchte ich mit Ihnen einige sehr wichtige Eigenschaften von Funktionen besprechen, in in Machine und – Deep Learning sehr wichtig sind. Diese Eigenschaften sind Minima und Sattelpunkte der Funktion.
Betrachtet wir zunächst einmal eine kompliziertere Funktion einer einzelnen Variable
, die wie folgt aussieht:

Dabei ist es unwichtig wie genau definiert ist. Für uns ist nur ihr Verlauf wichtig. Außerdem machen wir die Einschränkung, dass die Funktion nur in einem Wertebereich von -5 bis +5 definiert ist. Dadurch wissen wir ganz genau wie der Verlauf der Funktion über den gesamten Definitionsbereich aussieht.
Hierbei fallen uns zwei Dinge an der Funktion besonders auf.
Bei dem Wert weist die Funktion ihren niedrigsten Wert über das gesamte Definitionsbereich auf. Wir sagen auch, dass die Funktion bei
ein globales Minimum hat. Ich glaube das ist selbsterklärend. Es gibt global, also über den ganzen Definitionsbereich der Funktion von -5 bis +5 keinen Wert der niedriger ist als der Wert bei
.
Andererseits sehen wir, dass die Funktion bei einen Wert aufweist, der niedriger ist, als die Funktionswerte rund um die Stelle
. Wir sagen, dass die Funktion bei
ein lokales Minimum hat.
Diese Erkenntnisse mögen auf den ersten Blick trivial und unbedeutend erscheinen, aber glauben Sie mir, wenn ich sage, dass das gesamte Lernprinzip der neuronalen Netzwerke in Deep Learning darauf basiert ein global Minimum zu finden.
Während es in Deep Learning beim Training der Netze darum geht die globalen Minima zu finden, geht es gleichzeitig darum die lokalen Minima zu vermeiden. Sie mögen sich jetzt vielleicht fragen: Die globalen und lokalen Minima von was genau? Von einer sogenannten Verlustfunktion, die es uns ermöglicht ein neuronales Netzwerk zu trainieren.
Eine weitere, und in Deep Learning, sehr unerwünschte Eigenschaft von Verlustfunktionen, stellen Sattelpunkte dar.
3. Differentialquotienten: Ableitung einer Funktion
In diesem Abschnitt diskutieren wir Differentialquotienten erster Ordnung, im Volksmund auch gerne als die Ableitung einer Funktion genannt.
Ableitungen von Funktionen bilden das Rückgrat von Machine- und Deep Learning. Insbesondere basiert das Training von neuronalen Netze auf Ableitungen von Verlustfunktionen.
Zunächst einmal möchte ich Ihnen die unterschiedlichen Definition einen Ableitung vorstellen, bevor wir uns mit der genauen Mathematik beschäftigen werden, die dahinter steckt.
- Die Ableitung misst die Steilheit einer Funktion an einem bestimmten Punkt dieser Funktion. Die Ableitung ist also eine Steigung. (Dies bedeutet, dass es sich um ein Verhältnis zwischen der Änderung des Funktionswerts
oder
und der Änderung der unabhängigen Variablen
handelt.)
- Wenn z.B. die unabhängige Variable
die „Zeit“ wäre, stellen wir uns dieses Verhältnis oft als Änderungsrate vor. Ein Beispiel dafür ist die Geschwindigkeit, die die Änderungsrate des Ortes mit der Zeit angibt. Und die Änderungsrate der Geschwindigkeit mit der Zeit, wäre die Beschleunigung.
- Wenn wir den Graphen der Funktion an einem bestimmten Punkt vergrößern, sodass die Funktion fast wie eine gerade Linie aussieht, ist die Ableitung an diesem Punkt die Steigung der Linie. Das ist dasselbe, als würde man sagen, dass die Ableitung die Steigung der Tangente Linie zum Funktionsgraphen am gegebenen Punkt ist. Als Erinnerung: Eine Tangente ist in der Geometrie eine Gerade, die eine gegebene Kurve oder Funktionsgraphen in einem bestimmten Punkt berührt.
- Die Ableitung ist auch selbst eine Funktion: Sie variiert von Ort zu Ort. Beispielsweise kann sich die Geschwindigkeit eines Autos, die die Änderungsrate des Ortes darstellt selbst von Moment zu Moment ändern, wenn der Fahrer beschleunigt oder verlangsamt.
Wir haben viele Wörter benutzt, um zu beschreiben, was eine Ableitung ist. Mathematiker dagegen versuchen, möglichst viele Wörter zu vermeiden, wenn diese eine mathematische Größe beschreiben möchten. Werfen wir nun einen Blick darauf, wie ein Mathematiker die Ableitung beschreiben würde.
Angenommen, wir möchten die durchschnittliche Steigung der Kurve zwischen zwei Punkten
und
im folgendem Graphen der Funktion ermitteln:

Wir ziehen einfach eine Linie zwischen diesen Punkten und berechnen ihre Steigung. Diese Linie bildet die Hypotenuse eines rechtwinkligen Dreiecks. Die eine Seite des Dreiecks hat die länge (
). Die andere Seite hat die Länge
(
). Um die Steigung
dieses Dreiecks zu berechnen müssen wir einfach die Höhe durch die Breite teilen:
. Es ist üblich, die Steigung mit m zu kennzeichnen. Natürlich ist
, wie gezeigt, nur der Durchschnittswert der Steigung von
zwischen
und
, und es sagt nichts über Steigung im Punkt
aus.
Können wir nun den Wert der Steigung in dem Punkt berechnen? Ja können wir.
Dazu ändern wir zuerst unsere Notation ein wenig und verwenden und (
+
) anstelle von
und
, um unsere beiden Punkte zu kennzeichnen. Dies ermöglicht es uns, die Breite des Intervalls zwischen ihnen (den x-Abstand) durch Reduktion von
zu verkleinern:




Die Steigung der Hypotenuse des Dreiecks (Orange) kann nur bezüglich der neuen Notation umgeschrieben werden:

OK, fast da. Machen Sie nun folgende Gedankenübung: Stellen Sie sich vor, wird immer kleiner und wird irgendwann „unendlich klein“. In der Grenze von
hätten wir die exakte Steigung der Funktion am Punkt
:


Wir haben gesehen, dass durch die Verringerung von die orangefarbene Tangente sich immer mehr an den Graphen schmiegt. Damit kann durch die Verringerung des Abstands zwischen den Punkten
und
die Steigung von
im Punkt
immer besser abgeschätzt werden. Für
= 0 ist die orangefarbene Linie der Funktionsgraphen selbst und die Steigung dieser Linie wäre damit die Steigung der Funktion
im Punkt
.
Das ist die Essenz der Ableitung von Funktionen, auch genannt: Differentialrechnung.
Und genau dieser Vorgang wird durch die Gleichung 2 beschrieben. Wenn die Breite gegen 0 strebt erhalten wir den Wert der Steigung im Punkt
. Die Ableitung von
an diesem Punkt wird durch
abgekürzt. Damit wird die Ableitung einer Funktion
im Punkt
definiert als:


Um Ableitungen von Funktionen zu berechnen, wird die obige Gleichung in der Regel nicht angewandt. Dazu gibt es sog. Ableitungsregeln, die für Gleichungen unterschiedlicher Art angewandt werden können. Bei der Implementierung von neuronalen Netzen in Deep Learning ist es glücklicherweise nicht erforderlich Ableitungen von Funktionen per Hand auszurechnen. Dafür können wir später auf zahlreiche Programmbibliothek zurückgreifen, die diese Arbeit für uns erledigen. Aber vollständigkeit halber möchte ich Ihnen doch kurz an einem Beispiel zeigen, wie Sie die Ableitung der quadratischen Funktion berechnen können.
Dazu wenden wir die sog. Potenzregel an. Wie der Name bereits vermuten lässt, wird die Ableitungsregel immer dann angewandt, wenn wir eine Potenzfunktion ableiten wollen. D.h., wenn die unabhängige Variable mit sich selbst multipliziert wird. Wie im Falle der Quadratischen Funktion . Nehmen wir mal an wir möchten die Steigung dieser Funktion im Punkt
wissen. Die Potenzregel dafür lautet wie folgt:

Was zunächst vielleicht etwas kompliziert aussieht, ist eigentlich ganz einfach:
- Im ersten Schritt schreibt man den Exponenten der Funktion mit einem Mal-Zeichen vor das x.
- Und im zweiten Schritt zieht man von dem Exponenten die 1 ab.
In unserem Fall besitzt die Funktion im Punkt eine Steigung von 6, weil
Noch einfacher ist es eine Konstante Funktion abzuleiten. Beispielsweise =5. Hier haben wir keine unabhängige Variable. Die 5 ist ein konstanter Wert der sich nicht ändert. Dementsprechend ist die Ableitung dieser Funktion 0 für alle Werter von
.
- Ableitung der Funktion an einem Punkt entspricht der Steigung der Tangente, angelegt an diesem Punkt
- Die Ableitung selbst ist eine Funktion
4. Partielle Ableitungen
Interessanter wird es im Falle von Funktionen mit mehreren Variablen. Wie Beispielsweise . Möchte man diese Funktion nach einer Variable ableiten z.B. nach
, wendet man hier die sog. Partielle Ableitung an. Dargestellt durch das folgende Symbol:

Bei der partiellen Ableitung leitet man die Funktion mehrerer Variablen nur nach einer der möglichen Variablen ab, während man die restlichen als Konstanten betrachtet. Wenn wir die Funktion nach
ableiten wollen, dann sind die Terme
,
bezüglich
konstant. Ihre Ableitung nach
wären demzufolge 0. Für den letzten Term
, können wir die Produktregel verwenden. Damit lautet die partielle Ableitung der Funktion
nach der Variable
:

Die Partiellen Ableitungen spielen ein wichtige Rolle bei dem nächsten mathematischen Thema, nämlich den Gradienten.
5. Gradient einer Funktion
Im lezten Kapitel haben wir gelernt wie die Steigung einer Funktion an einem bestimmten Punkte berechnet werden kann. Für Deep Learning ist es jedoch erfordelich Ableitungen von Funktion zu berechnen, die Tausende oder sogar Millionen von Variablen haben. Auch wenn wir nicht in der Lage sind solche Funktion zu visualisieren, mathematisch gesehen, können wir die Ableitungen berechnen und diese für das Training der neuronalen Netze verwenden.
In diesem Abschnitt diskutieren Gradienten. Ein Gradient ist eine mathematische Operation, abgekürzt durch das Symbol ,auch genannt der Nabla-Operator. Der Gradient ist eine Verallgemeinerung der Ableitung einer Funktion mit mehreren Variablen.
Geben sein eine Funktion :
Angenommen wir wollen die Steigung der Funktion im Punkt (,
) berechnen. Wie im letzten Abschnitt besprochen müssen wir dafür die Funktion
partiell nach
und
ableiten.
Wenn wir die Funktion partiell nach ableiten, erhaten wir die Steigung nur in die
-Richtung. Die partielle Ableitung nach
gibt uns dagegen die Steigung in die
-Richtung. Beide Werte sind skalare Größen. Wir befindet uns aber in einem 3D Raum, was bedeutet, dass die Steigung in diesem Fall nicht nur einen Betrag haben muss, sondern auch eine Richtung.
Hier kommen Gradienten ins Spiel. Ein Gradient weist nicht nur einen Betrag sondern auch eine Richtung auf.
Und so wären wir zurück bei dem Gradienten. Ein Gradient ist eine Operation, die an eine Funktion angewandt wird. Der Gradient einer Funktion ist definiert als ein Vektor, in dem jeder Eintrag durch eine partielle Ableitung der Funktion
nach einer Variable
dargestellt ist. Der Gradient der Funktion
ist damit gegeben als:

In Gl. 6 sehen wir, dass die partielle Ableitung der Funktion nach
den ersten Eintrag im Vektor darstellt, und die partielle Ableitung nach
den zweiten. Damit haben wir mit
einen Richtungsvektor geschaffen. Der erste Eintrag im Vektor gibt hier den größten Anstieg in die
-Richtung an. Analog, gibt der zweite Eintrag den größten Anstieg in die
-Richtung an. Betrachten wir den Gradienten-Vektor als Ganzes, so ist dieser, ein Pfeil, der in die Richtung des größten Anstiegs der Funktion
im Punkt (x,y) anzeigt.
Der Gradient zeigt in die Richtung der größten Steigung von
, ausgehend vom Punkt
.
Zum intuitiven Verständnis könnte man die Funktion als einen Bergen vorstellen. Angenommen, Sie stehen auf dem Berg auf der Position (
,
):

Richtung Nordosten geht es bergauf, richtung Südwesten gehts runter. Der Gradient im Punkt (,
) zeigt uns die Richtung des größten Anstiegs dieses Bergs, ausgehend von unserer Postion im Punkt
Wollen wir nun quantisieren wie stark der Anstieg bzw. Gradient einer Funktion ist müssen wir die Norm des Gradienten berechnen. Dies gibt uns einen skalaren Wert, der angibt, wie schnell die Funktion in die Richtung zunimmt, in die der Gradient der Funktion zeigt. Für die Funktion ist der Gradienten im Punkt
gegeben als:

Die Berechnung der euklidischen Norm des Gradienten in dem Punkt ergibt:
Damit haben wir mit 8.24 einen quantitativen Wert für den größten Anstieg der Funktion in dem gegebenen Punkt erhalten.
Mit dem -Operator oder dem Gradienten haben wir somit eine Möglichkeit entdeckt die Steigung einer Funktion mit beliebig vielen Variablen in einem mehrdimensionalen Raum zu bestimmen. Damit kann es jetzt vollkommen egal sein, wie komplex eine Funktion ist. Alein durch die Berechnung der partiellen Ableitungen der Funktion nach den vorkommenden Variablen und Anordnung dieser partiellen Ableitungen in einen Vektor, sind wir in der Lage die Richtung des größten Anstiegs der Funktion anzugeben.
Gradienten sind beim Deep Learning enorm wichtig und bilden die Grundlage für das Training künstlicher neuronaler Netze. Beim Training geben die Gradienten einer vor-definierten Verlustfunktion an, in welcher Richtung die optimalen Parameter der neuronalen Netze für das gegebene Problem liegen.
Minima und Sattelpunkt eine Funktion bezüglich der Ableitung
Nachdem wir uns mit dem Thema der Ableitungen von Funktionen beschäftigt haben, müssen wir kurz zu dem Thema der Minima und Sattelpunkt einer Funktion kurz zurückkehren. Betrachtet wir hierzu nochmal die Verläufe der Funktionen, die lokale und globale Minima, sowie Sattelpunkte aufweisen.



Anhand der Definition einer Ableitung, die ja den Anstieg einer Funktion angibt, sollte Ihnen vielleicht schon aufgefallen sein, was mit der Ableitung an diesen Stellen passiert. Die Ableitung der Funktion an den Sattelpunkten und den Minima wird 0. Weil genau an diesen Stellen ist die Funktion flach und weist somit keine Steigung auf (Magentafarbene Linie):
.