Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Titel
Impressum
Inhalt
Vorwort
Teil I Die Grundlagen des Machine Learning
1 Die Machine-Learning-Umgebung
Was ist Machine Learning?
Warum wird Machine Learning verwendet?
Anwendungsbeispiel
Unterschiedliche Machine-Learning-Systeme
Überwachtes/unüberwachtes Lernen
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
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
Erstelle eine Arbeitsumgebung
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
Eigene Transformer
Skalieren von Merkmalen
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
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
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
Early Stopping
Logistische Regression
Abschätzen von Wahrscheinlichkeiten
Trainieren und Kostenfunktion
Entscheidungsgrenzen
Softmax-Regression
Übungen
5 Support Vector Machines
Lineare Klassifikation mit SVMs
Soft-Margin-Klassifikation
Nichtlineare SVM-Klassifikation
Polynomieller Kernel
Ähnlichkeitsbasierte Merkmale
Der gaußsche RBF-Kernel
Komplexität der Berechnung
SVM-Regression
Hinter den Kulissen
Entscheidungsfunktion und Vorhersagen
Zielfunktionen beim Trainieren
Quadratische Programme
Das duale Problem
Kernel-SVM
Online-SVMs
Übungen
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
Instabilität
Übungen
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
Stacking
Übungen
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
Kernel-PCA
Auswahl eines Kernels und Optimierung der Hyperparameter
LLE
Weitere Techniken zur Dimensionsreduktion
Übungen
9 Techniken des unüberwachten Lernens
Clustering
K-Means
Grenzen von K-Means
Bildsegmentierung per Clustering
Vorverarbeitung 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
Teil II Neuronale Netze und Deep Learning
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
TensorFlow 2 installieren
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
11 Trainieren von Deep-Learning-Netzen
Das Problem schwindender/explodierender Gradienten
Initialisierung nach Glorot und He
Nicht sättigende Aktivierungsfunktionen
Batchnormalisierung
Gradient Clipping
Wiederverwenden vortrainierter Schichten
Transfer Learning mit Keras
Unüberwachtes Vortrainieren
Vortrainieren anhand einer Hilfsaufgabe
Schnellere Optimierer
Momentum Optimization
Beschleunigter Gradient nach Nesterov
AdaGrad
RMSProp
Adam-Optimierung
Scheduling der Lernrate
Vermeiden von Overfitting durch Regularisierung
ℓ1- und ℓ2-Regularisierung
Drop-out
Monte-Carlo-(MC-)-Drop-out
Max-Norm-Regularisierung
Zusammenfassung und praktische Tipps
Übungen
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 Modell-Interna basieren lassen
Gradienten per Autodiff berechnen
Eigene Trainingsschleifen
Funktionen und Graphen in TensorFlow
AutoGraph und Tracing
Regeln für TF Functions
Übungen
13 Daten mit TensorFlow laden und vorverarbeiten
Die 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
Die Eingabemerkmale vorverarbeiten
Kategorische Merkmale mit One-Hot-Vektoren codieren
Kategorische Merkmale mit Embeddings codieren
Vorverarbeitungsschichten von Keras
TF Transform
Das TensorFlow-Datasets-(TFDS-)Projekt
Übungen
14 Deep Computer Vision mit Convolutional Neural Networks
Der Aufbau des visuellen Cortex
Convolutional Layers
Filter
Stapeln mehrerer Feature Maps
Implementierung in TensorFlow
Speicherbedarf
Pooling Layers
Implementierung in TensorFlow
Architekturen von CNNs
LeNet-5
AlexNet
GoogLeNet
VGGNet
ResNet
Xception
SENet
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 (YOLO)
Semantische Segmentierung
Übungen
15 Verarbeiten von Sequenzen mit RNNs und CNNs
Rekurrente Neuronen und Schichten
Gedächtniszellen
Ein- und Ausgabesequenzen
RNNs trainieren
Eine Zeitserie vorhersagen
Grundlegende Metriken
Ein einfaches RNN implementieren
Deep RNNs
Mehrere Zeitschritte vorhersagen
Arbeit mit langen Sequenzen
Gegen instabile Gradienten kämpfen
Das Problem des Kurzzeitgedächtnisses
Übungen
16 Natürliche Sprachverarbeitung mit RNNs und Attention
Shakespearesche Texte mit einem Character-RNN erzeugen
Den Trainingsdatensatz erstellen
Wie ein sequenzieller Datensatz aufgeteilt wird
Den sequenziellen Datensatz in mehrere Fenster unterteilen
Das Char-RNN-Modell bauen und trainieren
Das Char-RNN-Modell verwenden
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
Visuelle Attention
Attention Is All You Need: Die Transformer-Architektur
Aktuelle Entwicklungen bei Sprachmodellen
Übungen
17 Representation Learning und Generative Learning mit Autoencodern und GANs
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
Rekurrente Autoencoder
Denoising Autoencoder
Sparse Autoencoder
Variational Autoencoder
Fashion-MNIST-Bilder erzeugen
Generative Adversarial Networks
Schwierigkeiten beim Trainieren von GANs
Deep Convolutional GANs
Progressive wachsende GANs
StyleGANs
Übungen
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
Die TF-Agents-Bibliothek
TF-Agents installieren
TF-Agents-Umgebungen
Umgebungsspezifikationen
Umgebungswrapper und Atari-Vorverarbeitung
Trainingsarchitektur
Deep-Q-Netz erstellen
DQN-Agenten erstellen
Replay Buffer und Beobachter erstellen
Trainingsmetriken erstellen
Collect-Fahrer erstellen
Dataset erstellen
Trainingsschleife erstellen
Überblick über beliebte RL-Algorithmen
Übungen
19 TensorFlow-Modelle skalierbar trainieren und deployen
Ein TensorFlow-Modell ausführen
TensorFlow Serving verwenden
Einen Vorhersageservice auf der GCP AI Platform erstellen
Den Vorhersageservice verwenden
Ein Modell auf ein Mobile oder Embedded Device deployen
Mit GPUs die Berechnungen beschleunigen
Sich eine eigene GPU zulegen
Eine mit GPU ausgestattete virtuelle Maschine einsetzen
Colaboratory
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 der Google Cloud AI Platform ausführen
Black Box Hyperparameter Tuning auf der AI Platform
Übungen
Vielen Dank!
A Lösungen zu den Übungsaufgaben
B Checkliste für Machine-Learning-Projekte
C Das duale Problem bei SVMs
D Autodiff
E Weitere verbreitete Architekturen neuronaler Netze
F Spezielle Datenstrukturen
G TensorFlow-Graphen
Fußnoten
Index
Über den Autor
Über die Übersetzer
Kolophon
← Prev
Back
Next →
← Prev
Back
Next →