Kapitel 1. Einführung

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Was ist Lineare Algebra und warum sollte man sie lernen?

Die lineare Algebra hat eine interessante Geschichte in der Mathematik, die im Westen bis ins 17. Jahrhundert und in China noch viel früher zurückreicht. Matrizen - die Zahlentabellen, die das Herzstück der linearen Algebra bilden - wurden verwendet, um eine kompakte Notation für die Speicherung von Zahlenmengen wie geometrischen Koordinaten (dies war Descartes' ursprüngliche Verwendung von Matrizen) und Gleichungssystemen (die von Gauß eingeführt wurde) zu schaffen. Im 20. Jahrhundert wurden Matrizen und Vektoren für die multivariate Mathematik verwendet, z. B. für die Infinitesimalrechnung, Differentialgleichungen, Physik und Wirtschaftswissenschaften.

Aber bis vor kurzem brauchten sich die meisten Menschen nicht um Matrizen zu kümmern. Die Sache ist die: Computer sind extrem effizient bei der Arbeit mit Matrizen. Und so hat die moderne Computertechnik die moderne lineare Algebra hervorgebracht. Die moderne lineare Algebra ist rechnergestützt, während die traditionelle lineare Algebra abstrakt ist. Moderne lineare Algebra lernt man am besten durch Code und Anwendungen in Grafik, Statistik, Datenwissenschaft, KI und numerischen Simulationen, während man die traditionelle lineare Algebra durch Beweise und das Nachdenken über unendlich-dimensionale Vektorräume lernt. Die moderne lineare Algebra liefert die strukturellen Balken, die fast jeden Algorithmus unterstützen, der auf Computern implementiert wird, während die traditionelle lineare Algebra oft intellektuelles Futter für fortgeschrittene Mathematikstudenten ist.

Willkommen in der modernen linearen Algebra.

Solltest du lineare Algebra lernen? Das hängt davon ab, ob du Algorithmen und Verfahren verstehen oder einfach Methoden anwenden willst, die andere entwickelt haben. Ich will Letzteres nicht abwerten - es ist nichts Falsches daran, Werkzeuge zu benutzen, die du nicht verstehst (ich schreibe dies auf einem Laptop, den ich zwar benutzen kann, aber nicht von Grund auf neu bauen könnte). Aber wenn man bedenkt, dass du ein Buch mit diesem Titel in der O'Reilly Buchsammlung liest, nehme ich an, dass du entweder (1) wissen willst, wie Algorithmen funktionieren, oder (2) Berechnungsmethoden entwickeln oder anpassen willst. Also ja, du solltest lineare Algebra lernen, und zwar die moderne Version davon.

Über dieses Buch

Das Ziel dieses Buches ist es, dir moderne lineare Algebra beizubringen. Dabei geht es nicht darum, ein paar Schlüsselgleichungen auswendig zu lernen und abstrakte Beweise zu erbringen, sondern darum, dir beizubringen, wie du über Matrizen, Vektoren und die darauf wirkenden Operationen denkst. Du wirst ein geometrisches Gespür dafür entwickeln, warum lineare Algebra so ist, wie sie ist. Und du wirst verstehen, wie du Konzepte der linearen Algebra in Python-Code umsetzen kannst, wobei der Schwerpunkt auf Anwendungen im maschinellen Lernen und in der Datenwissenschaft liegt.

Viele traditionelle Lehrbücher der linearen Algebra vermeiden numerische Beispiele im Interesse von Verallgemeinerungen, erwarten, dass du schwierige Beweise selbst ableitest, und lehren unzählige Konzepte, die für die Anwendung oder Implementierung in Computern wenig oder gar keine Bedeutung haben. Das soll keine Kritik sein - abstrakte lineare Algebra ist schön und elegant. Aber wenn es dein Ziel ist, die lineare Algebra (und die Mathematik im Allgemeinen) als Werkzeug für das Verständnis von Daten, Statistik, Deep Learning, Bildverarbeitung usw. zu nutzen, dann können dir traditionelle lineare Algebra-Lehrbücher wie eine frustrierende Zeitverschwendung vorkommen, die dich verwirrt und über dein Potenzial in einem technischen Bereich besorgt zurücklässt.

Dieses Buch ist für Lernende geschrieben, die im Selbststudium lernen. Vielleicht hast du einen Abschluss in Mathematik, Ingenieurwesen oder Physik, musst aber lernen, wie man lineare Algebra in Code umsetzt. Oder vielleicht hast du kein Mathematikstudium absolviert und erkennst jetzt die Bedeutung der linearen Algebra für dein Studium oder deine Arbeit. In jedem Fall ist dieses Buch ein eigenständiges Hilfsmittel; es ist nicht nur eine Ergänzung zu einer Vorlesung (auch wenn es für diesen Zweck verwendet werden könnte).

Wenn du beim Lesen der letzten drei Absätze zustimmend mit dem Kopf genickt hast, dann ist dieses Buch definitiv etwas für dich.

Wenn du tiefer in die lineare Algebra eintauchen möchtest, mit mehr Beweisen und Erkundungen, dann gibt es mehrere ausgezeichnete Texte, die du in Betracht ziehen kannst, einschließlich meiner eigenen Linearen Algebra: Theorie, Intuition, Code (Sincxpress BV).1

Voraussetzungen

Ich habe versucht, dieses Buch für begeisterte Lernende mit minimalem formalen Hintergrund zu schreiben. Allerdings lernt man nie etwas wirklich von Grund auf.

Mathe

Du solltest mit der Schulmathematik vertraut sein. Nur grundlegende Algebra und Geometrie, nichts Ausgefallenes.

Für dieses Buch ist absolut keine Infinitesimalrechnung erforderlich (obwohl Differentialrechnung für Anwendungen wichtig ist, bei denen oft lineare Algebra verwendet wird, wie z.B. Deep Learning und Optimierung).

Aber am wichtigsten ist, dass du dich wohlfühlst, wenn du über Mathematik nachdenkst, Gleichungen und Grafiken betrachtest und die intellektuelle Herausforderung annimmst, die mit dem Studium der Mathematik einhergeht.

Einstellung

Lineare Algebra ist ein Zweig der Mathematik, ergo ist dies ein Mathematikbuch. Mathe zu lernen, vor allem als Erwachsener, erfordert etwas Geduld, Hingabe und eine durchsetzungsfähige Einstellung. Hol dir eine Tasse Kaffee, atme tief durch, lege dein Handy in einen anderen Raum und stürze dich hinein.

Es gibt eine Stimme in deinem Hinterkopf, die dir sagt, dass du zu alt oder zu dumm bist, um höhere Mathematik zu lernen. Manchmal ist diese Stimme lauter und manchmal leiser, aber sie ist immer da. Und es geht nicht nur dir so - jeder hat sie. Du kannst diese Stimme nicht unterdrücken oder zerstören; versuche es erst gar nicht. Akzeptiere einfach, dass ein bisschen Unsicherheit und Selbstzweifel zum Menschsein dazugehören. Jedes Mal, wenn sich diese Stimme meldet, ist es eine Herausforderung für dich, ihr das Gegenteil zu beweisen.

Codierung

Dieses Buch konzentriert sich auf lineare Algbera-Anwendungen im Code. Ich habe dieses Buch für Python geschrieben, weil Python derzeit die am weitesten verbreitete Sprache in den Bereichen Data Science, maschinelles Lernen und verwandten Bereichen ist. Wenn du andere Sprachen wie MATLAB, R, C oder Julia bevorzugst, hoffe ich, dass es dir leicht fällt, den Python-Code zu übersetzen.

Ich habe versucht, den Python-Code so einfach wie möglich zu gestalten, aber dennoch für Anwendungen relevant zu sein. Kapitel 16 bietet eine grundlegende Einführung in die Python-Programmierung. Solltest du dieses Kapitel durcharbeiten? Das hängt davon ab, wie gut du Python beherrschst:

Mittelstufe/Fortgeschrittene (>1 Jahr Kodiererfahrung)

Überspringe Kapitel 16 ganz oder überfliege es, um einen Eindruck von der Art des Codes zu bekommen, der im Rest des Buches vorkommen wird.

Einige Kenntnisse (<1 Jahr Erfahrung)

Bitte arbeite dich durch das Kapitel, falls es Material gibt, das neu ist oder das du auffrischen musst. Aber du solltest es recht zügig durcharbeiten können.

Total Anfänger

Geh das Kapitel im Detail durch. Bitte habe Verständnis dafür, dass dieses Buch kein vollständiges Python-Tutorial ist. Wenn du also mit dem Code in den Inhaltskapiteln nicht zurechtkommst, solltest du dieses Buch zur Seite legen, einen speziellen Python-Kurs oder ein Buch durcharbeiten und dann zu diesem Buch zurückkehren.

Mathematische Beweise versus Intuition durch Kodierung

Das Ziel eines Mathematikstudiums ist es, Mathe zu verstehen. Wie kannst du Mathe verstehen? Lass uns die Möglichkeiten aufzählen:

Strenge Beweise

Ein Beweis in der Mathematik ist eine Folge von Aussagen, die zeigen, dass eine Reihe von Annahmen zu einer logischen Schlussfolgerung führt. Beweise sind in der reinen Mathematik unbestritten wichtig.

Visualisierungen und Beispiele

Klar formulierte Erklärungen, Diagramme und numerische Beispiele helfen dir, ein Gefühl für die Konzepte und Operationen der linearen Algebra zu bekommen. Die meisten Beispiele werden zur besseren Veranschaulichung in 2D oder 3D dargestellt, aber die Prinzipien gelten auch für höhereDimensionen.

Der Unterschied besteht darin, dass formale mathematische Beweise Strenge, aber nur selten Intuition vermitteln, während Visualisierungen und Beispiele durch praktische Erfahrung eine dauerhafte Intuition vermitteln, aber das Risiko von Ungenauigkeiten aufgrund von spezifischen Beispielen, die nicht verallgemeinerbar sind, bergen.

Beweise für wichtige Behauptungen sind enthalten, aber ich konzentriere mich mehr auf die Vermittlung von Intuition durch Erklärungen, Visualisierungen und Codebeispiele.

Und das bringt mich zur mathematischen Intuition aus dem Programmieren (was ich manchmal "Soft Proofs" nenne). Die Idee ist folgende: Du gehst davon aus, dass Python (und Bibliotheken wie NumPy und SciPy) das Low-Level Number Crunching korrekt implementiert, während du dich auf die Prinzipien konzentrierst, indem du viele numerische Beispiele im Code erkundest.

Ein kurzes Beispiel: Wir werden das Kommutativitätsprinzip der Multiplikation "soft-proven", das besagt, dass a × b = b × a :

a = np.random.randn()
b = np.random.randn()
a*b - b*a

Dieser Code erzeugt zwei Zufallszahlen und testet die Hypothese, dass das Vertauschen der Reihenfolge der Multiplikation keinen Einfluss auf das Ergebnis hat. Die dritte Zeile von würde 0.0 ausgeben, wenn das Kommutativitätsprinzip wahr ist. Wenn du diesen Code mehrmals ausführst und immer 0.0 erhältst, hast du ein Gespür für die Kommutativität entwickelt, indem du das gleiche Ergebnis in vielen verschiedenen Zahlenbeispielen gesehen hast.

Um es klar zu sagen: Intuition aus Code ist kein Ersatz für einen strengen mathematischen Beweis. Der Punkt ist, dass "weiche Beweise" es dir ermöglichen, mathematische Konzepte zu verstehen, ohne dich um die Details der abstrakten mathematischen Syntax und Argumente kümmern zu müssen. Das ist besonders für Programmierer/innen von Vorteil, die keine fortgeschrittenen mathematischen Kenntnisse haben.

Die Quintessenz ist, dass du mit ein bisschen Programmieren eine Menge Mathe lernen kannst.

Code, im Buch abgedruckt und online herunterladbar

Du kannst dieses Buch lesen, ohne dir Code anzuschauen oder Codeaufgaben zu lösen. Das ist in Ordnung, und du wirst sicherlich etwas lernen. Aber sei nicht enttäuscht, wenn dein Wissen oberflächlich und flüchtig ist. Wenn du die lineare Algebra wirklich verstehen willst, musst du Probleme lösen. Deshalb gibt es in diesem Buch Code-Demonstrationen und Übungen zu jedem mathematischen Konzept.

Der wichtige Code ist direkt im Buch abgedruckt. Ich möchte, dass du den Text und die Gleichungen liest, dir die Diagramme ansiehst und gleichzeitig den Code siehst. So kannst du die Konzepte und Gleichungen mit dem Code verknüpfen.

Aber Code in einem Buch auszudrucken kann viel Platz wegnehmen, und Code von Hand auf den Computer zu kopieren ist mühsam. Deshalb werden nur die wichtigsten Codezeilen auf den Buchseiten abgedruckt; der Online-Code enthält zusätzlichen Code, Kommentare, grafische Verzierungen und so weiter. Der Online-Code enthält auch die Lösungen zu den Programmierübungen (alle, nicht nur die ungeraden Zahlen!). Du solltest den Code auf jeden Fall herunterladen und ihn durchgehen, während du das Buch durcharbeitest.

Der gesamte Code kann von der GitHub-Seite https://github.com/mikexcohen/LinAlg4DataScience heruntergeladen werden. Du kannst dieses Repository klonen oder einfach das gesamte Repository als ZIP-Datei herunterladen (du musst dich nicht registrieren, einloggen oder bezahlen, um den Code herunterzuladen).

Ich habe den Code mit dem Jupyter-Notizbuch in der Colab-Umgebung von Google geschrieben. Ich habe mich für Jupyter entschieden, weil es eine freundliche und einfach zu bedienende Umgebung ist. Ich empfehle dir aber, die Python-IDE zu verwenden, die du bevorzugst. Der Online-Code wird der Einfachheit halber auch als Rohdateien im .py-Format bereitgestellt.

Code-Übungen

Mathe ist kein Zuschauersport. In den meisten Mathebüchern gibt es unzählige Papier- und Bleistiftaufgaben, die du durcharbeiten musst (und seien wir ehrlich: niemand macht sie alle). Aber in diesem Buch geht es um angewandte lineare Algebra, und niemand wendet lineare Algebra auf Papier an! Stattdessen wendest du lineare Algebra im Code an. Anstelle von handbearbeiteten Problemen und mühsamen Beweisen, die "dem Leser als Übung überlassen werden" (wie Mathelehrbuchautoren gerne schreiben), enthält dieses Buch daher viele Code-Übungen.

Die Code-Übungen variieren im Schwierigkeitsgrad. Wenn du neu in Python und in der linearen Algebra bist, wirst du einige Übungen vielleicht als sehr schwierig empfinden. Wenn du nicht weiterkommst, hier ein Vorschlag: Wirf einen kurzen Blick auf meine Lösung, um dich inspirieren zu lassen, leg sie dann weg, damit du meinen Code nicht sehen kannst, und arbeite an deinem eigenen Code weiter.

Wenn du deine Lösung mit meiner vergleichst, solltest du bedenken, dass es viele Wege gibt, Probleme in Python zu lösen. Es ist wichtig, die richtige Antwort zu finden; die Schritte, die du unternimmst, um dorthin zu gelangen, sind oft eine Frage des persönlichen Programmierstils.

Wie man dieses Buch benutzt (für Lehrkräfte und Selbstlerner)

Es gibt drei Bereiche, in denen dieses Buch nützlich ist:

Selbstlerner

Ich habe versucht, dieses Buch für Leserinnen und Leser zugänglich zu machen, die lineare Algebra auf eigene Faust und außerhalb eines formalen Unterrichts lernen wollen. Es sind keine zusätzlichen Ressourcen oder Online-Vorlesungen erforderlich, obwohl es natürlich unzählige andere Bücher, Websites, YouTube-Videos und Online-Kurse gibt, die für Schüler/innen hilfreich sein könnten.

Primäres Lehrbuch in einem Data Science Kurs

Dieses Buch kann als primäres Lehrbuch in einem Kurs über die mathematischen Grundlagen von Data Science, maschinellem Lernen, KI und verwandten Themen verwendet werden. Es besteht aus 14 Kapiteln (ohne diese Einführung und den Python-Anhang), und man kann davon ausgehen, dass die Schüler/innen ein bis zwei Kapitel pro Woche durcharbeiten. Da die Schüler/innen Zugang zu den Lösungen aller Übungen haben, können die Lehrkräfte die Übungen im Buch durch zusätzliche Aufgabenstellungen ergänzen.

Sekundäres Lehrbuch für einen Mathekurs mit Schwerpunkt Lineare Algebra

Dieses Buch könnte auch als Ergänzung in einem Mathematikkurs mit einem starken Fokus auf Beweisen verwendet werden. In diesem Fall würden sich die Vorlesungen auf die Theorie und strenge Beweise konzentrieren, während dieses Buch für die Umsetzung der Konzepte in Code mit Blick auf Anwendungen in den Bereichen Datenwissenschaft und maschinelles Lernen herangezogen werden könnte. Wie ich bereits oben geschrieben habe, können Lehrkräfte zusätzliche Übungen anbieten, da die Lösungen für alle Übungen im Buch online verfügbar sind.

1 Ich entschuldige mich für die schamlose Eigenwerbung; ich verspreche, dass dies das einzige Mal in diesem Buch ist, dass ich dich so verwöhne.

Get Praktische Lineare Algebra für Data Science now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.