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 – 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
- 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?
- Arten von Machine-Learning-Systemen
- Ü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
- Ü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
- Übungsaufgaben
- 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
- Hinzufügen von ähnlichkeitsbasierten Merkmalen
- 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-Trainings-Algorithmus
- 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
- Inkrementelle PCA
- Randomisierte PCA
- Kernel PCA
- Auswahl eines Kernels und Optimierung der Hyperparameter
- LLE
- Weitere Techniken zur Dimensionsreduktion
- Übungen
-
Teil II Neuronale Netze und Deep Learning
- 9 Einsatzbereit mit TensorFlow
- Installation
- Erstellen und Ausführen eines ersten Graphen
- Graphen verwalten
- Lebenszyklus des Werts von Knoten
- Lineare Regression mit TensorFlow
- Implementieren des Gradientenverfahrens
- Manuelle Berechnung der Gradienten
- Verwenden von Autodiff
- Verwenden von Optimierungsverfahren
- Daten in den Trainingsalgorithmus einspeisen
- Modelle speichern und wiederherstellen
- Graphen und Lernkurven mit TensorBoard visualisieren
- Name Scopes
- Modularität
- Teilen von Variablen
- Übungen
- 10 Einführung in künstliche neuronale Netze
- Von biologischen zu künstlichen Neuronen
- Biologische Neuronen
- Logische Berechnungen mit Neuronen
- Das Perzeptron
- Mehrschichtiges Perzeptron und Backpropagation
- Ein MLP mit der TensorFlow-API trainieren
- Ein DNN direkt mit TensorFlow trainieren
- Konstruktionsphase
- Ausführungsphase
- Verwenden des neuronalen Netzes
- Feinabstimmung der Hyperparameter eines neuronalen Netzes
- Anzahl verborgener Schichten
- Anzahl Neuronen pro verborgene Schicht
- Aktivierungsfunktionen
- Übungen
- 11 Trainieren von Deep-Learning-Netzen
- Das Problem schwindender/explodierender Gradienten
- Initialisierung nach Xavier und He
- Nicht sättigende Aktivierungsfunktionen
- Batch-Normalisierung
- Gradient Clipping
- Wiederverwenden vortrainierter Schichten
- Wiederverwenden eines TensorFlow-Modells
- Modelle aus anderen Frameworks wiederverwenden
- Einfrieren der unteren Schichten
- Caching der eingefrorenen Schichten
- Verändern, Auslassen oder Ersetzen der oberen Schichten
- Modell-Zoos
- 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
- Early Stopping
- ℓ1- und ℓ2-Regularisierung
- Drop-out
- Max-Norm-Regularisierung
- Data Augmentation
- Praktische Tipps
- Übungen
- 12 TensorFlow über mehrere Geräte und Server verteilen
- Mehrere Recheneinheiten auf einem Computer
- Installation
- Das RAM der GPU verwalten
- Operationen auf Recheneinheiten platzieren
- Paralleles Ausführen
- Control Dependencies
- Mehrere Recheneinheiten auf mehreren Servern
- Öffnen einer Session
- Master- und Worker-Dienste
- Operationen auf Tasks pinnen
- Sharding von Variablen über mehrere Parameterserver
- Zustände mit Resource Containers zwischen Sessions teilen
- Asynchrone Kommunikation mit TensorFlow-Queues
- Daten direkt aus dem Graphen laden
- Parallelisieren neuronaler Netze auf einem TensorFlow-Cluster
- Ein neuronales Netz pro Recheneinheit
- In-Graph- und Between-Graph-Replikation
- Parallelisierte Modelle
- Parallelisierte Daten
- Übungen
- 13 Convolutional Neural Networks
- Der Aufbau des visuellen Cortex
- Convolutional Layer
- Filter
- Stapeln mehrerer Feature Maps
- Implementierung in TensorFlow
- Speicherbedarf
- Pooling Layer
- Architekturen von CNNs
- LeNet-5
- AlexNet
- GoogLeNet
- ResNet
- Übungen
- 14 Rekurrente neuronale Netze
- Rekurrente Neuronen
- Gedächtniszellen
- Ein- und Ausgabesequenzen
- Einfache RNNs in TensorFlow
- Statisches Aufrollen entlang der Zeitachse
- Dynamisches Aufrollen entlang der Zeitachse
- Eingabesequenzen unterschiedlicher Länge
- Ausgabesequenzen unterschiedlicher Länge
- Trainieren von RNNs
- Trainieren eines Sequenz-Klassifikators
- Trainieren der Vorhersage von Zeitreihen
- Kreative RNNs
- Deep-RNNs
- Ein Deep-RNN über mehrere GPUs verteilen
- Drop-out verwenden
- Die Schwierigkeit, über viele Schritte zu trainieren
- LSTM-Zellen
- Peephole-Verbindungen
- GRU-Zellen
- Natürliche Sprachverarbeitung
- Word Embeddings
- Ein Encoder-Decoder-Netz zur maschinellen Übersetzung
- Übungen
- 15 Autoencoder
- Effiziente Repräsentation von Daten
- Hauptkomponentenzerlegung mit einem unvollständigen linearen Autoencoder
- Stacked Autoencoder
- Implementierung mit TensorFlow
- Kopplung von Gewichten
- Trainieren mehrerer Autoencoder nacheinander
- Visualisieren der Rekonstruktionen
- Visualisieren von Merkmalen
- Unüberwachtes Vortrainieren mit Stacked Autoencoder
- Denoising Autoencoder
- Implementierung mit TensorFlow
- Sparse Autoencoder
- Implementierung in TensorFlow
- Variational Autoencoder
- Generieren von Ziffern
- Weitere Autoencoder
- Übungen
- 16 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 und Q-Learning
- Erkundungspolicies
- Approximatives Q-Learning
- Ms. Pac-Man mit dem DQN-Algorithmus spielen lernen
- Ü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
- Index
- Fußnoten
Product information
- Title: Praxiseinstieg Machine Learning mit Scikit-Learn und TensorFlow
- Author(s):
- Release date: January 2018
- Publisher(s): dpunkt
- ISBN: 9783960090618
You might also like
book
Machine Learning mit Python und ScikitLearn und TensorFlow
Datenanalyse mit ausgereiften statistischen Modellen des Machine Learnings Anwendung der wichtigsten Algorithmen und Python-Bibliotheken wie NumPy, …
book
PyTorch für Deep Learning
Mit diesem praxisorientierten Buch meistern Sie die Methoden des Deep Learning, einer Teildisziplin des Machine Learning, …
book
Einführung in Machine Learning mit Python
Machine Learning ist zu einem wichtigen Bestandteil vieler kommerzieller Anwendungen und Forschungsprojekte geworden, von der medizinischen …
book
Neuronale Netze und Deep Learning kapieren -- Der einfache Praxiseinstieg mit Beispielen in Python
Von den Grundlagen Neuronaler Netze über Machine Learning bis hin zu Deep-Learning-Algorithmen Anschauliche Diagramme, Anwendungsbeispiele in …