Machine Learning mit Python und Keras, TensorFlow 2 und Scikit-Learn

Book description

  • Datenanalyse mit ausgereiften statistischen Modellen des Machine Learnings
  • Anwendung der wichtigsten Algorithmen und Python-Bibliotheken wie NumPy, SciPy, Scikit-learn, Keras, TensorFlow 2, Pandas und Matplotlib
  • Best Practices zur Optimierung Ihrer Machine-Learning-Algorithmen

Mit diesem Buch erhalten Sie eine umfassende Einführung in die Grundlagen und den effektiven Einsatz von Machine-Learning- und Deep-Learning-Algorithmen und wenden diese anhand zahlreicher Beispiele praktisch an. Dafür setzen Sie ein breites Spektrum leistungsfähiger Python-Bibliotheken ein, insbesondere Keras, TensorFlow 2 und Scikit-learn. Auch die für die praktische Anwendung unverzichtbaren mathematischen Konzepte werden verständlich und anhand zahlreicher Diagramme anschaulich erläutert.

Die dritte Auflage dieses Buchs wurde für TensorFlow 2 komplett aktualisiert und berücksichtigt die jüngsten Entwicklungen und Technologien, die für Machine Learning, Neuronale Netze und Deep Learning wichtig sind. Dazu zählen insbesondere die neuen Features der Keras-API, das Synthetisieren neuer Daten mit Generative Adversarial Networks (GANs) sowie die Entscheidungsfindung per Reinforcement Learning.

Ein sicherer Umgang mit Python wird vorausgesetzt.

Aus dem Inhalt:

  • Trainieren von Lernalgorithmen und Implementierung in Python
  • Gängige Klassifikationsalgorithmen wie Support Vector Machines (SVM), Entscheidungsbäume und Random Forest
  • Natural Language Processing zur Klassifizierung von Filmbewertungen
  • Clusteranalyse zum Auffinden verborgener Muster und Strukturen in Ihren Daten
  • Deep-Learning-Verfahren für die Bilderkennung
  • Datenkomprimierung durch Dimensionsreduktion
  • Training Neuronaler Netze und GANs mit TensorFlow 2
  • Kombination verschiedener Modelle für das Ensemble Learning
  • Einbettung von Machine-Learning-Modellen in Webanwendungen
  • Stimmungsanalyse in Social Networks
  • Modellierung sequenzieller Daten durch rekurrente Neuronale Netze
  • Reinforcement Learning und Implementierung von Q-Learning-Algorithmen

