O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Deep Learning mit Python und Keras - Das Praxis-Handbuch vom Entwickler der Keras-Bibliothek

Book Description

  • Einführung in die grundlegenden Konzepte von Machine Learning und Deep Learning
  • Zahlreiche praktische Anwendungsbeispiele zum Lösen konkreter Aufgabenstellungen
  • Maschinelles Sehen, Sprachverarbeitung, Bildklassifizierung, Vorhersage von Zeitreihen, Stimmungsanalyse, Erzeugung von Bildern und Texten u.v.m.

Dieses Buch ist eine praxisorientierte Einführung und erläutert die grundlegenden Konzepte sowie den konkreten Einsatz von Deep Learning. Der Autor verzichtet dabei weitgehend auf mathematische Formeln und legt stattdessen den Fokus auf das Vermitteln der praktischen Anwendung von Machine Learning und Deep Learning.

Anhand zahlreicher Beispiele erfahren Sie alles, was Sie wissen müssen, um Deep Learning zum Lösen konkreter Aufgabenstellungen einzusetzen. Dafür verwendet der Autor die Programmiersprache Python und die Deep-Learning-Bibliothek Keras, die das beliebteste und am besten geeignete Tool für den Einstieg in Deep Learning ist.

Das Buch besteht aus zwei Teilen: Teil I ist eine allgemeine Einführung in das Deep Learning und erläutert die grundlegenden Zusammenhänge und Begriffe sowie alle erforderlichen Konzepte, die für den Einstieg in Deep Learning und Neuronale Netze wichtig sind. In Teil II erläutert der Autor ausführlich praktische Anwendungsmöglichkeiten des Deep Learnings beim maschinellen Sehen (Computer Vision) und bei der Verarbeitung natürlicher Sprache. Viele der hier vorgestellten Beispiele können Ihnen später als Vorlage zum Lösen von Problemen dienen, die Ihnen in der Praxis des Deep Learnings begegnen werden.

Das Buch wendet sich an Leser, die bereits Programmiererfahrung mit Python haben und ins Machine Learning und Deep Learning einsteigen möchten. Für den Einsatz von Keras werden grundlegende Python-Kenntnisse vorausgesetzt.




Über den Autor:

François Chollet ist bei Google tätig und befasst sich mit Deep Learning. Er ist der Entwickler der Deep-Learning-Bibliothek Keras und hat bedeutende Beiträge zum Machine-Learning-Framework TensorFlow geleistet. Er forscht auf dem Gebiet des Deep Learnings mit den Schwerpunkten maschinelles Sehen und der Anwendung des Machine Learnings auf formales Schließen. Seine Forschungsergebnisse wurden auf bedeutenden Veranstaltungen des Fachgebiets veröffentlicht, unter anderem auf der Conference on Computer Vision and Pattern Recognition (CVPR), der Conference on Neural Information Processing Systems (NIPS), der International Conference on Learning Representations (ICLR) und weiteren.

