Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow, 2nd Edition

Book description

Eine Reihe technischer Durchbrüche beim Deep Learning haben das gesamte Gebiet des maschinellen Lernens in den letzten Jahren beflügelt. Inzwischen können sogar Programmierer, die kaum etwas über diese Technologie wissen, mit einfachen, effizienten Werkzeugen Machine-Learning-Programme implementieren. Dieses praxisorientierte Buch zeigt Ihnen wie.

Mit konkreten Beispielen, einem Minimum an Theorie und zwei unmittelbar anwendbaren Python-Frameworks – Scikit-Learn und TensorFlow 2 – verhilft Ihnen der Autor Aurélien Géron zu einem intuitiven Verständnis der Konzepte und Tools für das Entwickeln intelligenter Systeme. Sie lernen eine Vielzahl von Techniken kennen, beginnend mit einfacher linearer Regression bis hin zu Deep Neural Networks. Die in jedem Kapitel enthaltenen Übungen helfen Ihnen, das Gelernte in die Praxis umzusetzen. Um direkt zu starten, benötigen Sie lediglich etwas Programmiererfahrung.

Table of contents

  1. Cover
  2. Titel
  3. Impressum
  4. Inhalt
  5. Vorwort
  6. Teil I Die Grundlagen des Machine Learning
    1. 1 Die Machine-Learning-Umgebung
      1. Was ist Machine Learning?
      2. Warum wird Machine Learning verwendet?
      3. Anwendungsbeispiel
      4. Unterschiedliche Machine-Learning-Systeme
        1. Überwachtes/unüberwachtes Lernen
        2. Batch- und Online-Learning
        3. Instanzbasiertes versus modellbasiertes Lernen
      5. Die wichtigsten Herausforderungen beim Machine Learning
        1. Unzureichende Menge an Trainingsdaten
        2. Nicht repräsentative Trainingsdaten
        3. Minderwertige Daten
        4. Irrelevante Merkmale
        5. Overfitting der Trainingsdaten
        6. Underfitting der Trainingsdaten
        7. Zusammenfassung
      6. Testen und Validieren
        1. Hyperparameter anpassen und Modellauswahl
        2. Datendiskrepanz
      7. Übungen
    2. 2 Ein Machine-Learning-Projekt von A bis Z
      1. Der Umgang mit realen Daten
      2. Betrachte das Gesamtbild
        1. Die Aufgabe abstecken
        2. Wähle ein Qualitätsmaß aus
        3. Überprüfe die Annahmen
      3. Beschaffe die Daten
        1. Erstelle eine Arbeitsumgebung
        2. Die Daten herunterladen
        3. Wirf einen kurzen Blick auf die Datenstruktur
        4. Erstelle einen Testdatensatz
      4. Erkunde und visualisiere die Daten, um Erkenntnisse zu gewinnen
        1. Visualisieren geografischer Daten
        2. Suche nach Korrelationen
        3. Experimentieren mit Kombinationen von Merkmalen
      5. Bereite die Daten für Machine-Learning-Algorithmen vor
        1. Aufbereiten der Daten
        2. Bearbeiten von Text und kategorischen Merkmalen
        3. Eigene Transformer
        4. Skalieren von Merkmalen
        5. Pipelines zur Transformation
      6. Wähle ein Modell aus und trainiere es
        1. Trainieren und Auswerten auf dem Trainingsdatensatz
        2. Bessere Auswertung mittels Kreuzvalidierung
      7. Optimiere das Modell
        1. Gittersuche
        2. Zufällige Suche
        3. Ensemble-Methoden
        4. Analysiere die besten Modelle und ihre Fehler
        5. Evaluiere das System auf dem Testdatensatz
      8. Nimm das System in Betrieb, überwache und warte es
      9. Probieren Sie es aus!
      10. Übungen
    3. 3 Klassifikation
      1. MNIST
      2. Trainieren eines binären Klassifikators
      3. Qualitätsmaße
        1. Messen der Genauigkeit über Kreuzvalidierung
        2. Konfusionsmatrix
        3. Relevanz und Sensitivität
        4. Die Wechselbeziehung zwischen Relevanz und Sensitivität
        5. Die ROC-Kurve
      4. Klassifikatoren mit mehreren Kategorien
      5. Fehleranalyse
      6. Klassifikation mit mehreren Labels
      7. Klassifikation mit mehreren Ausgaben
      8. Übungen
    4. 4 Trainieren von Modellen
      1. Lineare Regression
        1. Die Normalengleichung
        2. Komplexität der Berechnung
      2. Das Gradientenverfahren
        1. Batch-Gradientenverfahren
        2. Stochastisches Gradientenverfahren
        3. Mini-Batch-Gradientenverfahren
      3. Polynomielle Regression
      4. Lernkurven
      5. Regularisierte lineare Modelle
        1. Ridge-Regression
        2. Lasso-Regression
        3. Elastic Net
        4. Early Stopping
      6. Logistische Regression
        1. Abschätzen von Wahrscheinlichkeiten
        2. Trainieren und Kostenfunktion
        3. Entscheidungsgrenzen
        4. Softmax-Regression
      7. Übungen
    5. 5 Support Vector Machines
      1. Lineare Klassifikation mit SVMs
        1. Soft-Margin-Klassifikation
      2. Nichtlineare SVM-Klassifikation
        1. Polynomieller Kernel
        2. Ähnlichkeitsbasierte Merkmale
        3. Der gaußsche RBF-Kernel
        4. Komplexität der Berechnung
      3. SVM-Regression
      4. Hinter den Kulissen
        1. Entscheidungsfunktion und Vorhersagen
        2. Zielfunktionen beim Trainieren
        3. Quadratische Programme
        4. Das duale Problem
        5. Kernel-SVM
        6. Online-SVMs
      5. Übungen
    6. 6 Entscheidungsbäume
      1. Trainieren und Visualisieren eines Entscheidungsbaums
      2. Vorhersagen treffen
      3. Schätzen von Wahrscheinlichkeiten für Kategorien
      4. Der CART-Trainingsalgorithmus
      5. Komplexität der Berechnung
      6. Gini-Unreinheit oder Entropie?
      7. Hyperparameter zur Regularisierung
      8. Regression
      9. Instabilität
      10. Übungen
    7. 7 Ensemble Learning und Random Forests
      1. Abstimmverfahren unter Klassifikatoren
      2. Bagging und Pasting
        1. Bagging und Pasting in Scikit-Learn
        2. Out-of-Bag-Evaluation
      3. Zufällige Patches und Subräume
      4. Random Forests
        1. Extra-Trees
        2. Wichtigkeit von Merkmalen
      5. Boosting
        1. AdaBoost
        2. Gradient Boosting
      6. Stacking
      7. Übungen
    8. 8 Dimensionsreduktion
      1. Der Fluch der Dimensionalität
      2. Die wichtigsten Ansätze zur Dimensionsreduktion
        1. Projektion
        2. Manifold Learning
      3. Hauptkomponentenzerlegung (PCA)
        1. Erhalten der Varianz
        2. Hauptkomponenten
        3. Die Projektion auf d Dimensionen
        4. Verwenden von Scikit-Learn
        5. Der Anteil erklärter Varianz
        6. Auswählen der richtigen Anzahl Dimensionen
        7. PCA als Komprimierungsverfahren
        8. Randomisierte PCA
        9. Inkrementelle PCA
      4. Kernel-PCA
        1. Auswahl eines Kernels und Optimierung der Hyperparameter
      5. LLE
      6. Weitere Techniken zur Dimensionsreduktion
      7. Übungen
    9. 9 Techniken des unüberwachten Lernens
      1. Clustering
        1. K-Means
        2. Grenzen von K-Means
        3. Bildsegmentierung per Clustering
        4. Vorverarbeitung per Clustering
        5. Clustering für teilüberwachtes Lernen einsetzen
        6. DBSCAN
        7. Andere Clustering-Algorithmen
      2. Gaußsche Mischverteilung
        1. Anomalieerkennung mit gaußschen Mischverteilungsmodellen
        2. Die Anzahl an Clustern auswählen
        3. Bayessche gaußsche Mischverteilungsmodelle
        4. Andere Algorithmen zur Anomalie- und Novelty-Erkennung
      3. Übungen
  7. Teil II Neuronale Netze und Deep Learning
    1. 10 Einführung in künstliche neuronale Netze mit Keras
      1. Von biologischen zu künstlichen Neuronen
        1. Biologische Neuronen
        2. Logische Berechnungen mit Neuronen
        3. Das Perzeptron
        4. Mehrschichtiges Perzeptron und Backpropagation
        5. Regressions-MLPs
        6. Klassifikations-MLPs
      2. MLPs mit Keras implementieren
        1. TensorFlow 2 installieren
        2. Einen Bildklassifikator mit der Sequential API erstellen
        3. Ein Regressions-MLP mit der Sequential API erstellen
        4. Komplexe Modelle mit der Functional API bauen
        5. Dynamische Modelle mit der Subclassing API bauen
        6. Ein Modell sichern und wiederherstellen
        7. Callbacks
        8. TensorBoard zur Visualisierung verwenden
      3. Feinabstimmung der Hyperparameter eines neuronalen Netzes
        1. Anzahl verborgener Schichten
        2. Anzahl Neuronen pro verborgene Schicht
        3. Lernrate, Batchgröße und andere Hyperparameter
      4. Übungen
    2. 11 Trainieren von Deep-Learning-Netzen
      1. Das Problem schwindender/explodierender Gradienten
        1. Initialisierung nach Glorot und He
        2. Nicht sättigende Aktivierungsfunktionen
        3. Batchnormalisierung
        4. Gradient Clipping
      2. Wiederverwenden vortrainierter Schichten
        1. Transfer Learning mit Keras
        2. Unüberwachtes Vortrainieren
        3. Vortrainieren anhand einer Hilfsaufgabe
      3. Schnellere Optimierer
        1. Momentum Optimization
        2. Beschleunigter Gradient nach Nesterov
        3. AdaGrad
        4. RMSProp
        5. Adam-Optimierung
        6. Scheduling der Lernrate
      4. Vermeiden von Overfitting durch Regularisierung
        1. ℓ1- und ℓ2-Regularisierung
        2. Drop-out
        3. Monte-Carlo-(MC-)-Drop-out
        4. Max-Norm-Regularisierung
      5. Zusammenfassung und praktische Tipps
      6. Übungen
    3. 12 Eigene Modelle und Training mit TensorFlow
      1. Ein kurzer Überblick über TensorFlow
      2. TensorFlow wie NumPy einsetzen
        1. Tensoren und Operationen
        2. Tensoren und NumPy
        3. Typumwandlung
        4. Variablen
        5. Andere Datenstrukturen
      3. Modelle und Trainingsalgorithmen anpassen
        1. Eigene Verlustfunktion
        2. Modelle mit eigenen Komponenten sichern und laden
        3. Eigene Aktivierungsfunktionen, Initialisierer, Regularisierer und Constraints
        4. Eigene Metriken
        5. Eigene Schichten
        6. Eigene Modelle
        7. Verlustfunktionen und Metriken auf Modell-Interna basieren lassen
        8. Gradienten per Autodiff berechnen
        9. Eigene Trainingsschleifen
      4. Funktionen und Graphen in TensorFlow
        1. AutoGraph und Tracing
        2. Regeln für TF Functions
      5. Übungen
    4. 13 Daten mit TensorFlow laden und vorverarbeiten
      1. Die Data-API
        1. Transformationen verketten
        2. Daten durchmischen
        3. Daten vorverarbeiten
        4. Alles zusammenbringen
        5. Prefetching
        6. Datasets mit tf.keras verwenden
      2. Das TFRecord-Format
        1. Komprimierte TFRecord-Dateien
        2. Eine kurze Einführung in Protocol Buffer
        3. TensorFlow-Protobufs
        4. Examples laden und parsen
        5. Listen von Listen mit dem SequenceExample-Protobuf verarbeiten
      3. Die Eingabemerkmale vorverarbeiten
        1. Kategorische Merkmale mit One-Hot-Vektoren codieren
        2. Kategorische Merkmale mit Embeddings codieren
        3. Vorverarbeitungsschichten von Keras
      4. TF Transform
      5. Das TensorFlow-Datasets-(TFDS-)Projekt
      6. Übungen
    5. 14 Deep Computer Vision mit Convolutional Neural Networks
      1. Der Aufbau des visuellen Cortex
      2. Convolutional Layers
        1. Filter
        2. Stapeln mehrerer Feature Maps
        3. Implementierung in TensorFlow
        4. Speicherbedarf
      3. Pooling Layers
        1. Implementierung in TensorFlow
      4. Architekturen von CNNs
        1. LeNet-5
        2. AlexNet
        3. GoogLeNet
        4. VGGNet
        5. ResNet
        6. Xception
        7. SENet
      5. Ein ResNet-34-CNN mit Keras implementieren
      6. Vortrainierte Modelle aus Keras einsetzen
      7. Vortrainierte Modelle für das Transfer Learning
      8. Klassifikation und Lokalisierung
      9. Objekterkennung
        1. Fully Convolutional Networks
        2. You Only Look Once (YOLO)
      10. Semantische Segmentierung
      11. Übungen
    6. 15 Verarbeiten von Sequenzen mit RNNs und CNNs
      1. Rekurrente Neuronen und Schichten
        1. Gedächtniszellen
        2. Ein- und Ausgabesequenzen
      2. RNNs trainieren
      3. Eine Zeitserie vorhersagen
        1. Grundlegende Metriken
        2. Ein einfaches RNN implementieren
        3. Deep RNNs
        4. Mehrere Zeitschritte vorhersagen
      4. Arbeit mit langen Sequenzen
        1. Gegen instabile Gradienten kämpfen
        2. Das Problem des Kurzzeitgedächtnisses
      5. Übungen
    7. 16 Natürliche Sprachverarbeitung mit RNNs und Attention
      1. Shakespearesche Texte mit einem Character-RNN erzeugen
        1. Den Trainingsdatensatz erstellen
        2. Wie ein sequenzieller Datensatz aufgeteilt wird
        3. Den sequenziellen Datensatz in mehrere Fenster unterteilen
        4. Das Char-RNN-Modell bauen und trainieren
        5. Das Char-RNN-Modell verwenden
        6. Einen gefälschten Shakespeare-Text erzeugen
        7. Zustandsbehaftetes RNN
      2. Sentimentanalyse
        1. Maskieren
        2. Vortrainierte Embeddings wiederverwenden
      3. Ein Encoder-Decoder-Netzwerk für die neuronale maschinelle Übersetzung
        1. Bidirektionale RNNs
        2. Beam Search
      4. Attention-Mechanismen
        1. Visuelle Attention
        2. Attention Is All You Need: Die Transformer-Architektur
      5. Aktuelle Entwicklungen bei Sprachmodellen
      6. Übungen
    8. 17 Representation Learning und Generative Learning mit Autoencodern und GANs
      1. Effiziente Repräsentation von Daten
      2. Hauptkomponentenzerlegung mit einem untervollständigen linearen Autoencoder
      3. Stacked Autoencoder
        1. Einen Stacked Autoencoder mit Keras implementieren
        2. Visualisieren der Rekonstruktionen
        3. Den Fashion-MNIST-Datensatz visualisieren
        4. Unüberwachtes Vortrainieren mit Stacked Autoencoder
        5. Kopplung von Gewichten
        6. Trainieren mehrerer Autoencoder nacheinander
      4. Convolutional Autoencoder
      5. Rekurrente Autoencoder
      6. Denoising Autoencoder
      7. Sparse Autoencoder
      8. Variational Autoencoder
        1. Fashion-MNIST-Bilder erzeugen
      9. Generative Adversarial Networks
        1. Schwierigkeiten beim Trainieren von GANs
        2. Deep Convolutional GANs
        3. Progressive wachsende GANs
        4. StyleGANs
      10. Übungen
    9. 18 Reinforcement Learning
      1. Lernen zum Optimieren von Belohnungen
      2. Suche nach Policies
      3. Einführung in OpenAI Gym
      4. Neuronale Netze als Policies
      5. Auswerten von Aktionen: Das Credit-Assignment-Problem
      6. Policy-Gradienten
      7. Markov-Entscheidungsprozesse
      8. Temporal Difference Learning
      9. Q-Learning
        1. Erkundungspolicies
        2. Approximatives Q-Learning und Deep-Q-Learning
      10. Deep-Q-Learning implementieren
      11. Deep-Q-Learning-Varianten
        1. Feste Q-Wert-Ziele
        2. Double DQN
        3. Priorisiertes Experience Replay
        4. Dueling DQN
      12. Die TF-Agents-Bibliothek
        1. TF-Agents installieren
        2. TF-Agents-Umgebungen
        3. Umgebungsspezifikationen
        4. Umgebungswrapper und Atari-Vorverarbeitung
        5. Trainingsarchitektur
        6. Deep-Q-Netz erstellen
        7. DQN-Agenten erstellen
        8. Replay Buffer und Beobachter erstellen
        9. Trainingsmetriken erstellen
        10. Collect-Fahrer erstellen
        11. Dataset erstellen
        12. Trainingsschleife erstellen
      13. Überblick über beliebte RL-Algorithmen
      14. Übungen
    10. 19 TensorFlow-Modelle skalierbar trainieren und deployen
      1. Ein TensorFlow-Modell ausführen
        1. TensorFlow Serving verwenden
        2. Einen Vorhersageservice auf der GCP AI Platform erstellen
        3. Den Vorhersageservice verwenden
      2. Ein Modell auf ein Mobile oder Embedded Device deployen
      3. Mit GPUs die Berechnungen beschleunigen
        1. Sich eine eigene GPU zulegen
        2. Eine mit GPU ausgestattete virtuelle Maschine einsetzen
        3. Colaboratory
        4. Das GPU-RAM verwalten
        5. Operationen und Variablen auf Devices verteilen
        6. Paralleles Ausführen auf mehreren Devices
      4. Modelle auf mehreren Devices trainieren
        1. Parallelisierte Modelle
        2. Parallelisierte Daten
        3. Mit der Distribution Strategies API auf mehreren Devices trainieren
        4. Ein Modell in einem TensorFlow-Cluster trainieren
        5. Große Trainingsjobs auf der Google Cloud AI Platform ausführen
        6. Black Box Hyperparameter Tuning auf der AI Platform
      5. Übungen
      6. Vielen Dank!
  8. A Lösungen zu den Übungsaufgaben
  9. B Checkliste für Machine-Learning-Projekte
  10. C Das duale Problem bei SVMs
  11. D Autodiff
  12. E Weitere verbreitete Architekturen neuronaler Netze
  13. F Spezielle Datenstrukturen
  14. G TensorFlow-Graphen
  15. Fußnoten
  16. Index
  17. Über den Autor
  18. Über die Übersetzer
  19. Kolophon

Product information

  • Title: Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow, 2nd Edition
  • Author(s): Aurélien Géron
  • Release date: July 2020
  • Publisher(s): dpunkt
  • ISBN: 9783960091240