"Dive Into Deep Learning": Ein interaktives Buch für DL

Das interaktive und kostenlose Maschine-Learning-Buch D2L hilft beim Einstieg in Deep Learning.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Künstliche Intelligenz als Hilfswissenschaftler: KI revolutioniert die Forschung

(Bild: Phonlamai Photo/Shutterstock.com)

Lesezeit: 13 Min.
Von
  • Kay Glahn
Inhaltsverzeichnis

Das Thema Deep Learning ist zwar in aller Munde, aber oft ist es schwierig, für den Einstieg das passende Buch oder den richtigen Kurs inklusive passender Programmierbeispiele zu finden. Das Open-Source-Projekt D2L will mit dem kostenlosen Buch "Dive into Deep Learning" Abhilfe schaffen. Es unterscheidet sich grundlegend von einem herkömmlichen Lehrbuch, da es komplett interaktiv gestaltet ist. Die einzelnen Kapitel sind als Jupyter Notebooks verfügbar, in denen man das Gelernte direkt in die Praxis umsetzen kann.

Wer lieber den klassischen Weg gehen möchte, kann das Buch als PDF-Dokument herunterladen oder als Print-Version kaufen, allerdings mit Einschränkungen: Während die chinesische gedruckte Variante ein Bestseller ist, ist die englische Print-Ausgabe zurzeit nur für Lehrer und Professoren über die Autoren beziehbar.

Das Projekt D2L ist auf GitHub gehostet. Die federführenden Autoren Aston Zhang, Zack C. Lipton, Mu Li und Alex J. Smola sowie viele freiwillige Kontributoren halten es ständig auf dem neusten Stand. Während das Hauptprojekt in englischer Sprache verfasst ist, existieren Übersetzungen in diverse andere Sprachen, die als eigene Repositories auf GitHub angelegt, aber nicht immer auf dem aktuellen Stand sind. Die chinesische, türkische und japanische Version entsprechen weitgehend der englischen, aber die deutsche Übersetzung wurde seit über zwei Jahren nicht mehr aktualisiert.

Der interaktive Kurs ist auch als klassische Print-Ausgabe verfügbar (Abb. 1).

(Bild: d2l.ai)

Die Textinhalte sind unter der Lizenz Creative Commons Attribution-ShareAlike 4.0 International verfügbar. Die Beispielprogramme und der Referenzcode stehen unter einer modifizierten MIT-Lizenz. Das Open-Source-Projekt sollte man nicht mit der gleichnamigen Firma D2L verwechseln, die Lernplattformen wie Brightspace und Wave anbietet und mit dem interaktiven Buch nichts zu tun hat.

Ziel von D2L ist es, sowohl theoretisches Verständnis als auch praktisches Implementierungswissen über Deep Learning zu vermitteln. Dabei standen von Anfang an folgende Anforderungen im Vordergrund: Der Kurs soll für jeden kostenlos verfügbar sein. Er soll ausreichend technisch in die Tiefe gehen, um einen Startpunkt für angehende Maschine-Learning-Profis zu bieten und dabei gleichzeitig anhand von ausführbarem Code zeigen, wie sich konkrete Problemstellungen in der Praxis lösen lassen.

Die Autoren sowie die Community stellen stets Updates bereit, um schnell auf neue Softwareversionen und Entwicklungen im Bereich Deep Learning zu reagieren. Das Buch ist somit als lebendes Dokument angelegt, bei dem jede Aktualisierung des Open-Source-Projekts automatisch in die PDF- und HTML-Dokumente sowie die Jupyter Notebooks einfließt. Zuletzt haben die Betreiber beispielsweise neue Themen wie Generalization in Classification and Deep Learning, ResNeXt, CNN Design Space und Transformers for Vision und Large-Scale Pretraining hinzugefügt. Zusätzlich ergänzt ein Forum den Kurs, das interaktive Diskussionen über technische Details erlaubt und das Antworten auf alle noch verbleibenden Fragen liefern soll. Am Ende jedes Notebooks verweist ein Link auf die zugehörige Seite im Diskussionsforum.

400 Universitäten in 60 Ländern nutzen D2L als vorlesungsbegleitende Lektüre, darunter Stanford, MIT, Harvard und Cambridge. Außerdem halten die Mitautoren Alex Smola und Mu Li die zugehörige Vorlesung "Introduction to Deep Learning" an der kalifornischen Universität UC Berkeley, deren Material inklusive Videos online verfügbar ist und das Buch ergänzt.

Ein wesentliches Konzept des Buchs ist Learning by Doing. Bis auf einige Ausnahmen bei der Einführung in die mathematischen Grundlagen stellt jedes Kapitel neben neuen Konzepten auch Arbeitsbeispiele vor, die auf echten Datensets beruhen und üblicherweise jeweils in einem separaten Jupyter Notebook bereitstehen. Dadurch kann jede und jeder das Notebook kopieren, um den Beispielcode als Basis für eigene Projekte oder Experimente zu nutzen.

