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 R und Keras - Das Praxis-Handbuch von Entwicklern von Keras und RStudio

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
  • CNNs, Rekurrente neuronale Netze, generative Modelle wie Variational Autoencoder und Generative-Adversarial-Netze

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 benötigen, um Deep Learning zum Lösen konkreter Aufgabenstellungen einzusetzen. Dafür verwendet der Autor die Programmiersprache R 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 die praktischen Anwendungen 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 R haben und die ins Machine Learning und Deep Learning einsteigen möchten. Für den Einsatz von Keras werden grundlegende R-Kenntnisse vorausgesetzt.

Table of Contents

  1. Impressum
  2. Vorwort
  3. Einleitung
  4. Danksagungen
  5. Über die Autoren
  6. Teil I: Grundlagen des Deep Learnings
  7. 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 Bevor es Deep Learning gab: 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?
  8. Kapitel 2: Bevor es losgeht: die mathematischen Bausteine eines neuronalen Netzes
    1. 2.1 Ein erster Blick auf ein neuronales Netz
    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 in R
      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 neuronalen Netzen: Tensoroperationen
      1. 2.3.1 Elementweise Operationen
      2. 2.3.2 Operationen mit Tensoren unterschiedlicher Dimensionalität
      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 neuronalen Netzen: 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
  9. Kapitel 3: Einführung in neuronale Netze
    1. 3.1 Aufbau eines neuronalen Netzes
      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 Keras installieren
      3. 3.2.3 Mit Keras entwickeln: eine kurze Übersicht
    3. 3.3 Einrichtung eines Deep-Learning-Rechners
      1. 3.3.1 Zwei Möglichkeiten, Keras zum Laufen zu bringen
      2. 3.3.2 Pro und Kontra: Deep Learning in der Cloud ausführen
      3. 3.3.3 Für Deep Learning geeignete GPUs
    4. 3.4 Klassifikation von Filmbewertungen: ein Beispiel für eine Binärklassifikation
      1. 3.4.1 Die IMDb-Datensammlung
      2. 3.4.2 Daten vorbereiten
      3. 3.4.3 Neuronales Netz erzeugen
      4. 3.4.4 Validierung des Ansatzes
      5. 3.4.5 Vorhersagen über neue Daten mit einem trainierten neuronalen Netz treffen
      6. 3.4.6 Weitere Experimente
      7. 3.4.7 Zusammenfassung
    5. 3.5 Ein Beispiel für eine Mehrfachklassifikation: Klassifikation von Nachrichtenmeldungen
      1. 3.5.1 Die Reuters-Datensammlung
      2. 3.5.2 Daten vorbereiten
      3. 3.5.3 Neuronales Netz 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 Neuronales Netz erzeugen
      4. 3.6.4 K-fache Kreuzvalidierung des Ansatzes
      5. 3.6.5 Zusammenfassung
    7. 3.7 Zusammenfassung Kapitel 3
  10. 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 Bestärkendes Lernen
    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 neuronale Netze
      2. 4.3.2 Merkmalserstellung
    4. 4.4 Überanpassung und Unteranpassung
      1. 4.4.1 Das neuronale Netz verkleinern
      2. 4.4.2 Regularisierung der Gewichte
      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
  11. Teil II: Deep Learning in der Praxis
  12. 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 Erstellen des neuronalen Netzes
      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
  13. 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
  14. 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 Gewichte 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
  15. 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-Netze
      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
  16. 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 Generalisierung
      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 Laufendem 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
  17. Anhang A: Installation von Keras und der Erweiterungen unter Ubuntu
    1. A.1 Überblick über den Installationsvorgang
    2. A.2 Installation der erforderlichen Erweiterungen
    3. A.3 Einrichtung der GPU-Unterstützung
      1. A.3.1 CUDA installieren
      2. A.3.2 cuDNN installieren
      3. A.3.3 Die CUDA-Umgebung
    4. A.4 Keras und TensorFlow installieren
  18. Anhang B: RStudio-Server auf einer EC2-GPU-Instanz betreiben
    1. B.1 Gründe, Deep Learning auf AWS zu betreiben
    2. B.2 Gründe, auf AWS zu verzichten
    3. B.3 Einrichtung einer AWS-GPU-Instanz
      1. B.3.1 R und RStudio installieren
      2. B.3.2 CUDA konfigurieren
      3. B.3.3 Voraussetzungen für Keras
    4. B.4 Auf den RStudio-Server zugreifen‌
    5. B.5 Keras installieren