Praxiseinstieg Machine Learning mit Scikit-Learn und TensorFlow

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

  1. Cover
  2. Titel
  3. Impressum
  4. Inhalt
  5. Vorwort
  6. Teil I Die Grundlagen des Machine Learning
    1. 1 Die Machine Learning-Umgebung
    2. Was ist Machine Learning?
    3. Warum wird Machine Learning verwendet?
    4. Arten von Machine-Learning-Systemen
    5. Überwachtes/unüberwachtes Lernen
    6. Batch- und Online-Learning
    7. Instanzbasiertes versus modellbasiertes Lernen
    8. Die wichtigsten Herausforderungen beim Machine Learning
    9. Unzureichende Menge an Trainingsdaten
    10. Nicht repräsentative Trainingsdaten
    11. Minderwertige Daten
    12. Irrelevante Merkmale
    13. Overfitting der Trainingsdaten
    14. Underfitting der Trainingsdaten
    15. Zusammenfassung
    16. Testen und Validieren
    17. Übungen
    18. 2 Ein Machine-Learning-Projekt von A bis Z
    19. Der Umgang mit realen Daten
    20. Betrachte das Gesamtbild
    21. Die Aufgabe abstecken
    22. Wähle ein Qualitätsmaß aus
    23. Überprüfe die Annahmen
    24. Beschaffe die Daten
    25. Erstelle eine Arbeitsumgebung
    26. Die Daten herunterladen
    27. Wirf einen kurzen Blick auf die Datenstruktur
    28. Erstelle einen Testdatensatz
    29. Erkunde und visualisiere die Daten, um Erkenntnisse zu gewinnen
    30. Visualisieren geografischer Daten
    31. Suche nach Korrelationen
    32. Experimentieren mit Kombinationen von Merkmalen
    33. Bereite die Daten für Machine-Learning-Algorithmen vor
    34. Aufbereiten der Daten
    35. Bearbeiten von Text und kategorischen Merkmalen
    36. Eigene Transformer
    37. Skalieren von Merkmalen
    38. Pipelines zur Transformation
    39. Wähle ein Modell aus und trainiere es
    40. Trainieren und Auswerten auf dem Trainingsdatensatz
    41. Bessere Auswertung mittels Kreuzvalidierung
    42. Optimiere das Modell
    43. Gittersuche
    44. Zufällige Suche
    45. Ensemble-Methoden
    46. Analysiere die besten Modelle und ihre Fehler
    47. Evaluiere das System auf dem Testdatensatz
    48. Nimm das System in Betrieb, überwache und warte es
    49. Probieren Sie es aus!
    50. Übungen
    51. 3 Klassifikation
    52. MNIST
    53. Trainieren eines binären Klassifikators
    54. Qualitätsmaße
    55. Messen der Genauigkeit über Kreuzvalidierung
    56. Konfusionsmatrix
    57. Relevanz und Sensitivität
    58. Die Wechselbeziehung zwischen Relevanz und Sensitivität
    59. Die ROC-Kurve
    60. Klassifikatoren mit mehreren Kategorien
    61. Fehleranalyse
    62. Klassifikation mit mehreren Labels
    63. Klassifikation mit mehreren Ausgaben
    64. Übungsaufgaben
    65. 4 Trainieren von Modellen
    66. Lineare Regression
    67. Die Normalengleichung
    68. Komplexität der Berechnung
    69. Das Gradientenverfahren
    70. Batch-Gradientenverfahren
    71. Stochastisches Gradientenverfahren
    72. Mini-Batch-Gradientenverfahren
    73. Polynomielle Regression
    74. Lernkurven
    75. Regularisierte lineare Modelle
    76. Ridge-Regression
    77. Lasso-Regression
    78. Elastic Net
    79. Early Stopping
    80. Logistische Regression
    81. Abschätzen von Wahrscheinlichkeiten
    82. Trainieren und Kostenfunktion
    83. Entscheidungsgrenzen
    84. Softmax-Regression
    85. Übungen
    86. 5 Support Vector Machines
    87. Lineare Klassifikation mit SVMs
    88. Soft-Margin-Klassifikation
    89. Nichtlineare SVM-Klassifikation
    90. Polynomieller Kernel
    91. Hinzufügen von ähnlichkeitsbasierten Merkmalen
    92. Der Gaußsche RBF-Kernel
    93. Komplexität der Berechnung
    94. SVM-Regression
    95. Hinter den Kulissen
    96. Entscheidungsfunktion und Vorhersagen
    97. Zielfunktionen beim Trainieren
    98. Quadratische Programme
    99. Das duale Problem
    100. Kernel-SVM
    101. Online-SVMs
    102. Übungen
    103. 6 Entscheidungsbäume
    104. Trainieren und Visualisieren eines Entscheidungsbaums
    105. Vorhersagen treffen
    106. Schätzen von Wahrscheinlichkeiten für Kategorien
    107. Der CART-Trainings-Algorithmus
    108. Komplexität der Berechnung
    109. Gini-Unreinheit oder Entropie?
    110. Hyperparameter zur Regularisierung
    111. Regression
    112. Instabilität
    113. Übungen
    114. 7 Ensemble Learning und Random Forests
    115. Abstimmverfahren unter Klassifikatoren
    116. Bagging und Pasting
    117. Bagging und Pasting in Scikit-Learn
    118. Out-of-Bag-Evaluation
    119. Zufällige Patches und Subräume
    120. Random Forests
    121. Extra-Trees
    122. Wichtigkeit von Merkmalen
    123. Boosting
    124. AdaBoost
    125. Gradient Boosting
    126. Stacking
    127. Übungen
    128. 8 Dimensionsreduktion
    129. Der Fluch der Dimensionalität
    130. Die wichtigsten Ansätze zur Dimensionsreduktion
    131. Projektion
    132. Manifold Learning
    133. Hauptkomponentenzerlegung (PCA)
    134. Erhalten der Varianz
    135. Hauptkomponenten
    136. Die Projektion auf d Dimensionen
    137. Verwenden von Scikit-Learn
    138. Der Anteil erklärter Varianz
    139. Auswählen der richtigen Anzahl Dimensionen
    140. PCA als Komprimierungsverfahren
    141. Inkrementelle PCA
    142. Randomisierte PCA
    143. Kernel PCA
    144. Auswahl eines Kernels und Optimierung der Hyperparameter
    145. LLE
    146. Weitere Techniken zur Dimensionsreduktion
    147. Übungen
  7. Teil II Neuronale Netze und Deep Learning
    1. 9 Einsatzbereit mit TensorFlow
    2. Installation
    3. Erstellen und Ausführen eines ersten Graphen
    4. Graphen verwalten
    5. Lebenszyklus des Werts von Knoten
    6. Lineare Regression mit TensorFlow
    7. Implementieren des Gradientenverfahrens
    8. Manuelle Berechnung der Gradienten
    9. Verwenden von Autodiff
    10. Verwenden von Optimierungsverfahren
    11. Daten in den Trainingsalgorithmus einspeisen
    12. Modelle speichern und wiederherstellen
    13. Graphen und Lernkurven mit TensorBoard visualisieren
    14. Name Scopes
    15. Modularität
    16. Teilen von Variablen
    17. Übungen
    18. 10 Einführung in künstliche neuronale Netze
    19. Von biologischen zu künstlichen Neuronen
    20. Biologische Neuronen
    21. Logische Berechnungen mit Neuronen
    22. Das Perzeptron
    23. Mehrschichtiges Perzeptron und Backpropagation
    24. Ein MLP mit der TensorFlow-API trainieren
    25. Ein DNN direkt mit TensorFlow trainieren
    26. Konstruktionsphase
    27. Ausführungsphase
    28. Verwenden des neuronalen Netzes
    29. Feinabstimmung der Hyperparameter eines neuronalen Netzes
    30. Anzahl verborgener Schichten
    31. Anzahl Neuronen pro verborgene Schicht
    32. Aktivierungsfunktionen
    33. Übungen
    34. 11 Trainieren von Deep-Learning-Netzen
    35. Das Problem schwindender/explodierender Gradienten
    36. Initialisierung nach Xavier und He
    37. Nicht sättigende Aktivierungsfunktionen
    38. Batch-Normalisierung
    39. Gradient Clipping
    40. Wiederverwenden vortrainierter Schichten
    41. Wiederverwenden eines TensorFlow-Modells
    42. Modelle aus anderen Frameworks wiederverwenden
    43. Einfrieren der unteren Schichten
    44. Caching der eingefrorenen Schichten
    45. Verändern, Auslassen oder Ersetzen der oberen Schichten
    46. Modell-Zoos
    47. Unüberwachtes Vortrainieren
    48. Vortrainieren anhand einer Hilfsaufgabe
    49. Schnellere Optimierer
    50. Momentum Optimization
    51. Beschleunigter Gradient nach Nesterov
    52. AdaGrad
    53. RMSProp
    54. Adam-Optimierung
    55. Scheduling der Lernrate
    56. Vermeiden von Overfitting durch Regularisierung
    57. Early Stopping
    58. ℓ1- und ℓ2-Regularisierung
    59. Drop-out
    60. Max-Norm-Regularisierung
    61. Data Augmentation
    62. Praktische Tipps
    63. Übungen
    64. 12 TensorFlow über mehrere Geräte und Server verteilen
    65. Mehrere Recheneinheiten auf einem Computer
    66. Installation
    67. Das RAM der GPU verwalten
    68. Operationen auf Recheneinheiten platzieren
    69. Paralleles Ausführen
    70. Control Dependencies
    71. Mehrere Recheneinheiten auf mehreren Servern
    72. Öffnen einer Session
    73. Master- und Worker-Dienste
    74. Operationen auf Tasks pinnen
    75. Sharding von Variablen über mehrere Parameterserver
    76. Zustände mit Resource Containers zwischen Sessions teilen
    77. Asynchrone Kommunikation mit TensorFlow-Queues
    78. Daten direkt aus dem Graphen laden
    79. Parallelisieren neuronaler Netze auf einem TensorFlow-Cluster
    80. Ein neuronales Netz pro Recheneinheit
    81. In-Graph- und Between-Graph-Replikation
    82. Parallelisierte Modelle
    83. Parallelisierte Daten
    84. Übungen
    85. 13 Convolutional Neural Networks
    86. Der Aufbau des visuellen Cortex
    87. Convolutional Layer
    88. Filter
    89. Stapeln mehrerer Feature Maps
    90. Implementierung in TensorFlow
    91. Speicherbedarf
    92. Pooling Layer
    93. Architekturen von CNNs
    94. LeNet-5
    95. AlexNet
    96. GoogLeNet
    97. ResNet
    98. Übungen
    99. 14 Rekurrente neuronale Netze
    100. Rekurrente Neuronen
    101. Gedächtniszellen
    102. Ein- und Ausgabesequenzen
    103. Einfache RNNs in TensorFlow
    104. Statisches Aufrollen entlang der Zeitachse
    105. Dynamisches Aufrollen entlang der Zeitachse
    106. Eingabesequenzen unterschiedlicher Länge
    107. Ausgabesequenzen unterschiedlicher Länge
    108. Trainieren von RNNs
    109. Trainieren eines Sequenz-Klassifikators
    110. Trainieren der Vorhersage von Zeitreihen
    111. Kreative RNNs
    112. Deep-RNNs
    113. Ein Deep-RNN über mehrere GPUs verteilen
    114. Drop-out verwenden
    115. Die Schwierigkeit, über viele Schritte zu trainieren
    116. LSTM-Zellen
    117. Peephole-Verbindungen
    118. GRU-Zellen
    119. Natürliche Sprachverarbeitung
    120. Word Embeddings
    121. Ein Encoder-Decoder-Netz zur maschinellen Übersetzung
    122. Übungen
    123. 15 Autoencoder
    124. Effiziente Repräsentation von Daten
    125. Hauptkomponentenzerlegung mit einem unvollständigen linearen Autoencoder
    126. Stacked Autoencoder
    127. Implementierung mit TensorFlow
    128. Kopplung von Gewichten
    129. Trainieren mehrerer Autoencoder nacheinander
    130. Visualisieren der Rekonstruktionen
    131. Visualisieren von Merkmalen
    132. Unüberwachtes Vortrainieren mit Stacked Autoencoder
    133. Denoising Autoencoder
    134. Implementierung mit TensorFlow
    135. Sparse Autoencoder
    136. Implementierung in TensorFlow
    137. Variational Autoencoder
    138. Generieren von Ziffern
    139. Weitere Autoencoder
    140. Übungen
    141. 16 Reinforcement Learning
    142. Lernen zum Optimieren von Belohnungen
    143. Suche nach Policies
    144. Einführung in OpenAI Gym
    145. Neuronale Netze als Policies
    146. Auswerten von Aktionen: Das Credit-Assignment-Problem
    147. Policy-Gradienten
    148. Markov-Entscheidungsprozesse
    149. Temporal Difference Learning und Q-Learning
    150. Erkundungspolicies
    151. Approximatives Q-Learning
    152. Ms. Pac-Man mit dem DQN-Algorithmus spielen lernen
    153. Übungen
    154. Vielen Dank!
  8. A Lösungen zu den Übungsaufgaben
  9. B Checkliste für Machine-Learning-Projekte
  10. C Das duale Problem bei SVMs
  11. D Autodiff
  12. E Weitere verbreitete Architekturen neuronaler Netze
  13. Index
  14. Fußnoten

Product information

  • Title: Praxiseinstieg Machine Learning mit Scikit-Learn und TensorFlow
  • Author(s): Aurélien Géron
  • Release date: January 2018
  • Publisher(s): dpunkt
  • ISBN: 9783960090618