D2L versucht, neue Konzepte just-in-time zu vermitteln, indem es sie immer dann aufgreift, wenn sie für eine praktische Aufgabe erforderlich sind. Dabei nimmt das Buch die praktische Umsetzung oft zunächst vorweg und geht erst im nächsten Schritt auf die zugrundeliegenden Konzepte und die Zusammenhänge ein. Auf diese Weise steht das Erfolgserlebnis vor der Theorie. Am Ende jedes Kapitels findet man zusätzliche Übungsaufgaben. Diese gehen häufig weiter in die Tiefe, um auch Maschine-Learning-Konzepte und das Verständnis zu vermitteln, von denen die Abstraktions-Layer der üblichen Maschine Learning Frameworks einen oft abschirmen.

Die programmatische Umsetzung erfolgt meist von Grund auf mit NumPy. Doch die Beispiele zeigen auch, wie man in der Praxis von den Features des gewählten High-Level-Frameworks profitieren kann. Hierfür bietet das Projekt eine eigene API in Form des Python-Pakets D2L, das häufig verwendete Funktionen für spätere Kapitel bereitstellt. Damit lassen sich Wiederholungen vermeiden. Im Lauf der Kapitel sind einzelne Codeblöcke wie Funktionen, Klassen oder Sammlungen von Import-Anweisungen mit dem Kommentar #@saveto markiert, um zu kennzeichnen, dass spätere Passagen darauf mit dem D2L-Package zurückgreifen werden. Hierfür kommt seit Juli 2022 eine neue API zum Einsatz. Das ursprüngliche Package ist allerdings weiterhin in Form der Classic API verfügbar. In Kapitel 20 "Appendix: Tools for Deep Learning" ist die API im Detail dokumentiert.

Den Autoren ist wichtig, dass die Leserinnen und Leser die Konzepte nicht nur in der Praxis anwenden können, sondern auch die Grundlagen im Detail verstehen. Trotzdem versuchen sie den richtigen Mittelweg zu finden und gerade Einsteiger in die Thematik nicht mit zu viel Theorie abzuschrecken oder die Kurse zu zeitaufwendig zu gestalten. Wer zu bestimmten Themen weiter in die Tiefe gehen will, findet ausführlichere Werke zum Thema Deep Learning, die einzelne Aspekte noch genauer beschreiben.

Das Buch unterteilt sich in drei Hauptteile, "Basic und Preliminaries", "Modern Deep Learning Techniques" und "Scalability, Efficiency, and Applications". Der erste Teil von Kapitel 1 bis 5 beginnt mit den Grundlagen des Deep Learning, gefolgt von einer Einführung in die wichtigsten Handwerkzeuge – vor allem die konkrete Anwendung von Operationen aus Algebra, Infinitesimalrechnung und Statistik sowie das Manipulieren von Daten. Die übrigen Kapitel des ersten Teils beschäftigen sich mit Konzepten und Techniken des Deep Learning wie Regression und Classification, linearen Modellen, Multilayer Perceptrons sowie Overfitting und Regularization.

Übersicht über die Kapitelstruktur von Dive into Deep Learning

(Bild: d2l.ai)

Der zweite Teil des Buchs beschreibt in den Kapiteln 6 bis 11 zunächst die grundlegenden Rechenkomponenten eines Deep-Learning-Systems, bevor es in den folgenden Kapiteln auf komplexere Modelle eingeht. Dazu gehört eine Einführung in Convolutional Neural Networks (CNNs), die vor allem für Bilderkennungssysteme relevant sind, und Recurrent Neural Networks (RNNs), die in erster Linie für die Spracherkennung und die Vorhersage von Zeitreihen zum Einsatz kommen. Eine Einführung in Attention-Mechanismen rundet den zweiten Teil ab. Dabei handelt es sich um eine relativ neue Art von Modellen, die inzwischen RNNs als dominante Architektur für viele Spracherkennungsanwendungen verdrängen.

Die Kapitel 12 bis 18 bilden schließlich den dritten Teil des Buchs und decken Themen wie Optimierungsalgorithmen zum Trainieren von Deep-Learning-Modellen ab und sprechen die zahlreichen Faktoren an, die sich auf die Performance von Deep Learning Code auswirken. Außerdem widmen sich mehrere Kapitel der praktischen Anwendung von Bilderkennung und Sprachverarbeitung. Neu hinzugekommen sind die Kapitel 17 und 18 über Recommender-Systeme (Empfehlungsdienste) und Generative Adversarial Networks (GAN). Ergänzt wird das Buch durch zwei Anhänge. Während Appendix 19 auf die mathematischen Grundlagen des Deep Learning eingeht, beschäftigt sich Appendix 20 mit den erforderlichen Softwaretools, der Hardware und der D2L API, die im Rahmen des Kurses zum Einsatz kommt.