Table of contents

  1. Impressum
  2. Über die Autoren
  3. Über die Korrektoren
  4. Über den Fachkorrektor der deutschen Ausgabe
  5. Einleitung
    1. Einstieg in Machine Learning
    2. Zum Inhalt des Buches
    3. Was Sie benötigen
    4. Codebeispiele herunterladen
    5. Konventionen im Buch
  6. Kapitel 1: Wie Computer aus Daten lernen können
    1. 1.1 Intelligente Maschinen, die Daten in Wissen verwandeln
    2. 1.2 Die drei Arten des Machine Learnings
      1. 1.2.1 Mit überwachtem Lernen Vorhersagen treffen
      2. 1.2.2 Interaktive Aufgaben durch Reinforcement Learning lösen
      3. 1.2.3 Durch unüberwachtes Lernen verborgene Strukturen erkennen
    3. 1.3 Grundlegende Terminologie und Notation
      1. 1.3.1 Im Buch verwendete Notation und Konventionen
      2. 1.3.2 Terminologie
    4. 1.4 Entwicklung eines Systems für das Machine Learning
      1. 1.4.1 Vorverarbeitung: Daten in Form bringen
      2. 1.4.2 Trainieren und Auswählen eines Vorhersagemodells
      3. 1.4.3 Bewertung von Modellen und Vorhersage anhand unbekannter Dateninstanzen
    5. 1.5 Machine Learning mit Python
      1. 1.5.1 Python und Python-Pakete installieren
      2. 1.5.2 Verwendung der Python-Distribution Anaconda
      3. 1.5.3 Pakete für wissenschaftliches Rechnen, Data Science und Machine Learning
    6. 1.6 Zusammenfassung
  7. Kapitel 2: Lernalgorithmen für die Klassifikation trainieren
    1. 2.1 Künstliche Neuronen: Ein kurzer Blick auf die Anfänge des Machine Learnings
      1. 2.1.1 Formale Definition eines künstlichen Neurons
      2. 2.1.2 Die Perzeptron-Lernregel
    2. 2.2 Implementierung eines Perzeptron-Lernalgorithmus in Python
      1. 2.2.1 Eine objektorientierte Perzeptron-API
      2. 2.2.2 Trainieren eines Perzeptron-Modells mit der Iris-Datensammlung
    3. 2.3 Adaptive lineare Neuronen und die Konvergenz des Lernens
      1. 2.3.1 Straffunktionen mit dem Gradientenabstiegsverfahren minimieren
      2. 2.3.2 Implementierung eines adaptiven linearen Neurons in Python
      3. 2.3.3 Verbesserung des Gradientenabstiegsverfahrens durch Merkmalstandardisierung
      4. 2.3.4 Large Scale Machine Learning und stochastisches Gradientenabstiegsverfahren
    4. 2.4 Zusammenfassung
  8. Kapitel 3: Machine-Learning-Klassifikatoren mit scikit-learn verwenden
    1. 3.1 Auswahl eines Klassifikationsalgorithmus
    2. 3.2 Erste Schritte mit scikit-learn: Trainieren eines Perzeptrons
    3. 3.3 Klassenwahrscheinlichkeiten durch logistische Regression modellieren
      1. 3.3.1 Logistische Regression und bedingte Wahrscheinlichkeiten
      2. 3.3.2 Gewichte der logistischen Straffunktion ermitteln
      3. 3.3.3 Konvertieren einer Adaline-Implementierung in einen Algorithmus für eine logistische Regression
      4. 3.3.4 Trainieren eines logistischen Regressionsmodells mit scikit-learn
      5. 3.3.5 Überanpassung durch Regularisierung verhindern
    4. 3.4 Maximum-Margin-Klassifikation mit Support Vector Machines
      1. 3.4.1 Maximierung des Randbereichs
      2. 3.4.2 Handhabung des nicht linear trennbaren Falls mit Schlupfvariablen
      3. 3.4.3 Alternative Implementierungen in scikit-learn
    5. 3.5 Nichtlineare Aufgaben mit einer Kernel-SVM lösen
      1. 3.5.1 Kernel-Methoden für linear nicht trennbare Daten
      2. 3.5.2 Mit dem Kernel-Trick Hyperebenen in höherdimensionalen Räumen finden
    6. 3.6 Lernen mit Entscheidungsbäumen
      1. 3.6.1 Maximierung des Informationsgewinns: Daten ausreizen
      2. 3.6.2 Konstruktion eines Entscheidungsbaums
      3. 3.6.3 Mehrere Entscheidungsbäume zu einem Random Forest kombinieren
    7. 3.7 k-Nearest-Neighbors: Ein Lazy-Learning-Algorithmus
    8. 3.8 Zusammenfassung
  9. Kapitel 4: Gut geeignete Trainingsdatenmengen: Datenvorverarbeitung
    1. 4.1 Umgang mit fehlenden Daten
      1. 4.1.1 Fehlende Werte in Tabellendaten
      2. 4.1.2 Instanzen oder Merkmale mit fehlenden Daten entfernen
      3. 4.1.3 Fehlende Werte ergänzen
      4. 4.1.4 Die Schätzer-API von scikit-learn
    2. 4.2 Handhabung kategorialer Daten
      1. 4.2.1 Codierung kategorialer Daten mit pandas
      2. 4.2.2 Zuweisung von ordinalen Merkmalen
      3. 4.2.3 Codierung der Klassenbezeichnungen
      4. 4.2.4 One-hot-Codierung der nominalen Merkmale
    3. 4.3 Aufteilung einer Datensammlung in Trainings- und Testdaten
    4. 4.4 Anpassung der Merkmale
    5. 4.5 Auswahl aussagekräftiger Merkmale
      1. 4.5.1 L1- und L2-Regularisierung als Straffunktionen
      2. 4.5.2 Geometrische Interpretation der L2-Regularisierung
      3. 4.5.3 Dünn besetzte Lösungen mit L1-Regularisierung
      4. 4.5.4 Algorithmen zur sequenziellen Auswahl von Merkmalen
    6. 4.6 Beurteilung der Bedeutung von Merkmalen mit Random Forests
    7. 4.7 Zusammenfassung
  10. Kapitel 5: Datenkomprimierung durch Dimensionsreduktion
    1. 5.1 Unüberwachte Dimensionsreduktion durch Hauptkomponentenanalyse
      1. 5.1.1 Schritte bei der Hauptkomponentenanalyse
      2. 5.1.2 Schrittweise Extraktion der Hauptkomponenten
      3. 5.1.3 Totale Varianz und erklärte Varianz
      4. 5.1.4 Merkmalstransformation
      5. 5.1.5 Hauptkomponentenanalyse mit scikit-learn
    2. 5.2 Überwachte Datenkomprimierung durch lineare Diskriminanzanalyse
      1. 5.2.1 Hauptkomponentenanalyse kontra lineare Diskriminanzanalyse
      2. 5.2.2 Die interne Funktionsweise der linearen Diskriminanzanalyse
      3. 5.2.3 Berechnung der Streumatrizen
      4. 5.2.4 Auswahl linearer Diskriminanten für den neuen Merkmalsunterraum
      5. 5.2.5 Projektion in den neuen Merkmalsraum
      6. 5.2.6 LDA mit scikit-learn
    3. 5.3 Kernel-Hauptkomponentenanalyse für nichtlineare Zuordnungen verwenden
      1. 5.3.1 Kernel-Funktionen und der Kernel-Trick
      2. 5.3.2 Implementierung einer Kernel-Hauptkomponentenanalyse in Python
      3. 5.3.3 Projizieren neuer Datenpunkte
      4. 5.3.4 Kernel-Hauptkomponentenanalyse mit scikit-learn
    4. 5.4 Zusammenfassung
  11. Kapitel 6: Bewährte Verfahren zur Modellbewertung und Hyperparameter-Optimierung
    1. 6.1 Arbeitsabläufe mit Pipelines optimieren
      1. 6.1.1 Die Wisconsin-Brustkrebs-Datensammlung
      2. 6.1.2 Transformer und Schätzer in einer Pipeline kombinieren
    2. 6.2 Beurteilung des Modells durch k-fache Kreuzvalidierung
      1. 6.2.1 Holdout-Methode
      2. 6.2.2 k-fache Kreuzvalidierung
    3. 6.3 Algorithmen mit Lern- und Validierungskurven debuggen
      1. 6.3.1 Probleme mit Bias und Varianz anhand von Lernkurven erkennen
      2. 6.3.2 Überanpassung und Unteranpassung anhand von Validierungskurven erkennen
    4. 6.4 Feinabstimmung eines Lernmodells durch Grid Search
      1. 6.4.1 Optimierung der Hyperparameter durch Grid Search
      2. 6.4.2 Algorithmenauswahl durch verschachtelte Kreuzvalidierung
    5. 6.5 Verschiedene Kriterien zur Leistungsbewertung
      1. 6.5.1 Interpretation einer Verwechslungsmatrix
      2. 6.5.2 Optimierung der Genauigkeit und der Trefferquote eines Klassifikationsmodells
      3. 6.5.3 Receiver-Operating-Characteristic-Diagramme
      4. 6.5.4 Bewertungskriterien für Mehrklassen-Klassifikationen
    6. 6.6 Handhabung unausgewogener Klassenverteilung
    7. 6.7 Zusammenfassung
  12. Kapitel 7: Kombination verschiedener Modelle für das Ensemble Learning
    1. 7.1 Ensemble Learning‌
    2. 7.2 Klassifikatoren durch Mehrheitsentscheidung kombinieren
      1. 7.2.1 Implementierung eines einfachen Mehrheitsentscheidungs-Klassifikators
      2. 7.2.2 Vorhersagen nach dem Mehrheitsentscheidungsprinzip treffen
    3. 7.3 Bewertung und Abstimmung des Klassifikator-Ensembles
    4. 7.4 Bagging: Klassifikator-Ensembles anhand von Bootstrap-Stichproben entwickeln
      1. 7.4.1 Bagging kurz zusammengefasst
      2. 7.4.2 Klassifikation der Wein-Datensammlung durch Bagging
    5. 7.5 Schwache Klassifikatoren durch adaptives Boosting verbessern
      1. 7.5.1 Funktionsweise des Boostings
      2. 7.5.2 AdaBoost mit scikit-learn anwenden
    6. 7.6 Zusammenfassung
  13. Kapitel 8: Machine Learning zur Analyse von Stimmungslagen nutzen
    1. 8.1 Die IMDb-Filmdatenbank
      1. 8.1.1 Herunterladen der Datensammlung
      2. 8.1.2 Vorverarbeiten der Filmbewertungsdaten
    2. 8.2 Das Bag-of-words-Modell
      1. 8.2.1 Wörter in Merkmalsvektoren umwandeln
      2. 8.2.2 Beurteilung der Wortrelevanz durch das Tf-idf-Maß
      3. 8.2.3 Textdaten bereinigen
      4. 8.2.4 Dokumente in Tokens zerlegen
    3. 8.3 Ein logistisches Regressionsmodell für die Dokumentklassifikation trainieren
    4. 8.4 Verarbeitung großer Datenmengen: Online-Algorithmen und Out-of-Core Learning
    5. 8.5 Topic Modeling mit latenter Dirichlet-Allokation
      1. 8.5.1 Aufteilung von Texten mit der LDA
      2. 8.5.2 LDA mit scikit-learn
    6. 8.6 Zusammenfassung
  14. Kapitel 9: Einbettung eines Machine-Learning-Modells in eine Webanwendung
    1. 9.1 Serialisierung angepasster Schätzer mit scikit-learn
    2. 9.2 Einrichtung einer SQLite-Datenbank zum Speichern von Daten
    3. 9.3 Entwicklung einer Webanwendung mit Flask
      1. 9.3.1 Die erste Webanwendung mit Flask
      2. 9.3.2 Formularvalidierung und -ausgabe
    4. 9.4 Der Filmbewertungsklassifikator als Webanwendung
      1. 9.4.1 Dateien und Ordner – die Verzeichnisstruktur
      2. 9.4.2 Implementierung der Hauptanwendung app.py
      3. 9.4.3 Einrichtung des Bewertungsformulars
      4. 9.4.4 Eine Vorlage für die Ergebnisseite erstellen
    5. 9.5 Einrichtung der Webanwendung auf einem öffentlich zugänglichen Webserver
      1. 9.5.1 Erstellen eines Benutzerkontos bei PythonAnywhere
      2. 9.5.2 Hochladen der Filmbewertungsanwendung
      3. 9.5.3 Updaten des Filmbewertungsklassifikators
    6. 9.6 Zusammenfassung
  15. Kapitel 10: Vorhersage stetiger Zielvariablen durch Regressionsanalyse
    1. 10.1 Lineare Regression
      1. 10.1.1 Ein einfaches lineares Regressionsmodell
      2. 10.1.2 Multiple lineare Regression
    2. 10.2 Die Boston-Housing-Datensammlung
      1. 10.2.1 Einlesen der Datenmenge in einen DataFrame
      2. 10.2.2 Visualisierung der wichtigen Eigenschaften einer Datenmenge
      3. 10.2.3 Zusammenhänge anhand der Korrelationsmatrix erkennen
    3. 10.3 Implementierung eines linearen Regressionsmodells mit der Methode der kleinsten Quadrate
      1. 10.3.1 Berechnung der Regressionsparameter mit dem Gradientenabstiegsverfahren
      2. 10.3.2 Schätzung der Koeffizienten eines Regressionsmodells mit scikit-learn
    4. 10.4 Anpassung eines robusten Regressionsmodells mit dem RANSAC-Algorithmus
    5. 10.5 Bewertung der Leistung linearer Regressionsmodelle
    6. 10.6 Regularisierungsverfahren für die Regression einsetzen
    7. 10.7 Polynomiale Regression: Umwandeln einer linearen Regression in eine Kurve
      1. 10.7.1 Hinzufügen polynomialer Terme mit scikit-learn
      2. 10.7.2 Modellierung nichtlinearer Zusammenhänge in der Boston-Housing-Datensammlung
    8. 10.8 Handhabung nichtlinearer Beziehungen mit Random Forests
      1. 10.8.1 Entscheidungsbaum-Regression
      2. 10.8.2 Random-Forest-Regression
    9. 10.9 Zusammenfassung
  16. Kapitel 11: Verwendung von Daten ohne Label: Clusteranalyse
    1. 11.1 Gruppierung von Objekten nach Ähnlichkeit mit dem k-Means-Algorithmus
      1. 11.1.1 k-Means-Clustering mit scikit-learn
      2. 11.1.2 Der k-Means++-Algorithmus
      3. 11.1.3 »Crisp« und »soft« Clustering
      4. 11.1.4 Die optimale Anzahl der Cluster mit dem Ellenbogenkriterium ermitteln
      5. 11.1.5 Quantifizierung der Clustering-Güte mit Silhouettendiagrammen
    2. 11.2 Cluster als hierarchischen Baum organisieren
      1. 11.2.1 Gruppierung von Clustern
      2. 11.2.2 Hierarchisches Clustering mittels einer Distanzmatrix
      3. 11.2.3 Dendrogramme und Heatmaps verknüpfen
      4. 11.2.4 Agglomeratives Clustering mit scikit-learn
    3. 11.3 Bereiche hoher Dichte mit DBSCAN ermitteln
    4. 11.4 Zusammenfassung
  17. Kapitel 12: Implementierung eines künstlichen neuronalen Netzes
    1. 12.1 Modellierung komplexer Funktionen mit künstlichen neuronalen Netzen
      1. 12.1.1 Einschichtige neuronale Netze
      2. 12.1.2 Mehrschichtige neuronale Netzarchitektur
      3. 12.1.3 Aktivierung eines neuronalen Netzes durch Vorwärtspropagation
    2. 12.2 Klassifikation handgeschriebener Ziffern
      1. 12.2.1 Die MNIST-Datensammlung
      2. 12.2.2 Implementierung eines mehrschichtigen Perzeptrons
    3. 12.3 Trainieren eines künstlichen neuronalen Netzes
      1. 12.3.1 Berechnung der logistischen Straffunktion
      2. 12.3.2 Ein Gespür für die Backpropagation entwickeln
      3. 12.3.3 Trainieren neuronaler Netze durch Backpropagation
    4. 12.4 Konvergenz in neuronalen Netzen
    5. 12.5 Abschließende Bemerkungen zur Implementierung neuronaler Netze
    6. 12.6 Zusammenfassung
  18. Kapitel 13: Parallelisierung des Trainings neuronaler Netze mit TensorFlow
    1. 13.1 TensorFlow und Trainingsleistung
      1. 13.1.1 Herausforderungen
      2. 13.1.2 Was genau ist TensorFlow?
      3. 13.1.3 TensorFlow erlernen
    2. 13.2 Erste Schritte mit TensorFlow
      1. 13.2.1 TensorFlow installieren
      2. 13.2.2 Tensoren in TensorFlow erstellen
      3. 13.2.3 Datentyp und Format eines Tensors ändern
      4. 13.2.4 Anwendung mathematischer Operationen auf Tensoren
      5. 13.2.5 Tensoren aufteilen, stapeln und verknüpfen
    3. 13.3 Eingabe-Pipelines mit tf.data erstellen – die Dataset-API von TensorFlow
      1. 13.3.1 Ein TensorFlow-Dataset anhand vorhandener Tensoren erstellen
      2. 13.3.2 Zwei Tensoren zu einer Datenmenge vereinen
      3. 13.3.3 Durchmischen, Batch erstellen und wiederholen
      4. 13.3.4 Erstellen einer Datenmenge anhand lokal gespeicherter Dateien
      5. 13.3.5 Zugriff auf die Datenmengen der tensorflow_datasets-Bibliothek
    4. 13.4 Entwicklung eines NN-Modells mit TensorFlow
      1. 13.4.1 Die Keras-API (tf.keras) von TensorFlow
      2. 13.4.2 Entwicklung eines linearen Regressionsmodells
      3. 13.4.3 Trainieren des Modells mit den Methoden .compile() und .fit()
      4. 13.4.4 Entwicklung eines mehrschichtigen Perzeptrons zur Klassifikation der Iris-Datensammlung
      5. 13.4.5 Bewertung des trainierten Modells mit der Testdatenmenge
      6. 13.4.6 Das trainierte Modell speichern und einlesen
    5. 13.5 Auswahl der Aktivierungsfunktionen mehrschichtiger neuronaler Netze
      1. 13.5.1 Die logistische Funktion kurz zusammengefasst
      2. 13.5.2 Wahrscheinlichkeiten bei der Mehrklassen-Klassifikation mit der softmax-Funktion schätzen
      3. 13.5.3 Verbreiterung des Ausgabespektrums mittels Tangens hyperbolicus
      4. 13.5.4 Aktivierung mittels ReLU
    6. 13.6 Zusammenfassung
  19. Kapitel 14: Die Funktionsweise von TensorFlow im Detail
    1. 14.1 Grundlegende Merkmale von TensorFlow
    2. 14.2 TensorFlows Berechnungsgraphen: Migration nach TensorFlow v2
      1. 14.2.1 Funktionsweise von Berechnungsgraphen
      2. 14.2.2 Erstellen eines Graphen in TensorFlow v1.x
      3. 14.2.3 Migration eines Graphen nach TensorFlow v2
      4. 14.2.4 Eingabedaten einlesen mit TensorFlow v1.x
      5. 14.2.5 Eingabedaten einlesen mit TensorFlow v2
      6. 14.2.6 Beschleunigung von Berechnungen mit Funktionsdekoratoren
    3. 14.3 TensorFlows Variablenobjekte zum Speichern und Aktualisieren von Modellparametern
    4. 14.4 Gradientenberechnung durch automatisches Differenzieren und GradientTape
      1. 14.4.1 Berechnung der Gradienten der Verlustfunktion bezüglich trainierbarer Variablen
      2. 14.4.2 Berechnung der Gradienten bezüglich nicht trainierbarer Tensoren
      3. 14.4.3 Ressourcen für mehrfache Gradientenberechnung erhalten
    5. 14.5 Vereinfachung der Implementierung gebräuchlicher Architekturen mit der Keras-API
      1. 14.5.1 Lösen einer XOR-Klassifikationsaufgabe
      2. 14.5.2 Flexiblere Modellerstellung mit Keras’ funktionaler API
      3. 14.5.3 Modelle mit Keras’ »Model«-Klasse implementieren
      4. 14.5.4 Benutzerdefinierte Keras-Schichten
    6. 14.6 TensorFlows Schätzer
      1. 14.6.1 Merkmalsspalten
      2. 14.6.2 Machine Learning mit vorgefertigten Schätzern
      3. 14.6.3 Klassifikation handgeschriebener Ziffern mit Schätzern
      4. 14.6.4 Benutzerdefinierte Schätzer anhand eines Keras-Modells erstellen
    7. 14.7 Zusammenfassung
  20. Kapitel 15: Bildklassifikation mit Deep Convolutional Neural Networks
    1. 15.1 Bausteine von Convolutional Neural Networks
      1. 15.1.1 CNNs und Merkmalshierarchie
      2. 15.1.2 Diskrete Faltungen
      3. 15.1.3 Subsampling
    2. 15.2 Implementierung eines CNNs
      1. 15.2.1 Verwendung mehrerer Eingabe- oder Farbkanäle
      2. 15.2.2 Regularisierung eines neuronalen Netzes mit Dropout
      3. 15.2.3 Verlustfunktionen für Klassifikationen
    3. 15.3 Implementierung eines tiefen CNNs mit TensorFlow
      1. 15.3.1 Die mehrschichtige CNN-Architektur
      2. 15.3.2 Einlesen und Vorverarbeiten der Daten
      3. 15.3.3 Implementierung eines CNNs mit TensorFlows Keras-API
    4. 15.4 Klassifikation des Geschlechts anhand von Porträtfotos mit einem CNN
      1. 15.4.1 Einlesen der CelebA-Datenmenge
      2. 15.4.2 Bildtransformation und Datenaugmentation
      3. 15.4.3 Training eines CNN-Klassifikators
    5. 15.5 Zusammenfassung
  21. Kapitel 16: Modellierung sequenzieller Daten durch rekurrente neuronale Netze
    1. 16.1 Sequenzielle Daten
      1. 16.1.1 Modellierung sequenzieller Daten: Die Reihenfolge ist von Bedeutung
      2. 16.1.2 Repräsentierung von Sequenzen
      3. 16.1.3 Verschiedene Kategorien der Sequenzmodellierung
    2. 16.2 Sequenzmodellierung mit RNNs
      1. 16.2.1 Struktur und Ablauf eines RNNs
      2. 16.2.2 Aktivierungen eines RNNs berechnen
      3. 16.2.3 Rückkopplung mit der verdeckten Schicht oder der Ausgabeschicht
      4. 16.2.4 Probleme bei der Erkennung weitreichender Interaktionen
      5. 16.2.5 LSTM-Speicherzellen
    3. 16.3 Implementierung von RNNs zur Sequenzmodellierung mit TensorFlow
      1. 16.3.1 Projekt 1: Vorhersage der Stimmungslage von IMDb-Filmbewertungen
      2. 16.3.2 Projekt 2: Sprachmodellierung durch Zeichen mit TensorFlow
    4. 16.4 Sprache mit dem Transformer-Modell verstehen
      1. 16.4.1 Der Mechanismus der Selbst-Aufmerksamkeit
      2. 16.4.2 Multi-Head-Attention und Transformer-Block
    5. 16.5 Zusammenfassung
  22. Kapitel 17: Synthetisieren neuer Daten mit Generative Adversarial Networks
    1. 17.1 Einführung in GANs
      1. 17.1.1 Autoencoder
      2. 17.1.2 Generative Modelle zum Synthetisieren neuer Daten
      3. 17.1.3 Mit GANs neue Beispiele erzeugen
      4. 17.1.4 Die Verlustfunktion des Generator- und Diskriminator-Netzes in einem GAN-Modell
    2. 17.2 Ein GAN von Grund auf implementieren
      1. 17.2.1 GAN-Modelle mit Google Colab trainieren
      2. 17.2.2 Implementierung der Generator- und Diskriminator-Netze
      3. 17.2.3 Definition der Trainingsdatenmenge
      4. 17.2.4 Trainieren des GAN-Modells
    3. 17.3 Verbesserung der Qualität synthetisierter Bilder durch Convolutional GAN und Wasserstein-GAN
      1. 17.3.1 Transponierte Faltung
      2. 17.3.2 Batchnormierung
      3. 17.3.3 Implementierung des Generators und des Diskriminators
      4. 17.3.4 Maße für den Unterschied zwischen zwei Verteilungen
      5. 17.3.5 Verwendung der EM-Distanz in der Praxis
      6. 17.3.6 Strafterm
      7. 17.3.7 Implementierung von WGAN-GP zum Trainieren des DCGAN-Modells
      8. 17.3.8 Zusammenbrechen des Verfahrens
    4. 17.4 Weitere GAN-Anwendungen
    5. 17.5 Zusammenfassung
  23. Kapitel 18: Entscheidungsfindung in komplexen Umgebungen per Reinforcement Learning
    1. 18.1 Einführung: Aus Erfahrung lernen
      1. 18.1.1 Reinforcement Learning
      2. 18.1.2 Definition der Agent-Umgebung-Schnittstelle für ein Reinforcement-Learning-System
    2. 18.2 Theoretische Grundlagen des RLs
      1. 18.2.1 Markov-Entscheidungsprozesse
      2. 18.2.2 Mathematische Formulierung von Markov-Entscheidungsprozessen
      3. 18.2.3 RL-Terminologie: Return, Policy und Wertfunktion
      4. 18.2.4 Dynamische Programmierung und Bellman-Gleichung
    3. 18.3 Reinforcement-Learning-Algorithmen
      1. 18.3.1 Dynamische Programmierung
      2. 18.3.2 Reinforcement Learning mit Monte-Carlo-Algorithmen
      3. 18.3.3 Temporal Difference Learning
    4. 18.4 Implementierung eines RL-Algorithmus
      1. 18.4.1 OpenAI Gym
      2. 18.4.2 Lösung der Grid-World-Aufgabe mit Q-Learning
      3. 18.4.3 Ein Blick auf Deep Q-Learning
    5. 18.5 Zusammenfassung und Schlusswort

Product information

  • Title: Machine Learning mit Python und Keras, TensorFlow 2 und Scikit-Learn
  • Author(s): Sebastian Raschka, Vahid Mirjalili
  • Release date: March 2021
  • Publisher(s): mitp Verlag
  • ISBN: None