Table of Contents

  1. Impressum
  2. Einleitung
    1. Über dieses Buch
    2. Wer sollte dieses Buch lesen?
    3. Überblick
    4. Erforderliche Hard- und Software
    5. Quellcode
    6. Das Forum zum Buch
    7. Über den Autor
    8. Über den Fachkorrektor
    9. Danksagungen
  3. Teil I: Grundlagen des Deep Learnings
  4. Kapitel 1: Was ist Deep Learning?
    1. 1.1 Künstliche Intelligenz, Machine Learning und Deep Learning
      1. 1.1.1 Künstliche Intelligenz
      2. 1.1.2 Machine Learning
      3. 1.1.3 Die Repräsentation anhand der Daten erlernen
      4. 1.1.4 Das »Deep« in Deep Learning
      5. 1.1.5 Deep Learning in drei Diagrammen erklärt
      6. 1.1.6 Was Deep Learning heute schon leisten kann
      7. 1.1.7 Schenken Sie dem kurzfristigen Hype keinen Glauben
      8. 1.1.8 Das Versprechen der KI
    2. 1.2 Vor Deep Learning: eine kurze Geschichte des Machine Learnings
      1. 1.2.1 Probabilistische Modellierung
      2. 1.2.2 Die ersten neuronalen Netze
      3. 1.2.3 Kernel-Methoden
      4. 1.2.4 Entscheidungsbäume, Random Forests und Gradient Boosting Machines
      5. 1.2.5 Zurück zu neuronalen Netzen
      6. 1.2.6 Das Besondere am Deep Learning
      7. 1.2.7 Der Stand des modernen Machine-Learnings
    3. 1.3 Warum Deep Learning? Und warum jetzt?
      1. 1.3.1 Hardware
      2. 1.3.2 Daten
      3. 1.3.3 Algorithmen
      4. 1.3.4 Eine neue Investitionswelle
      5. 1.3.5 Die Demokratisierung des Deep Learnings
      6. 1.3.6 Bleibt es so?
  5. Kapitel 2: Bevor es losgeht: die mathematischen Bausteine eines NNs
    1. 2.1 Ein erster Blick auf ein NN
    2. 2.2 Datenrepräsentationen
      1. 2.2.1 Skalare (0-D-Tensoren)
      2. 2.2.2 Vektoren (1-D-Tensoren)
      3. 2.2.3 Matrizen (2-D-Tensoren)
      4. 2.2.4 3-D-Tensoren und höherdimensionale Tensoren
      5. 2.2.5 Die wichtigsten Attribute
      6. 2.2.6 Bearbeiten von Tensoren mit Numpy
      7. 2.2.7 Datenstapel
      8. 2.2.8 Beispiele für Datentensoren aus der Praxis
      9. 2.2.9 Vektordaten
      10. 2.2.10 Zeitreihen oder sequenzielle Daten
      11. 2.2.11 Bilddaten
      12. 2.2.12 Videodaten
    3. 2.3 Das Getriebe von NNs: Tensoroperationen
      1. 2.3.1 Elementweise Operationen
      2. 2.3.2 Broadcasting
      3. 2.3.3 Tensorprodukt
      4. 2.3.4 Tensoren umformen
      5. 2.3.5 Geometrische Interpretation von Tensoroperationen
      6. 2.3.6 Eine geometrische Interpretation des Deep Learnings
    4. 2.4 Der Antrieb von NNs: gradientenbasierte Optimierung
      1. 2.4.1 Was ist eine Ableitung?
      2. 2.4.2 Ableitung einer Tensoroperation: der Gradient
      3. 2.4.3 Stochastisches Gradientenabstiegsverfahren
      4. 2.4.4 Ableitungen verketten: der Backpropagation-Algorithmus
    5. 2.5 Zurück zum ersten Beispiel
    6. 2.6 Zusammenfassung Kapitel 2
  6. Kapitel 3: Einführung in neuronale Netze
    1. 3.1 Aufbau eines NNs
      1. 3.1.1 Layer: Bausteine des Deep Learnings
      2. 3.1.2 Modelle: vernetzte Layer
      3. 3.1.3 Verlustfunktionen und Optimierer: Konfiguration des Lernvorgangs
    2. 3.2 Einführung in Keras
      1. 3.2.1 Keras, TensorFlow, Theano und CNTK
      2. 3.2.2 Mit Keras entwickeln: eine kurze Übersicht
    3. 3.3 Einrichtung eines Deep-Learning-Rechners
      1. 3.3.1 Die bevorzugte Methode zum Ausführen von Deep-Learning-Experimenten: Jupyter-Notebooks
      2. 3.3.2 Keras zum Laufen bringen: zwei Möglichkeiten
      3. 3.3.3 Pro und Kontra: Deep Learning in der Cloud ausführen
      4. 3.3.4 Für Deep Learning geeignete GPUs
    4. 3.4 Klassifizierung von Filmbewertungen: ein Beispiel für eine Binärklassifizierung
      1. 3.4.1 Die IMDb-Datensammlung
      2. 3.4.2 Daten vorbereiten
      3. 3.4.3 NN erzeugen
      4. 3.4.4 Validierung des Ansatzes
      5. 3.4.5 Vorhersagen über neue Daten mit einem trainierten NN treffen
      6. 3.4.6 Weitere Experimente
      7. 3.4.7 Zusammenfassung
    5. 3.5 Ein Beispiel für eine Mehrfachklassifizierung: Klassifizierung von Nachrichtenmeldungen
      1. 3.5.1 Die Reuters-Datensammlung
      2. 3.5.2 Daten vorbereiten
      3. 3.5.3 NN erzeugen
      4. 3.5.4 Validierung des Ansatzes
      5. 3.5.5 Vorhersagen über neue Daten treffen
      6. 3.5.6 Eine weitere Möglichkeit zur Handhabung der Klassenbezeichnungen und der Verlustfunktion
      7. 3.5.7 Hinreichend große zwischenliegende Layer sind wichtig
      8. 3.5.8 Weitere Experimente
      9. 3.5.9 Zusammenfassung
    6. 3.6 Ein Beispiel für eine Regression: Vorhersage der Kaufpreise von Häusern
      1. 3.6.1 ‌Die Boston-Housing-Price-Datensammlung
      2. 3.6.2 Daten vorbereiten
      3. 3.6.3 NN erzeugen
      4. 3.6.4 K-fache Kreuzvalidierungen des Ansatzes
      5. 3.6.5 Zusammenfassung
    7. 3.7 Zusammenfassung Kapitel 3
  7. Kapitel 4: Grundlagen des Machine Learnings
    1. 4.1 Vier Teilgebiete des Machine Learnings
      1. 4.1.1 Überwachtes Lernen
      2. 4.1.2 Unüberwachtes Lernen
      3. 4.1.3 Selbstüberwachtes Lernen
      4. 4.1.4 Verstärkendes Lernen
      5. 4.1.5 Glossar: Klassifizierung und Regression‌
    2. 4.2 Bewertung von Machine-Learning-Modellen
      1. 4.2.1 Trainings-, Validierungs- und Testmengen
      2. 4.2.2 Worauf zu achten ist
    3. 4.3 Datenvorverarbeitung, Merkmalserstellung und Erlernen von Merkmalen
      1. 4.3.1 Datenvorverarbeitung für NNs
      2. 4.3.2 Merkmalserstellung
    4. 4.4 Überanpassung und Unteranpassung
      1. 4.4.1 Das NN verkleinern
      2. 4.4.2 Regularisierung der Gewichtungen
      3. 4.4.3 Dropout-Regularisierung
    5. 4.5 Ein allgemeiner Machine-Learning-Workflow
      1. 4.5.1 Definition der Aufgabe und Zusammenstellen einer Datenmenge
      2. 4.5.2 Auswahl eines Erfolgskriteriums
      3. 4.5.3 Auswahl einer Bewertungsmethode
      4. 4.5.4 Daten vorbereiten
      5. 4.5.5 Entwicklung eines Modells, das besser funktioniert als zufälliges Raten
      6. 4.5.6 Hochskalieren: Entwicklung eines Modells mit Überanpassung
      7. 4.5.7 Regularisierung des Modells und Abstimmung der Hyperparameter
    6. 4.6 Zusammenfassung Kapitel 4
  8. Teil II: Deep Learning in der Praxis
  9. Kapitel 5: Deep Learning und maschinelles Sehen
    1. 5.1 Einführung in CNNs
      1. 5.1.1 Die Faltungsoperation
      2. 5.1.2 Die Max-Pooling-Operation
    2. 5.2 Ein CNN von Grund auf mit einer kleinen Datenmenge trainieren
      1. 5.2.1 Die Bedeutung des Deep Learnings für Aufgaben mit kleinen Datenmengen
      2. 5.2.2 Daten herunterladen
      3. 5.2.3 NN erzeugen
      4. 5.2.4 Datenvorverarbeitung
      5. 5.2.5 Datenaugmentation
    3. 5.3 Verwendung eines vortrainierten CNNs
      1. 5.3.1 Merkmalsextraktion
      2. 5.3.2 Feinabstimmung
      3. 5.3.3 Zusammenfassung
    4. 5.4 Visualisierung: Was CNNs erlernen können
      1. 5.4.1 Visualisierung zwischenliegender Aktivierungen
      2. 5.4.2 Visualisierung von CNN-Filtern
      3. 5.4.3 Visualisierung der Heatmaps der Klassenaktivierung
    5. 5.5 Zusammenfassung Kapitel 5
  10. Kapitel 6: Deep Learning, Text und sequenzielle Daten
    1. 6.1 Textdaten
      1. 6.1.1 One-hot-Codierung von Wörtern und Zeichen
      2. 6.1.2 Worteinbettung
      3. 6.1.3 Zusammengefasst: von reinem Text zu Worteinbettungen
      4. 6.1.4 Zusammenfassung
    2. 6.2 Rekurrente neuronale Netze
      1. 6.2.1 Ein rekurrenter Layer in Keras
      2. 6.2.2 LSTM- und GRU-Layer
      3. 6.2.3 Ein konkretes LSTM-Beispiel in Keras
      4. 6.2.4 Zusammenfassung
    3. 6.3 Erweiterte Nutzung rekurrenter neuronaler Netze
      1. 6.3.1 Temperaturvorhersage
      2. 6.3.2 Daten vorbereiten
      3. 6.3.3 Eine vernünftige Abschätzung ohne Machine Learning
      4. 6.3.4 Ein elementarer Machine-Learning-Ansatz
      5. 6.3.5 Ein erstes RNN
      6. 6.3.6 Rekurrentes Dropout-Verfahren zum Verhindern einer Überanpassung
      7. 6.3.7 Hintereinanderschaltung rekurrenter Layer
      8. 6.3.8 Bidirektionale RNNs
      9. 6.3.9 Noch einen Schritt weiter gehen
      10. 6.3.10 Zusammenfassung
    4. 6.4 Verarbeitung von Sequenzen mit CNNs
      1. 6.4.1 Eindimensionale Faltung sequenzieller Daten
      2. 6.4.2 Eindimensionales Pooling sequenzieller Daten
      3. 6.4.3 Implementierung eines eindimensionalen CNNs
      4. 6.4.4 Lange Sequenzen mit einer Kombination aus CNNs und RNNs verarbeiten
      5. 6.4.5 Zusammenfassung
    5. 6.5 Zusammenfassung Kapitel 6
  11. Kapitel 7: Bewährte Verfahren des Deep Learnings
    1. 7.1 Jenseits des Sequential-Modells: die funktionale Keras-API
      1. 7.1.1 Einführung in die funktionale API
      2. 7.1.2 Modelle mit mehreren Eingaben
      3. 7.1.3 Modelle mit mehreren Ausgaben
      4. 7.1.4 Gerichtete azyklische Graphen von Layern
      5. 7.1.5 Gemeinsam genutzte Gewichtungen von Layern
      6. 7.1.6 Modelle als Layer
      7. 7.1.7 Zusammenfassung
    2. 7.2 Deep-Learning-Modelle mit Callbacks und TensorBoard untersuchen und überwachen
      1. 7.2.1 Beeinflussung eines Modells während des Trainings durch Callbacks
      2. 7.2.2 Einführung in das Visualisierungs-Framework TensorBoard
      3. 7.2.3 Zusammenfassung
    3. 7.3 Modelle richtig ausreizen
      1. 7.3.1 Erweiterte Architekturmuster
      2. 7.3.2 Hyperparameteroptimierung
      3. 7.3.3 Ensemblemodelle
      4. 7.3.4 Zusammenfassung
    4. 7.4 Zusammenfassung Kapitel 7
  12. Kapitel 8: Generatives Deep Learning
    1. 8.1 Texterzeugung mit LSTM-Modellen
      1. 8.1.1 Eine kurze Geschichte generativer RNNs
      2. 8.1.2 Wie erzeugt man sequenzielle Daten?
      3. 8.1.3 Die Bedeutung der Sampling-Strategie
      4. 8.1.4 Implementierung der LSTM-Texterzeugung für Zeichen
      5. 8.1.5 Zusammenfassung
    2. 8.2 DeepDream
      1. 8.2.1 DeepDream in Keras implementieren
      2. 8.2.2 Zusammenfassung
    3. 8.3 Stilübertragung mit dem Neural-Style-Algorithmus
      1. 8.3.1 Verlustfunktion für den Inhalt
      2. 8.3.2 Verlustfunktion für den Stil
      3. 8.3.3 Stilübertragung in Keras
      4. 8.3.4 Zusammenfassung
    4. 8.4 Bilderzeugung mit Variational Autoencoders
      1. 8.4.1 Sampling eines latenten Bilderraums
      2. 8.4.2 Konzeptvektoren für das Bearbeiten von Bildern
      3. 8.4.3 Variational Autoencoders
      4. 8.4.4 Zusammenfassung
    5. 8.5 Einführung in Generative Adversarial Networks
      1. 8.5.1 Eine schematische GAN-Implementierung
      2. 8.5.2 Einige nützliche Tricks
      3. 8.5.3 Der Generator
      4. 8.5.4 Der Diskriminator
      5. 8.5.5 Das gegnerische Netz
      6. 8.5.6 Training des DCGAN
      7. 8.5.7 Zusammenfassung
    6. 8.6 Zusammenfassung Kapitel 8
  13. Kapitel 9: Schlussfolgerungen
    1. 9.1 Kernkonzepte im Überblick
      1. 9.1.1 Verschiedene Ansätze der KI
      2. 9.1.2 Die Besonderheiten des Deep Learnings
      3. 9.1.3 Was ist vom Deep Learning zu halten?
      4. 9.1.4 Wichtige zugrunde liegende Technologien
      5. 9.1.5 Der allgemeine Machine-Learning-Workflow
      6. 9.1.6 Wichtige Netzarchitekturen
      7. 9.1.7 Der Raum der Möglichkeiten
    2. 9.2 Grenzen des Deep Learnings
      1. 9.2.1 Das Risiko der Vermenschlichung von Deep-Learning-Modellen
      2. 9.2.2 Lokale und extreme Verallgemeinerung
      3. 9.2.3 Zusammenfassung
    3. 9.3 Die Zukunft des Deep Learnings
      1. 9.3.1 Modelle als Programme
      2. 9.3.2 Jenseits von Backpropagation und differenzierbaren Layern
      3. 9.3.3 Automatisiertes Machine Learning
      4. 9.3.4 Beständiges Lernen und Wiederverwendung modularer Subroutinen
      5. 9.3.5 Langfristige Aussichten
    4. 9.4 Auf dem Laufenden bleiben
      1. 9.4.1 Praktische Erfahrungen sammeln mit Kaggle
      2. 9.4.2 Aktuelle Entwicklungen auf der arXiv-Website nachlesen
      3. 9.4.3 Erkundung des Keras-Ökosystems
    5. 9.5 Schlusswort
  14. Anhang A: Installation von Keras und der Erweiterungen unter Ubuntu
    1. A.1 Installation der wissenschaftlichen Pakete
    2. A.2 Einrichtung der GPU-Unterstützung
    3. A.3 Theano installieren (optional)
    4. A.4 Keras installieren
  15. Anhang B: Jupyter-Notebooks auf einer EC2-GPU-Instanz ausführen
    1. B.1 Was sind Jupyter-Notebooks? – Gründe, sie auf AWS-GPUs ausführen
    2. B.2 Gründe, auf AWS-Jupyter-Notebooks zu verzichten
    3. B.3 Einrichtung einer AWS-GPU-Instanz
    4. B.4 Keras installieren
    5. B.5 Lokale Portweiterleitung einrichten
    6. B.6 Jupyter mit dem lokalen Browser verwenden