Читать книгу Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow - Aurélien Géron - Страница 5

Inhalt

Оглавление

Vorwort

Teil IDie Grundlagen des Machine Learning

1Die 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

2Ein 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

3Klassifikation

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

4Trainieren 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

5Support 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

6Entscheidungsbä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

7Ensemble 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

8Dimensionsreduktion

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

9Techniken 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 IINeuronale Netze und Deep Learning

10Einfü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

11Trainieren 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

12Eigene 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

13Daten 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

14Deep 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

15Verarbeiten 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

16Natü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

17Representation 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

18Reinforcement 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

19TensorFlow-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!

ALösungen zu den Übungsaufgaben

BCheckliste für Machine-Learning-Projekte

CDas duale Problem bei SVMs

DAutodiff

EWeitere verbreitete Architekturen neuronaler Netze

FSpezielle Datenstrukturen

GTensorFlow-Graphen

Index

Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow

Подняться наверх