KAPITEL 1
Grundbausteine
Merken Sie sich diese Formeln nicht. Wenn Sie die Konzepte verstehen, können Sie Ihre eigene Schreibweise erfinden.
– John Cochrane, Investments Notes 2006 (https://oreil.ly/33CVXjg)
Dieses Kapitel erklärt Ihnen einige grundsätzliche Gedankenmodelle, die für das Verständnis neuronaler Netze notwendig sind. Insbesondere kümmern wir uns um verschachtelte mathematische Funktionen und ihre Ableitungen. Wir beginnen mit möglichst einfachen Bausteinen und arbeiten uns von dort aus vor, um zu zeigen, dass komplexe Funktionen aus einer »Kette« von Einzelfunktionen erstellt werden können. Selbst wenn eine dieser Teilfunktionen eine Matrizenmultiplikation mit mehreren Eingaben ist, können wir die Ableitung ihrer Ausgaben bezogen auf die Eingaben berechnen. Das Verständnis der Funktionsweise dieses Prozesses ist essenziell, um neuronale Netze als Ganzes zu verstehen, die wir in Kapitel 2 genauer betrachten werden.
Mit dem wachsenden Verständnis dieser Grundbausteine neuronaler Netze werden wir jedes neu eingeführte Konzept systematisch auf drei Arten beschreiben:
- Mathematisch – in der Form einer oder mehrerer Gleichungen.
- Als Code – mit so wenig zusätzlicher Syntax wie möglich (was Python zu einer idealen Wahl macht).
- Als erklärendes Diagramm – wie Sie es beispielsweise während eines »Coding Interviews« auf ein Whiteboard zeichnen würden.
Wie Sie in diesem Kapitel sehen werden, liegt eine der Herausforderungen zum Verständnis neuronaler Netze in der Anwendung verschiedener Gedankenmodelle. Jede der drei Sichtweisen ist für sich genommen nicht ausreichend. Nur gemeinsam bekommen wir ein vollständiges Bild davon, warum und wie verschachtelte mathematische Funktionen auf die ihnen eigene Weise funktionieren. Grundsätzlich habe ich hierzu eine ziemlich klare Meinung: Jeder Versuch, die Grundbausteine neuronaler Netze nicht aus allen drei Perspektiven zu erklären, ist meiner Meinung nach unvollständig.
Nachdem das klar ist, können wir unsere ersten Schritte unternehmen. Wir beginnen mit besonders einfachen Grundbausteinen, um zu zeigen, wie wir verschiedene Konzepte aus diesen drei Perspektiven verstehen können. Unser erster Baustein ist ein einfaches, aber äußerst wichtiges Konzept: die mathematische Funktion.
Funktionen
Was ist eine Funktion, und wie wird sie beschrieben? Bei neuronalen Netzen gibt es hierfür mehrere Wege. Keiner dieser Wege ist für sich genommen vollständig. Daher will ich gar nicht erst versuchen, Ihnen das alles in einem einzigen knackigen Satz zu präsentieren. Stattdessen gehen wir die drei Gedankenmodelle (Mathematik, Code, Diagramm) nacheinander durch. Sie werden die Rolle der im Vorwort beschriebenen »blinden Menschen« einnehmen, die jeweils einen Teil des Elefanten beschreiben.
Mathematik
Hier sehen Sie zwei Beispiele für Funktionen in mathematischer Schreibweise:
- f1(x) = x2
- f2(x) = max(x, 0)
In dieser Schreibweise haben wir zwei Funktionen namens f1 und f2. Sie übernehmen eine Zahl x als Eingabe und wandeln diese in x2 (im ersten Fall), bzw. max(x, 0) (im zweiten Fall) um.
Diagramme
Auch grafisch können Funktionen dargestellt werden. Dafür führt man folgende Schritte aus:
- Zeichnen Sie einen x-y-Graphen (wobei x für die horizontale Achse steht und y für die vertikale Achse).
- Plotten Sie eine Anzahl von Punkten. Dabei stehen die x-Koordinaten der Punkte (üblicherweise in regelmäßigen Abständen) für die Eingaben der Funktion über einen bestimmten Bereich; die y-Koordinaten stehen für die Ausgaben der Funktionen über den gegebenen Bereich.
- Verbinden Sie die geplotteten Punkte miteinander.
Dieses Verfahren wurde zuerst von dem französischen Philosophen René Descartes1 an...