Die interaktiven Codebeispiele, die in die jeweiligen Kapitel eingebunden sind, stehen direkt in Form von Python-Code bereit, der in Jupyter Notebooks eingebettet ist. Nachdem D2L ursprünglich den Schwerpunkt auf Apache MXNet gelegt hat, bietet das Projekt inzwischen eine Anbindung an die drei führenden ML-Frameworks PyTorch, MXNet und TensorFlow. Je nachdem, für welche Variante man sich entscheidet, ändert sich der Python-Code in den jeweiligen Kapiteln. Der dazugehörige Buchtext passt sich ebenfalls dynamisch an.

Die Auswahl des gewünschten Frameworks erfolgt in der HTML-Version des Buchs über die Registerkarte vor dem jeweiligen Abschnitt. Leserinnen und Leser können damit auch zwischen unterschiedlichen Frameworks hin- und herspringen, um einen Einblick in die Implementierung mit dem jeweiligen Framework zu bekommen und die Unterschiede zu erkunden. Die Jupyter Notebooks beziehen sich auf jeweils eins der drei Frameworks. Die Versionen für PyTorch und MXNet sind zusätzlich direkt als PDF-Dokument verfügbar. Über einen Link auf der Website im jeweiligen Kapitel lassen sich die Jupyter Notebooks ausführen.

Wer sie alternativ lokal auf dem eigenen Rechner ausführen will, muss zunächst eine passende Umgebung aufsetzen, die Python, die Jupyter Notebooks, die erforderlichen Python-Bibliotheken und den Code zum Ausführen des Buchs umfasst. Am einfachsten geht das mit Miniconda. Voraussetzung für D2L ist Python 3.x, wobei aktuell die Version 3.9 empfohlen wird. Als Nächstes gilt es, eins der Deep-Learning-Frameworks und das D2L-Package zu installieren, das häufig genutzte Funktionen und Klassen bereitstellt, die im Buch an unterschiedlichen Stellen zum Einsatz kommen. Schließlich gilt es, den Code der Jupyter Notebooks herunterzuladen und auszuführen. Er ist über den Notebooks-Button auf allen Seiten der D2L-Website als Download in Form eines ZIP-Archives verfügbar. Eine detaillierte Anleitung findet sich im Kapitel "Installation".

Wer sich den Installationsaufwand sparen möchte, kann auf die Cloud zurückgreifen. Der Code lässt sich mit Amazon SageMaker – seit Ende letzten Jahres kostenlos direkt im SageMaker Studio Lab von Amazon – oder in einem Colab Notebook von Google ausführen. Jede Seite bietet Links, um die Juypter Notebooks direkt in SageMaker Studio Lab oder Google Colab zu öffnen. Während man Google Colab mit einem Google Account kostenlos nutzen kann, fallen bei der Nutzung von SageMaker in Amazons AWS Cloud Gebühren an. Das SageMaker Studio Lab stellt eine abgespeckte Version davon dar, die kostenlos verfügbar ist. Für den Zugang ist allerdings ein separater Account erforderlich, den Amazon derzeit via Warteliste an Interessenten vergibt. Laut eigenen Angaben genehmigt Amazon den Account üblicherweise innerhalb von ein bis fünf Arbeitstagen.

Der Appendix beschreibt im Detail den Umgang mit Jupyter Notebooks, Google Colab und Amazon SageMaker. Ein separates Kapitel widmet sich der Installation der Umgebung auf einer Linux-basierten Amazon-EC2-Instanz, die in der Nutzung üblicherweise kostengünstiger ist als der Einsatz von Amazon SageMaker. Die Anleitung lässt sich genauso gut für die Installation der D2L-Umgebung auf anderen virtuellen Maschinen beispielsweise in Microsoft Azure nutzen. Bei der Auswahl der passenden Hardware – egal, ob auf dem eigenen PC oder in der Cloud – sollte man auf die Verfügbarkeit einer GPU achten. Während sich die einfachen Beispiele der ersten Kapitel noch problemlos auf einer Desktop-CPU ausführen lassen, ist für die komplexeren Beispiele im zweiten und dritten Teil einiges mehr an Rechenleistung erforderlich.

Damit der schnelle Einstieg in das Thema Deep Learning gelingt, sind nicht zu vernachlässigende mathematische Grundkenntnisse erforderlich. Das 19. Kapitel "Appendix: Mathematics for Deep Learning" bietet eine Einführung in die wichtigsten mathematischen Konzepte, die der Kurs voraussetzt. Möchte man tiefer in die Grundlagen eintauchen, kann man auf das Buch "Mathematics for Maschine Learning" zurückgreifen, das ebenfalls kostenlos als Open-Source-Projekt auf GitHub beherbergt ist