
Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow
Beschreibung
Weitere Details
Weitere Ausgaben
Personen
Inhalt
- Intro
- Inhalt
- Vorwort
- Kapitel 1: Die Machine-Learning-Umgebung
- Was ist Machine Learning?
- Warum wird Machine Learning verwendet?
- Anwendungsbeispiel
- Unterschiedliche Machine-Learning-Systeme
- Trainingsüberwachung
- Batch- und Online-Learning
- Instanzbasiertes versus modellbasiertes Lernen
- Die wichtigsten Herausforderungen beim Machine Learning
- Unzureichende Menge an Trainingsdaten
- Nicht repräsentative Trainingsdaten
- Minderwertige Daten
- Irrelevante Merkmale
- Overfitting der Trainingsdaten
- Underfitting der Trainingsdaten
- Zusammenfassung
- Testen und Validieren
- Hyperparameter anpassen und Modellauswahl
- Datendiskrepanz
- Übungen
- Kapitel 2: Ein Machine-Learning-Projekt von A bis Z
- Der Umgang mit realen Daten
- Betrachte das Gesamtbild
- Die Aufgabe abstecken
- Wähle ein Qualitätsmaß aus
- Überprüfe die Annahmen
- Beschaffe die Daten
- Die Codebeispiele mit Google Colab ausführen
- Ihre Codeänderungen und Daten sichern
- Interaktivität - mächtig, aber gefährlich
- Code im Buch versus Notebook-Code
- Die Daten herunterladen
- Wirf einen kurzen Blick auf die Datenstruktur
- Erstelle einen Testdatensatz
- Erkunde und visualisiere die Daten, um Erkenntnisse zu gewinnen
- Visualisieren geografischer Daten
- Suche nach Korrelationen
- Experimentieren mit Kombinationen von Merkmalen
- Bereite die Daten für Machine-Learning- Algorithmen vor
- Aufbereiten der Daten
- Bearbeiten von Text und kategorischen Merkmalen
- Skalieren und Transformieren von Merkmalen
- Eigene Transformer
- Pipelines zur Transformation
- Wähle ein Modell aus und trainiere es
- Trainieren und auswerten auf dem Trainingsdatensatz
- Bessere Auswertung mittels Kreuzvalidierung
- Optimiere das Modell
- Gittersuche
- Zufällige Suche
- Ensemble-Methoden
- Analysiere die besten Modelle und ihre Fehler
- Evaluiere das System auf dem Testdatensatz
- Nimm das System in Betrieb, überwache und warte es
- Probieren Sie es aus!
- Übungen
- Kapitel 3: Klassifikation
- MNIST
- Trainieren eines binären Klassifikators
- Qualitätsmaße
- Messen der Genauigkeit über Kreuzvalidierung
- Konfusionsmatrix
- Relevanz und Sensitivität
- Die Wechselbeziehung zwischen Relevanz und Sensitivität
- Die ROC-Kurve
- Klassifikatoren mit mehreren Kategorien
- Fehleranalyse
- Klassifikation mit mehreren Labels
- Klassifikation mit mehreren Ausgaben
- Übungen
- Kapitel 4: Trainieren von Modellen
- Lineare Regression
- Die Normalengleichung
- Komplexität der Berechnung
- Das Gradientenverfahren
- Batch-Gradientenverfahren
- Stochastisches Gradientenverfahren
- Mini-Batch-Gradientenverfahren
- Polynomielle Regression
- Lernkurven
- Regularisierte lineare Modelle
- Ridge-Regression
- Lasso-Regression
- Elastic-Net-Regression
- Early Stopping
- Logistische Regression
- Abschätzen von Wahrscheinlichkeiten
- Trainieren und Kostenfunktion
- Entscheidungsgrenzen
- Softmax-Regression
- Übungen
- Kapitel 5: Support Vector Machines
- Lineare Klassifikation mit SVMs
- Soft-Margin-Klassifikation
- Nichtlineare SVM-Klassifikation
- Polynomieller Kernel
- Ähnlichkeitsbasierte Merkmale
- Der gaußsche RBF-Kernel
- SVM-Klassen und Komplexität der Berechnung
- SVM-Regression
- Hinter den Kulissen linearer SVM-Klassifikatoren
- Das duale Problem
- Kernel-SVM
- Übungen
- Kapitel 6: Entscheidungsbäume
- Trainieren und Visualisieren eines Entscheidungsbaums
- Vorhersagen treffen
- Schätzen von Wahrscheinlichkeiten für Kategorien
- Der CART-Trainingsalgorithmus
- Komplexität der Berechnung
- Gini-Unreinheit oder Entropie?
- Hyperparameter zur Regularisierung
- Regression
- Empfindlichkeit für die Ausrichtung der Achsen
- Entscheidungsbäume haben eine größere Varianz
- Übungen
- Kapitel 7: Ensemble Learning und Random Forests
- Abstimmverfahren unter Klassifikatoren
- Bagging und Pasting
- Bagging und Pasting in Scikit-Learn
- Out-of-Bag-Evaluation
- Zufällige Patches und Subräume
- Random Forests
- Extra-Trees
- Wichtigkeit von Merkmalen
- Boosting
- AdaBoost
- Gradient Boosting
- Histogrammbasiertes Gradient Boosting
- Stacking
- Übungen
- Kapitel 8: Dimensionsreduktion
- Der Fluch der Dimensionalität
- Die wichtigsten Ansätze zur Dimensionsreduktion
- Projektion
- Manifold Learning
- Hauptkomponentenzerlegung (PCA)
- Erhalten der Varianz
- Hauptkomponenten
- Die Projektion auf d Dimensionen
- Verwenden von Scikit-Learn
- Der Anteil erklärter Varianz
- Auswählen der richtigen Anzahl Dimensionen
- PCA als Komprimierungsverfahren
- Randomisierte PCA
- Inkrementelle PCA
- Zufallsprojektion
- LLE
- Weitere Techniken zur Dimensionsreduktion
- Übungen
- Kapitel 9: Techniken des unüberwachten Lernens
- Clustering-Algorithmen: k-Means und DBSCAN
- k-Means
- Grenzen von k-Means
- Bildsegmentierung per Clustering
- Clustering für teilüberwachtes Lernen einsetzen
- DBSCAN
- Andere Clustering-Algorithmen
- Gaußsche Mischverteilung
- Anomalieerkennung mit gaußschen Mischverteilungsmodellen
- Die Anzahl an Clustern auswählen
- Bayessche gaußsche Mischverteilungsmodelle
- Andere Algorithmen zur Anomalie- und Novelty-Erkennung
- Übungen
- Kapitel 10: Einführung in künstliche neuronale Netze mit Keras
- Von biologischen zu künstlichen Neuronen
- Biologische Neuronen
- Logische Berechnungen mit Neuronen
- Das Perzeptron
- Mehrschichtiges Perzeptron und Backpropagation
- Regressions-MLPs
- Klassifikations-MLPs
- MLPs mit Keras implementieren
- Einen Bildklassifikator mit der Sequential API erstellen
- Ein Regressions-MLP mit der Sequential API erstellen
- Komplexe Modelle mit der Functional API bauen
- Dynamische Modelle mit der Subclassing API bauen
- Ein Modell sichern und wiederherstellen
- Callbacks
- TensorBoard zur Visualisierung verwenden
- Feinabstimmung der Hyperparameter eines neuronalen Netzes
- Anzahl verborgener Schichten
- Anzahl Neuronen pro verborgene Schicht
- Lernrate, Batchgröße und andere Hyperparameter
- Übungen
- Kapitel 11: Trainieren von Deep-Learning-Netzen
- Das Problem schwindender/explodierender Gradienten
- Initialisierung nach Glorot und He
- Bessere Aktivierungsfunktionen
- Batchnormalisierung
- Gradient Clipping
- Wiederverwenden vortrainierter Schichten
- Transfer Learning mit Keras
- Unüberwachtes Vortrainieren
- Vortrainieren anhand einer Hilfsaufgabe
- Schnellere Optimierer
- Momentum
- Beschleunigter Gradient nach Nesterov
- AdaGrad
- RMSProp
- Adam
- Scheduling der Lernrate
- Vermeiden von Overfitting durch Regularisierung
- l1- und l2-Regularisierung
- Drop-out
- Monte-Carlo-(MC-)Drop-out
- Max-Norm-Regularisierung
- Zusammenfassung und praktische Tipps
- Übungen
- Kapitel 12: Eigene Modelle und Training mit TensorFlow
- Ein kurzer Überblick über TensorFlow
- TensorFlow wie NumPy einsetzen
- Tensoren und Operationen
- Tensoren und NumPy
- Typumwandlung
- Variablen
- Andere Datenstrukturen
- Modelle und Trainingsalgorithmen anpassen
- Eigene Verlustfunktion
- Modelle mit eigenen Komponenten sichern und laden
- Eigene Aktivierungsfunktionen, Initialisierer, Regularisierer und Constraints
- Eigene Metriken
- Eigene Schichten
- Eigene Modelle
- Verlustfunktionen und Metriken auf Modellinterna basieren lassen
- Gradienten per Autodiff berechnen
- Eigene Trainingsschleifen
- Funktionen und Graphen in TensorFlow
- AutoGraph und Tracing
- Regeln für TF Functions
- Übungen
- Kapitel 13: Daten mit TensorFlow laden und vorverarbeiten
- Die tf.data-API
- Transformationen verketten
- Daten durchmischen
- Daten vorverarbeiten
- Alles zusammenbringen
- Prefetching
- Datasets mit tf.keras verwenden
- Das TFRecord-Format
- Komprimierte TFRecord-Dateien
- Eine kurze Einführung in Protocol Buffer
- TensorFlow-Protobufs
- Examples laden und parsen
- Listen von Listen mit dem SequenceExample-Protobuf verarbeiten
- Vorverarbeitungsschichten von Keras
- Die Normalization-Schicht
- Die Discretization-Schicht
- Die CategoryEncoding-Schicht
- Die StringLookup-Schicht
- Die Hashing-Schicht
- Kategorische Merkmale mit Embeddings codieren
- Vorverarbeitung von Text
- Vortrainierte Sprachmodellkomponenten verwenden
- Vorverarbeitungsschichten für Bilder
- Das TensorFlow-Datasets-Projekt
- Übungen
- Kapitel 14: Deep Computer Vision mit Convolutional Neural Networks
- Der Aufbau des visuellen Cortex
- Convolutional Layers
- Filter
- Stapeln mehrerer Feature Maps
- Convolutional Layer mit Keras implementieren
- Speicherbedarf
- Pooling Layers
- Pooling Layer mit Keras implementieren
- Architekturen von CNNs
- LeNet-5
- AlexNet
- GoogLeNet
- VGGNet
- ResNet
- Xception
- SENet
- Weitere erwähnenswerte Architektur
- Die richtige CNN-Architektur wählen
- Ein ResNet-34-CNN mit Keras implementieren
- Vortrainierte Modelle aus Keras einsetzen
- Vortrainierte Modelle für das Transfer Learning
- Klassifikation und Lokalisierung
- Objekterkennung
- Fully Convolutional Networks
- You Only Look Once
- Objektverfolgung
- Semantische Segmentierung
- Übungen
- Kapitel 15: Verarbeiten von Sequenzen mit RNNs und CNNs
- Rekurrente Neuronen und Schichten
- Gedächtniszellen
- Ein- und Ausgabesequenzen
- RNNs trainieren
- Eine Zeitserie vorhersagen
- Die ARMA-Modellfamilie
- Die Daten für Machine-Learning-Modelle vorbereiten
- Vorhersage mit einem linearen Modell
- Vorhersage mit einem einfachen RNN
- Vorhersage mit einem Deep RNN
- Multivariate Zeitserien vorhersagen
- Mehrere Zeitschritte vorhersagen
- Mit einem Sequence-to-Sequence-Modell vorhersagen
- Arbeit mit langen Sequenzen
- Gegen instabile Gradienten kämpfen
- Das Problem des Kurzzeitgedächtnisses
- Übungen
- Kapitel 16: Verarbeitung natürlicher Sprache mit RNNs und Attention
- Shakespearesche Texte mit einem Character-RNN erzeugen
- Den Trainingsdatensatz erstellen
- Das Char-RNN-Modell bauen und trainieren
- Einen gefälschten Shakespeare-Text erzeugen
- Zustandsbehaftetes RNN
- Sentimentanalyse
- Maskieren
- Vortrainierte Embeddings wiederverwenden
- Ein Encoder-Decoder-Netzwerk für die neuronale maschinelle Übersetzung
- Bidirektionale RNNs
- Beam Search
- Attention-Mechanismen
- Attention Is All You Need: die Transformer-Architektur
- Eine Lawine an Transformer-Modellen
- Vision Transformers
- Die Transformers-Bibliothek von Hugging Face
- Übungen
- Kapitel 17: Autoencoder, GANs und Diffusionsmodelle
- Effiziente Repräsentation von Daten
- Hauptkomponentenzerlegung mit einem untervollständigen linearen Autoencoder
- Stacked Autoencoder
- Einen Stacked Autoencoder mit Keras implementieren
- Visualisieren der Rekonstruktionen
- Den Fashion-MNIST-Datensatz visualisieren
- Unüberwachtes Vortrainieren mit Stacked Autoencoder
- Kopplung von Gewichten
- Trainieren mehrerer Autoencoder nacheinander
- Convolutional Autoencoder
- Denoising Autoencoders
- Sparse Autoencoders
- Variational Autoencoders
- Fashion-MNIST-Bilder erzeugen
- Generative Adversarial Networks
- Schwierigkeiten beim Trainieren von GANs
- Deep Convolutional GANs
- Progressive wachsende GANs
- StyleGANs
- Diffusionsmodelle
- Übungen
- Kapitel 18: Reinforcement Learning
- Lernen zum Optimieren von Belohnungen
- Suche nach Policies
- Einführung in OpenAI Gym
- Neuronale Netze als Policies
- Auswerten von Aktionen: das Credit-Assignment- Problem
- Policy-Gradienten
- Markov-Entscheidungsprozesse
- Temporal Difference Learning
- Q-Learning
- Erkundungspolicies
- Approximatives Q-Learning und Deep-Q-Learning
- Deep-Q-Learning implementieren
- Deep-Q-Learning-Varianten
- Feste Q-Wert-Ziele
- Double DQN
- Priorisiertes Experience Replay
- Dueling DQN
- Überblick über beliebte RL-Algorithmen
- Übungen
- Kapitel 19: TensorFlow-Modelle skalierbar trainieren und deployen
- Ein TensorFlow-Modell ausführen
- TensorFlow Serving verwenden
- Einen Vorhersageservice auf Vertex AI erstellen
- Batch-Vorhersagejobs auf Vertex AI ausführen
- Ein Modell auf ein Mobile oder Embedded Device deployen
- Ein Modell auf einer Webseite laufen lassen
- Mit GPUs die Berechnungen beschleunigen
- Sich eine eigene GPU zulegen
- Das GPU-RAM verwalten
- Operationen und Variablen auf Devices verteilen
- Paralleles Ausführen auf mehreren Devices
- Modelle auf mehreren Devices trainieren
- Parallelisierte Modelle
- Parallelisierte Daten
- Mit der Distribution Strategies API auf mehreren Devices trainieren
- Ein Modell in einem TensorFlow-Cluster trainieren
- Große Trainingsjobs auf Vertex AI ausführen
- Hyperparameter auf Vertex AI optimieren
- Hyperparameter mit Keras Tuner auf Vertex AI optimieren
- Übungen
- Vielen Dank!
- Anhang A: Checkliste für Machine- Learning-Projekte
- Anhang B: Autodiff
- Anhang C: Spezielle Datenstrukturen
- Anhang D: TensorFlow-Graphen
- Index
Systemvoraussetzungen
Dateiformat: PDF
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)
Systemvoraussetzungen:
- Computer (Windows; MacOS X; Linux): Verwenden Sie zum Lesen die kostenlose Software Adobe Reader, Adobe Digital Editions oder einen anderen PDF-Viewer Ihrer Wahl (siehe E-Book Hilfe).
- Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions oder die App PocketBook (siehe E-Book Hilfe).
- E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m.
Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist. Mit Wasserzeichen-DRM wird hier ein „weicher” Kopierschutz verwendet. Daher ist technisch zwar alles möglich – sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.
Weitere Informationen finden Sie in unserer E-Book Hilfe.