Das Handbuch „Deep Learning mit Python und Keras“ bietet einen gelungenen Mix aus Theorie und Praxis. Deep Learning ist in aller Munde. Doch wie es wirklich funktioniert, das wissen nur wenige genau. Eine Einführung in das Thema versucht jetzt damit aufzuräumen und gleichzeitig erste Ansätze für eine praktische Umsetzung der Konzepte mit der Keras-Bibliothek zu liefern.
Wie oft hat man das schon bei Vorträgen oder Produkteinführungen gehört: „Das Produkt/der Service ist intelligent, ist lernfähig und funktioniert mit einem neuronalen Netz, also wie das Gehirn.“ Oft tauchen im Gehirn des- oder derjenigen, die diese Aussagen rezipieren, dann Vorstellungen auf, bei denen es letztlich darum geht, dass die Fähigkeiten des Menschen irgendwann komplett von Computern übernommen werden.
Ein wesentliches Verdienst des Buches zu Deep Learning von François Chollet ist, dass es gründlich mit solchen Ideen aufräumt und neuronale Netze als das beschreibt, was sie nun einmal sind: mathematisch-informatische Verfahren, die man benötigt, um Systeme anhand von Lerndaten dazu zu befähigen, bestimmte, relativ eng begrenzte konkrete Aufgaben zu lösen. Die Basisideen dazu sind schon mehrere Jahrzehnte alt, doch haben erst einige aktuelle Faktoren die Technologie leistungsfähig genug für interessante Aufgaben gemacht: Die schnellen Rechner und grafischen Beschleuniger von heute liefern die nötige Rechenleistung, damit überhaupt in interessanten Zeiträumen Ergebnisse vorliegen. Die verfügbaren Speichervolumina haben sich vervielfacht, weil die Speicherdichte gestiegen und die Preise gesunken sind. Und die Digitalisierung sorgt für die nötige Fülle an Datenmaterial, um neuronalen Netzen tatsächlich etwas beizubringen.
Um das Buch zu nutzen, muss man weder Mathematik noch Informatik studiert haben, aber ein gewisses Verständnis für Algebra und Statistik mitbringen, wie es etwa in der Oberstufe eines Gymnasiums vermittelt wird. Andernfalls wird die Lektüre – trotz weitgehender Vermeidung mathematischer Notationen – doch sehr mühselig, etwa wenn man noch niemals den Begriff Ableitung gehört hat oder nicht weiß, was die Steigung einer Kurve ist. Außerdem schadet es sicher nicht, wenn man mit sehr grundlegenden Begriffen aus der Programmiertechnik vertraut ist – etwa weiß, was grundsätzlich ein Parameter, eine Instanz oder eine for-Schleife ist. Am besten, man kann ein bisschen Python, denn die Programmbeispiele im Buch sind, wenn nicht generisch, in Python-Code geschrieben. Wer so gerüstet ist, wird in der Lage sein, sowohl vom Buch selbst als auch von den zum Download bereitgestellten Softwarewerkzeugen, Beispielen und den diesbezüglichen Installationsanweisungen zu profitieren.
Teil 1 für die Grundbegriffe, Teil 2 für die Praxis
Chollet fokussiert sich in diesem Buch auf die Arbeit mit der von ihm entwickelten Open-Source-Bibliothek Keras für Deep Learning, weil sie derzeit breit genutzt wird und mit den wichtigsten Deep-Learning-Werkzeugen, insbesondere mit Googles TensorFlow, zurechtkommt. Codierbeispiele beziehen sich vor allem auf TensorFlow, aber auch Theano und Microsofts DLCK werden erwähnt. Wer praktisch mit dem Buch arbeiten, also eigene Deep-Learning-Algorithmen schreiben will, braucht zudem noch einen Linux-Laptop – vorzugsweise mit Ubuntu. Dessen Installation wird nicht beschrieben, sodass sich Interessenten gegebenenfalls hier selbst helfen müssen.
Chollet teilt sein Buch in zwei Bereiche. Der einleitende Teil umfasst vier Kapitel. Dort werden grundlegende Begriffe, Tools und Verfahren vorgestellt und beschrieben. Dieser Bereich eignet sich wegen seiner detaillierten Gliederung wunderbar zum Nachschlagen, wenn das Buch einmal im Schrank steht.
Man lernt die wichtigsten Aufgaben kennen, für die heute neuronale Netze eingesetzt werden: Binärklassifizierung (z. B. ja/nein-Entscheidungen), Mehrfachklassifizierungen (wenn es darum geht, den zu analysierenden Daten eines oder mehrere aus mehreren Merkmalen zuzuweisen und sie so zu klassifizieren, und Regression, wenn aus einem sehr uneinheitlich aufgebauten Datenbestand Vorhersagen hinsichtlich eines bestimmten Parameters gewonnen werden sollen. Die für die Beispiele jeweils verwendeten Daten gehören zum Keras-Umfang und können somit von den Lesern, die praktisch mit dem Buch arbeiten, ohne Weiteres genutzt und für eigene Experimente verwendet werden. Chollet erwähnt auch andere mögliche Algorithmen, die für diesen Zweck verwendbar sind und erklärt, wann und warum ein neuronales Netz die beste Lösung ist und wann nicht. Weiter wird beschrieben, wie man ein neuronales Netz programmiertechnisch „zusammenstöpselt“ und diesen Aufbau auch modifizieren kann.
Fallstricke – und wie man sie vermeidet
In Kapitel 4 werden die unterschiedlichen mit neuronalen Netzen durchführbaren Formen des Maschinenlernens vorgestellt und der jeweilige Lernprozess, der zu einem funktionsfähigen neuronalen Netz resultiert, im Grundsatz beschrieben – inklusive der Fallstricke, die ein Modell unbrauchbar machen können und wie man sie vermeidet. Positiv fällt im gesamten ersten Teil auf, dass jeder Programmierschritt nachvollziehbar erklärt und kommentiert wird.
Im zweiten Abschnitt, der den Rest des Buches und damit weitere fünf Kapitel umfasst, geht es um den praktischen Einsatz von mit Keras erarbeiteten neuronalen Netzen für bestimmte Zwecke: maschinelles Sehen sowie Analyse von Texten und sequenziellen Daten, wobei jeder der Anwendungen ein separates Kapitel gewidmet ist, in dem es mehr ins Detail geht. Kapitel 7 beschreibt detailliert bewährte Verfahren im Umgang mit neuronalen Netzen unter Keras; Kapitel 8 befasst sich mit generativem Deep Learning.
Den Abschluss bildet ein Kapitel, das noch einmal die Kernkonzepte neuronaler Netze und des maschinellen Lernens darstellt, Deep-Learning/ML von anderen Formen der KI differenziert und eine Einschätzung vornimmt. Auch die Grenzen der Methode werden genannt und zu erwartende Trends bezüglich dieses Themas beschrieben.
Im Anhang finden sich die Installationsanweisungen für Keras und Erweiterungen über Ubuntu sowie ein Abschnitt zur Arbeit mit GPU-Instanzen auf AWS, wenn der eigene Rechner nicht über eine GPU verfügt. Zudem hat das Buch ein fünfseitiges Stichwortverzeichnis.
Fazit
Wer mehr als die üblichen Schlagworte zu neuronalen Netzen und Deep Learning wissen möchte, ist hier gut aufgehoben. Auch Praktiker, die in Keras einsteigen wollen, finden hier, was sie brauchen.
www.bigdata-insider.de