Deep Learning ist in den letzten Jahren immer stärker in den öffentlichen Fokus gerückt. Erfolge wie AlphaGo zeigen, dass moderne Verfahren in der Lage sind, auch hochkomplexe Spiele wie Go besser als ein Mensch zu spielen.
Es handelt sich bei Deep Learning um das Verwenden eines neuronalen Netzes mit mehreren Ebenen, so dass das System eine Abstraktionshierarchie erlernen kann. Deep Learning konnte sich in Forschung und Praxis als sehr effektive Allzweckwaffe darstellen, beispielsweise zur Objekterkennung in Bildern oder Übersetzung von Texten.
Was liegt also näher, als sich in die Thematik einzuarbeiten, z. B. um diese Methode im Arbeitsalltag einzusetzen oder um sich ein passives Einkommen mit Apps aufzubauen, die Deep Learning verwenden?
Leider ist ein Großteil der verfügbaren Lernmaterialien sehr abstrakt und mathematisch ausgerichtet, was gerade Programmierer abschreckt. Dabei stecken hinter Deep Learning eigentlich nur sehr einfache mathematische Prinzipien: Matrix-Multiplikation und die Kettenregel zur Ableitung.
In diesem Beitrag möchten wir dir also einsteigerfreundliche Materialien zum Thema Deep Learning präsentieren. Eine gewisse Programmiererfahrung (idealerweise in Python) ist allerdings Voraussetzung.
Kurs: fast.ai
fast.ai ist ein von Jeremy Howard und Rachel Thomas entworfener Kurs zum Thema Deep Learning, der extrem praxisbezogen unterrichtet wird. Sprich: Es wird von Anfang an Code geschrieben und mathematische Notation auf ein Minimum reduziert.
Hinzu kommt die Tatsache, dass der Kurs nicht Bottom-Up, sondern Top-Down aufgebaut ist. Man beginnt also nicht mit linearer Algebra oder Ähnlichem, sondern ganz konkret mit einem System, welches an Hand von Fotos zwischen Hunden und Katzen unterscheiden soll.
Der Vorteil hierbei liegt auf der Hand: Es ist deutlich motivierender, wenn man ein praktisches Problem löst, als wenn man sich erst wochenlang mit mathematischen Formeln beschäftigen muss.
Dieses Grundlagenwissen ist natürlich langfristig notwendig und wird auch später im Kurs Schritt-für-Schritt erklärt, aber der Zuschauer wird damit eben nicht direkt zu Beginn erschlagen.
Der Kurs deckt alle wichtigen Themenbereiche ab: Bilder erkennen, Texte übersetzen, Arbeit mit strukturierten Daten. Hinzu kommen viele praktische Tipps, die von anderen Kursen oft vernachlässigt werden.
Sehr hilfreich ist auch das zugehörige fast.ai Forum, in dem Fragen zum Kurs gestellt werden können.
Der fast.ai Kurs ist unsere Top-Empfehlung, um sich in Deep Learning einzuarbeiten.
Kurs: deeplearning.ai
Der deeplearning.ai Kurs wird unterrichtet von Andrew Ng, einem führenden Forscher im Bereich Künstliche Intelligenz.
Im Gegensatz zu fast.ai ist dieser Kurs eher Bottom-Up aufgebaut, es werden also erst die Grundlagen der neuronalen Netze fundiert erklärt und dann Schritt für Schritt um komplexere Konzepte ergänzt.
Wir halten deeplearning.ai insbesondere als Ergänzung zu fast.ai für sinnvoll, da es oftmals hilfreich ist, die Konzepte aus zwei verschiedenen Blickwinkeln präsentiert zu bekommen.
Buch: Deep Learning with Python
Das Buch Deep Learning with Python stammt von Francois Chollet, dem Autor des bekannten Deep Learning-Frameworks Keras, welches auf Tensorflow basiert, aber eine einfachere Programmierschnittstelle anbietet.
Es handelt sich hierbei um ein sehr praktisch orientiertes Buch, in dem auf mathematische Notation verzichtet wird und die Konzepte stattdessen mit Code-Beispielen erklärt werden.
Sehr positiv anzumerken ist, dass der Autor viele Tipps gibt, die in der Praxis hilfreich sind, aber in akademischen Kreisen oft nicht wirklich gelehrt werden, z.B. die Effektivität von Transfer Learning, wobei ein neuronalen Netzes auf einem Datensatz trainiert, dann aber mit einem anderen Datensatz verfeinert und letztlich verwendet wird.
Auch fortgeschrittene Themen vermisst man nicht: Das Buch endet mit einer Abhandlung des generativen Deep Learnings. Auch interessant sind die Ansichten des Autors zur Zukunft von Deep Learning.
Wir halten dies für das aktuell beste Einsteigerbuch zum Thema Deep Learning.
Buch: Hands-On Machine Learning with Scikit-Learn and TensorFlow
Das Buch Hands-On Machine Learning with Scikit-Learn and TensorFlow ist kein reines Deep Learning-Buch, sondern widmet sich auch den eher klassischen Machine Learning-Methoden, wie z. B. Lineare Regression, Support Vector Machines und Decision Trees. Da diese Methoden generell nützlich sind, würden wir empfehlen, auch diesen Teil des Buches zu lesen.
Der zweite Teil des Buches legt den Fokus dann auf Deep Learning mit Tensorflow und arbeitet sich langsam über Convolutional Neural Networks, Recurrent Neural Networks, bis schließlich zu Reinforcement Learning durch.
Insbesondere die Verwendung von Tensorflow ist unserer Ansicht nach suboptimal, da z.B. PyTorch (welches im fast.ai Kurs verwendet wird) eleganteren Code erlaubt. Gerade für Einsteiger kann der zusätzlich notwendige Programmieraufwand durch Tensorflow verwirrend sein.
Positiv am Buch sind insbesondere auch die vielen grafischen Darstellungen, die zum Verständnis beitragen.
Buch: Deep Learning (Adaptive Computation and Machine Learning)
Das Buch Deep Learning (Adaptive Computation and Machine Learning) von Ian Goodfellow ist ein gutes Übersichtswerk.
Es ist für Einsteiger eher weniger empfehlenswert, da die Darstellung der Themen teilweise recht komplex ist. Aber es eignet sich gut als Nachschlagewerk, um individuelle Themenbereiche detaillierter zu verstehen.
Auch die Abhandlungen aktueller Forschungsthemen, wie Variational Autoencoders oder Generative Methods, machen das Buch für Interessierte attraktiv.
Natürlich deckt das Buch aber bei Weitem nicht alle aktuellen Forschungsthemen ab. Als Fortgeschrittener lässt es sich nicht vermeiden, die veröffentlichten Forschungsarbeiten selbst zu lesen.
Deep Learning Communities
Um über die neuesten Forschungsergebnisse informiert zu bleiben und sich mit anderen Nutzern auszutauschen, ist es naheliegend, nach einer Community zu suchen. Insbesondere auf der Plattform Reddit haben sich einige Machine-Learning Communities gebildet:
- /r/MachineLearning/ – Ein sehr aktiver Subreddit, auf dem spannende aktuelle Forschungsarbeiten geposted werden. Der Fokus ist eher akademisch und für Einsteiger sehr anspruchsvoll. Trotzdem kann man hier gut sehen, was Stand der Forschung ist.
- /r/learnmachinelearning/ – Ein einsteigerfreundlicher Subreddit, auf dem auch simple Fragen zu Machine Learning gerne gesehen sind.
- /r/MachinesLearn/ – Ein praktisch orientierter Subreddit. Primäre Zielgruppe sind Personen, die Machine Learning im Berufsalltag verwenden.
Zwar handelt es sich hierbei strikt genommen nicht um Deep Learning Subreddits, sondern allgemeiner um Machine Learning, aber die meisten der dort diskutierten Verfahren basieren auf Deep Learning.
Fazit
Deep Learning ist ein wichtiges Verfahren, dessen Bedeutung weiter zunehmen wird. Die Möglichkeiten zur Anwendung sind extrem vielfältig. Gerade als Programmierer kann es sehr hilfreich sein, sich in diese Thematik einzuarbeiten, da es die Jobchancen in Zukunft massiv verbessern wird.
Wir hoffen, dass du mit unseren vorgestellten Materialien schnell den Einstieg finden kannst und wünschen viel Erfolg!