E-Book, Deutsch, 768 Seiten
Reihe: mitp Professional
Raschka / Mirjalili Machine Learning mit Python und Keras, TensorFlow 2 und Scikit-learn
3. Auflage 2021
ISBN: 978-3-7475-0214-3
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 0 - No protection
Das umfassende Praxis-Handbuch für Data Science, Deep Learning und Predictive Analytics
E-Book, Deutsch, 768 Seiten
Reihe: mitp Professional
ISBN: 978-3-7475-0214-3
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 0 - No protection
Zielgruppe
Alle, die sich mit Data Science und Machine Learning beschäftigen
Autoren/Hrsg.
Weitere Infos & Material
1;Cover;1
2;Unbenannt;5
3;Impressum;6
4;Inhaltsverzeichnis;7
5;Über die Autoren;19
6;Über die Korrektoren;21
7;Über den Fachkorrektor der deutschen Ausgabe;22
8;Einleitung;23
9;Kapitel 1: Wie Computer aus Daten lernen können;31
9.1;1.1 Intelligente Maschinen, die Daten in Wissen verwandeln;31
9.2;1.2 Die drei Arten des Machine Learnings;32
9.2.1;1.2.1 Mit überwachtem Lernen Vorhersagen treffen;33
9.2.2;1.2.2 Interaktive Aufgaben durch Reinforcement Learning lösen;36
9.2.3;1.2.3 Durch unüberwachtes Lernen verborgene Strukturen erkennen;37
9.3;1.3 Grundlegende Terminologie und Notation;38
9.3.1;1.3.1 Im Buch verwendete Notation und Konventionen;39
9.3.2;1.3.2 Terminologie;40
9.4;1.4 Entwicklung eines Systems für das Machine Learning;41
9.4.1;1.4.1 Vorverarbeitung: Daten in Form bringen;42
9.4.2;1.4.2 Trainieren und Auswählen eines Vorhersagemodells;42
9.4.3;1.4.3 Bewertung von Modellen und Vorhersage anhand unbekannter Dateninstanzen;43
9.5;1.5 Machine Learning mit Python;44
9.5.1;1.5.1 Python und Python-Pakete installieren;44
9.5.2;1.5.2 Verwendung der Python-Distribution Anaconda;45
9.5.3;1.5.3 Pakete für wissenschaftliches Rechnen, Data Science und Machine Learning;45
9.6;1.6 Zusammenfassung;46
10;Kapitel 2: Lernalgorithmen für die Klassifikation trainieren;47
10.1;2.1 Künstliche Neuronen: Ein kurzer Blick auf die Anfänge des Machine Learnings;47
10.1.1;2.1.1 Formale Definition eines künstlichen Neurons;48
10.1.2;2.1.2 Die Perzeptron-Lernregel;50
10.2;2.2 Implementierung eines Perzeptron-Lernalgorithmus in Python;53
10.2.1;2.2.1 Eine objektorientierte Perzeptron-API;53
10.2.2;2.2.2 Trainieren eines Perzeptron-Modells mit der Iris-Datensammlung;57
10.3;2.3 Adaptive lineare Neuronen und die Konvergenz des Lernens;63
10.3.1;2.3.1 Straffunktionen mit dem Gradientenabstiegsverfahren minimieren;64
10.3.2;2.3.2 Implementierung eines adaptiven linearen Neurons in Python;66
10.3.3;2.3.3 Verbesserung des Gradientenabstiegsverfahrens durch Merkmalstandardisierung;71
10.3.4;2.3.4 Large Scale Machine Learning und stochastisches Gradientenabstiegsverfahren;73
10.4;2.4 Zusammenfassung;79
11;Kapitel 3: Machine-Learning-Klassifikatoren mit scikit-learn verwenden;81
11.1;3.1 Auswahl eines Klassifikationsalgorithmus;81
11.2;3.2 Erste Schritte mit scikit-learn: Trainieren eines Perzeptrons;82
11.3;3.3 Klassenwahrscheinlichkeiten durch logistische Regression modellieren;88
11.3.1;3.3.1 Logistische Regression und bedingte Wahrscheinlichkeiten;89
11.3.2;3.3.2 Gewichte der logistischen Straffunktion ermitteln;93
11.3.3;3.3.3 Konvertieren einer Adaline-Implementierung in einen Algorithmus für eine logistische Regression;95
11.3.4;3.3.4 Trainieren eines logistischen Regressionsmodells mit scikit-learn;100
11.3.5;3.3.5 Überanpassung durch Regularisierung verhindern;103
11.4;3.4 Maximum-Margin-Klassifikation mit Support Vector Machines;106
11.4.1;3.4.1 Maximierung des Randbereichs;107
11.4.2;3.4.2 Handhabung des nicht linear trennbaren Falls mit Schlupfvariablen;108
11.4.3;3.4.3 Alternative Implementierungen in scikit-learn;110
11.5;3.5 Nichtlineare Aufgaben mit einer Kernel-SVM lösen;111
11.5.1;3.5.1 Kernel-Methoden für linear nicht trennbare Daten;111
11.5.2;3.5.2 Mit dem Kernel-Trick Hyperebenen in höherdimensionalen Räumen finden;113
11.6;3.6 Lernen mit Entscheidungsbäumen;117
11.6.1;3.6.1 Maximierung des Informationsgewinns: Daten ausreizen;118
11.6.2;3.6.2 Konstruktion eines Entscheidungsbaums;122
11.6.3;3.6.3 Mehrere Entscheidungsbäume zu einem Random Forest kombinieren;126
11.7;3.7 k-Nearest-Neighbors: Ein Lazy-Learning-Algorithmus;129
11.8;3.8 Zusammenfassung;132
12;Kapitel 4: Gut geeignete Trainingsdatenmengen: Datenvorverarbeitung;135
12.1;4.1 Umgang mit fehlenden Daten;135
12.1.1;4.1.1 Fehlende Werte in Tabellendaten;136
12.1.2;4.1.2 Instanzen oder Merkmale mit fehlenden Daten entfernen;137
12.1.3;4.1.3 Fehlende Werte ergänzen;138
12.1.4;4.1.4 Die Schätzer-API von scikit-learn;139
12.2;4.2 Handhabung kategorialer Daten;140
12.2.1;4.2.1 Codierung kategorialer Daten mit pandas;141
12.2.2;4.2.2 Zuweisung von ordinalen Merkmalen;141
12.2.3;4.2.3 Codierung der Klassenbezeichnungen;142
12.2.4;4.2.4 One-hot-Codierung der nominalen Merkmale;143
12.3;4.3 Aufteilung einer Datensammlung in Trainings- und Testdaten;147
12.4;4.4 Anpassung der Merkmale;150
12.5;4.5 Auswahl aussagekräftiger Merkmale;152
12.5.1;4.5.1 L1- und L2-Regularisierung als Straffunktionen;153
12.5.2;4.5.2 Geometrische Interpretation der L2-Regularisierung;153
12.5.3;4.5.3 Dünn besetzte Lösungen mit L1-Regularisierung;155
12.5.4;4.5.4 Algorithmen zur sequenziellen Auswahl von Merkmalen;159
12.6;4.6 Beurteilung der Bedeutung von Merkmalen mit Random Forests;166
12.7;4.7 Zusammenfassung;169
13;Kapitel 5: Datenkomprimierung durch Dimensionsreduktion;171
13.1;5.1 Unüberwachte Dimensionsreduktion durch Hauptkomponentenanalyse;171
13.1.1;5.1.1 Schritte bei der Hauptkomponentenanalyse;172
13.1.2;5.1.2 Schrittweise Extraktion der Hauptkomponenten;173
13.1.3;5.1.3 Totale Varianz und erklärte Varianz;176
13.1.4;5.1.4 Merkmalstransformation;178
13.1.5;5.1.5 Hauptkomponentenanalyse mit scikit-learn;181
13.2;5.2 Überwachte Datenkomprimierung durch lineare Diskriminanzanalyse;185
13.2.1;5.2.1 Hauptkomponentenanalyse kontra lineare Diskriminanzanalyse;185
13.2.2;5.2.2 Die interne Funktionsweise der linearen Diskriminanzanalyse;186
13.2.3;5.2.3 Berechnung der Streumatrizen;187
13.2.4;5.2.4 Auswahl linearer Diskriminanten für den neuen Merkmalsunterraum;189
13.2.5;5.2.5 Projektion in den neuen Merkmalsraum;192
13.2.6;5.2.6 LDA mit scikit-learn;193
13.3;5.3 Kernel-Hauptkomponentenanalyse für nichtlineare Zuordnungen verwenden;195
13.3.1;5.3.1 Kernel-Funktionen und der Kernel-Trick;196
13.3.2;5.3.2 Implementierung einer Kernel-Hauptkomponentenanalyse in Python;200
13.3.3;5.3.3 Projizieren neuer Datenpunkte;208
13.3.4;5.3.4 Kernel-Hauptkomponentenanalyse mit scikit-learn;212
13.4;5.4 Zusammenfassung;213
14;Kapitel 6: Bewährte Verfahren zur Modellbewertung und Hyperparameter-Optimierung;215
14.1;6.1 Arbeitsabläufe mit Pipelines optimieren;215
14.1.1;6.1.1 Die Wisconsin-Brustkrebs-Datensammlung;215
14.1.2;6.1.2 Transformer und Schätzer in einer Pipeline kombinieren;217
14.2;6.2 Beurteilung des Modells durch k-fache Kreuzvalidierung;219
14.2.1;6.2.1 Holdout-Methode;220
14.2.2;6.2.2 k-fache Kreuzvalidierung;221
14.3;6.3 Algorithmen mit Lern- und Validierungskurven debuggen;225
14.3.1;6.3.1 Probleme mit Bias und Varianz anhand von Lernkurven erkennen;226
14.3.2;6.3.2 Überanpassung und Unteranpassung anhand von Validierungskurven erkennen;229
14.4;6.4 Feinabstimmung eines Lernmodells durch Grid Search;231
14.4.1;6.4.1 Optimierung der Hyperparameter durch Grid Search;232
14.4.2;6.4.2 Algorithmenauswahl durch verschachtelte Kreuzvalidierung;234
14.5;6.5 Verschiedene Kriterien zur Leistungsbewertung;236
14.5.1;6.5.1 Interpretation einer Verwechslungsmatrix;236
14.5.2;6.5.2 Optimierung der Genauigkeit und der Trefferquote eines Klassifikationsmodells;238
14.5.3;6.5.3 Receiver-Operating-Characteristic-Diagramme;240
14.5.4;6.5.4 Bewertungskriterien für Mehrklassen-Klassifikationen;243
14.6;6.6 Handhabung unausgewogener Klassenverteilung;244
14.7;6.7 Zusammenfassung;247
15;Kapitel 7: Kombination verschiedener Modelle für das Ensemble Learning;249
15.1;7.1 Ensemble Learning;249
15.2;7.2 Klassifikatoren durch Mehrheitsentscheidung kombinieren;253
15.2.1;7.2.1 Implementierung eines einfachen Mehrheitsentscheidungs- Klassifikators;253
15.2.2;7.2.2 Vorhersagen nach dem Mehrheitsentscheidungsprinzip treffen;260
15.3;7.3 Bewertung und Abstimmung des Klassifikator-Ensembles;263
15.4;7.4 Bagging: Klassifikator-Ensembles anhand von Bootstrap-Stichproben entwickeln;270
15.4.1;7.4.1 Bagging kurz zusammengefasst;271
15.4.2;7.4.2 Klassifikation der Wein-Datensammlung durch Bagging;272
15.5;7.5 Schwache Klassifikatoren durch adaptives Boosting verbessern;276
15.5.1;7.5.1 Funktionsweise des Boostings;276
15.5.2;7.5.2 AdaBoost mit scikit-learn anwenden;280
15.6;7.6 Zusammenfassung;284
16;Kapitel 8: Machine Learning zur Analyse von Stimmungslagen nutzen;285
16.1;8.1 Die IMDb-Filmdatenbank;285
16.1.1;8.1.1 Herunterladen der Datensammlung;286
16.1.2;8.1.2 Vorverarbeiten der Filmbewertungsdaten;286
16.2;8.2 Das Bag-of-words-Modell;288
16.2.1;8.2.1 Wörter in Merkmalsvektoren umwandeln;289
16.2.2;8.2.2 Beurteilung der Wortrelevanz durch das Tf-idf-Maß;291
16.2.3;8.2.3 Textdaten bereinigen;293
16.2.4;8.2.4 Dokumente in Tokens zerlegen;295
16.3;8.3 Ein logistisches Regressionsmodell für die Dokumentklassifikation trainieren;297
16.4;8.4 Verarbeitung großer Datenmengen: Online-Algorithmen und Out-of-Core Learning;300
16.5;8.5 Topic Modeling mit latenter Dirichlet-Allokation;304
16.5.1;8.5.1 Aufteilung von Texten mit der LDA;305
16.5.2;8.5.2 LDA mit scikit-learn;305
16.6;8.6 Zusammenfassung;309
17;Kapitel 9: Einbettung eines Machine-Learning- Modells in eine Webanwendung;311
17.1;9.1 Serialisierung angepasster Schätzer mit scikit-learn;311
17.2;9.2 Einrichtung einer SQLite-Datenbank zum Speichern von Daten;315
17.3;9.3 Entwicklung einer Webanwendung mit Flask;317
17.3.1;9.3.1 Die erste Webanwendung mit Flask;318
17.3.2;9.3.2 Formularvalidierung und -ausgabe;320
17.4;9.4 Der Filmbewertungsklassifikator als Webanwendung;326
17.4.1;9.4.1 Dateien und Ordner – die Verzeichnisstruktur;328
17.4.2;9.4.2 Implementierung der Hauptanwendung app.py;328
17.4.3;9.4.3 Einrichtung des Bewertungsformulars;331
17.4.4;9.4.4 Eine Vorlage für die Ergebnisseite erstellen;332
17.5;9.5 Einrichtung der Webanwendung auf einem öffentlich zugänglichen Webserver;335
17.5.1;9.5.1 Erstellen eines Benutzerkontos bei PythonAnywhere;335
17.5.2;9.5.2 Hochladen der Filmbewertungsanwendung;336
17.5.3;9.5.3 Updaten des Filmbewertungsklassifikators;337
17.6;9.6 Zusammenfassung;340
18;Kapitel 10: Vorhersage stetiger Zielvariablen durch Regressionsanalyse;341
18.1;10.1 Lineare Regression;341
18.1.1;10.1.1 Ein einfaches lineares Regressionsmodell;342
18.1.2;10.1.2 Multiple lineare Regression;343
18.2;10.2 Die Boston-Housing-Datensammlung;344
18.2.1;10.2.1 Einlesen der Datenmenge in einen DataFrame;344
18.2.2;10.2.2 Visualisierung der wichtigen Eigenschaften einer Datenmenge;346
18.2.3;10.2.3 Zusammenhänge anhand der Korrelationsmatrix erkennen;348
18.3;10.3 Implementierung eines linearen Regressionsmodells mit der Methode der kleinsten Quadrate;350
18.3.1;10.3.1 Berechnung der Regressionsparameter mit dem Gradientenabstiegsverfahren;351
18.3.2;10.3.2 Schätzung der Koeffizienten eines Regressionsmodells mit scikit-learn;355
18.4;10.4 Anpassung eines robusten Regressionsmodells mit dem RANSAC-Algorithmus;357
18.5;10.5 Bewertung der Leistung linearer Regressionsmodelle;360
18.6;10.6 Regularisierungsverfahren für die Regression einsetzen;363
18.7;10.7 Polynomiale Regression: Umwandeln einer linearen Regression in eine Kurve;365
18.7.1;10.7.1 Hinzufügen polynomialer Terme mit scikit-learn;366
18.7.2;10.7.2 Modellierung nichtlinearer Zusammenhänge in der Boston-Housing-Datensammlung;368
18.8;10.8 Handhabung nichtlinearer Beziehungen mit Random Forests;371
18.8.1;10.8.1 Entscheidungsbaum-Regression;372
18.8.2;10.8.2 Random-Forest-Regression;373
18.9;10.9 Zusammenfassung;377
19;Kapitel 11: Verwendung von Daten ohne Label: Clusteranalyse;379
19.1;11.1 Gruppierung von Objekten nach Ähnlichkeit mit dem k-Means-Algorithmus;379
19.1.1;11.1.1 k-Means-Clustering mit scikit-learn;380
19.1.2;11.1.2 Der k-Means++-Algorithmus;385
19.1.3;11.1.3 »Crisp« und »soft« Clustering;386
19.1.4;11.1.4 Die optimale Anzahl der Cluster mit dem Ellenbogenkriterium ermitteln;388
19.1.5;11.1.5 Quantifizierung der Clustering-Güte mit Silhouettendiagrammen;390
19.2;11.2 Cluster als hierarchischen Baum organisieren;395
19.2.1;11.2.1 Gruppierung von Clustern;395
19.2.2;11.2.2 Hierarchisches Clustering mittels einer Distanzmatrix;397
19.2.3;11.2.3 Dendrogramme und Heatmaps verknüpfen;401
19.2.4;11.2.4 Agglomeratives Clustering mit scikit-learn;403
19.3;11.3 Bereiche hoher Dichte mit DBSCAN ermitteln;404
19.4;11.4 Zusammenfassung;409
20;Kapitel 12: Implementierung eines künstlichen neuronalen Netzes;411
20.1;12.1 Modellierung komplexer Funktionen mit künstlichen neuronalen Netzen;411
20.1.1;12.1.1 Einschichtige neuronale Netze;413
20.1.2;12.1.2 Mehrschichtige neuronale Netzarchitektur;415
20.1.3;12.1.3 Aktivierung eines neuronalen Netzes durch Vorwärtspropagation;418
20.2;12.2 Klassifikation handgeschriebener Ziffern;420
20.2.1;12.2.1 Die MNIST-Datensammlung;421
20.2.2;12.2.2 Implementierung eines mehrschichtigen Perzeptrons;428
20.3;12.3 Trainieren eines künstlichen neuronalen Netzes;440
20.3.1;12.3.1 Berechnung der logistischen Straffunktion;441
20.3.2;12.3.2 Ein Gespür für die Backpropagation entwickeln;443
20.3.3;12.3.3 Trainieren neuronaler Netze durch Backpropagation;445
20.4;12.4 Konvergenz in neuronalen Netzen;449
20.5;12.5 Abschließende Bemerkungen zur Implementierung neuronaler Netze;450
20.6;12.6 Zusammenfassung;450
21;Kapitel 13: Parallelisierung des Trainings neuronaler Netze mit TensorFlow;453
21.1;13.1 TensorFlow und Trainingsleistung;453
21.1.1;13.1.1 Herausforderungen;453
21.1.2;13.1.2 Was genau ist TensorFlow?;455
21.1.3;13.1.3 TensorFlow erlernen;456
21.2;13.2 Erste Schritte mit TensorFlow;457
21.2.1;13.2.1 TensorFlow installieren;457
21.2.2;13.2.2 Tensoren in TensorFlow erstellen;458
21.2.3;13.2.3 Datentyp und Format eines Tensors ändern;459
21.2.4;13.2.4 Anwendung mathematischer Operationen auf Tensoren;460
21.2.5;13.2.5 Tensoren aufteilen, stapeln und verknüpfen;462
21.3;13.3 Eingabe-Pipelines mit tf.data erstellen – die Dataset-API von TensorFlow;464
21.3.1;13.3.1 Ein TensorFlow-Dataset anhand vorhandener Tensoren erstellen;464
21.3.2;13.3.2 Zwei Tensoren zu einer Datenmenge vereinen;465
21.3.3;13.3.3 Durchmischen, Batch erstellen und wiederholen;467
21.3.4;13.3.4 Erstellen einer Datenmenge anhand lokal gespeicherter Dateien;470
21.3.5;13.3.5 Zugriff auf die Datenmengen der tensorflow_datasets-Bibliothek;474
21.4;13.4 Entwicklung eines NN-Modells mit TensorFlow;480
21.4.1;13.4.1 Die Keras-API (tf.keras) von TensorFlow;480
21.4.2;13.4.2 Entwicklung eines linearen Regressionsmodells;481
21.4.3;13.4.3 Trainieren des Modells mit den Methoden .compile() und .fit();486
21.4.4;13.4.4 Entwicklung eines mehrschichtigen Perzeptrons zur Klassifikation der Iris-Datensammlung;487
21.4.5;13.4.5 Bewertung des trainierten Modells mit der Testdatenmenge;492
21.4.6;13.4.6 Das trainierte Modell speichern und einlesen;492
21.5;13.5 Auswahl der Aktivierungsfunktionen mehrschichtiger neuronaler Netze;493
21.5.1;13.5.1 Die logistische Funktion kurz zusammengefasst;494
21.5.2;13.5.2 Wahrscheinlichkeiten bei der Mehrklassen-Klassifikation mit der softmax-Funktion schätzen;496
21.5.3;13.5.3 Verbreiterung des Ausgabespektrums mittels Tangens hyperbolicus;497
21.5.4;13.5.4 Aktivierung mittels ReLU;500
21.6;13.6 Zusammenfassung;501
22;Kapitel 14: Die Funktionsweise von TensorFlow im Detail;503
22.1;14.1 Grundlegende Merkmale von TensorFlow;504
22.2;14.2 TensorFlows Berechnungsgraphen: Migration nach TensorFlow v2;505
22.2.1;14.2.1 Funktionsweise von Berechnungsgraphen;505
22.2.2;14.2.2 Erstellen eines Graphen in TensorFlow v1.x;506
22.2.3;14.2.3 Migration eines Graphen nach TensorFlow v2;507
22.2.4;14.2.4 Eingabedaten einlesen mit TensorFlow v1.x;508
22.2.5;14.2.5 Eingabedaten einlesen mit TensorFlow v2;508
22.2.6;14.2.6 Beschleunigung von Berechnungen mit Funktionsdekoratoren;509
22.3;14.3 TensorFlows Variablenobjekte zum Speichern und Aktualisieren von Modellparametern;511
22.4;14.4 Gradientenberechnung durch automatisches Differenzieren und GradientTape;516
22.4.1;14.4.1 Berechnung der Gradienten der Verlustfunktion bezüglich trainierbarer Variablen;516
22.4.2;14.4.2 Berechnung der Gradienten bezüglich nicht trainierbarer Tensoren;518
22.4.3;14.4.3 Ressourcen für mehrfache Gradientenberechnung erhalten;518
22.5;14.5 Vereinfachung der Implementierung gebräuchlicher Architekturen mit der Keras-API;519
22.5.1;14.5.1 Lösen einer XOR-Klassifikationsaufgabe;523
22.5.2;14.5.2 Flexiblere Modellerstellung mit Keras’ funktionaler API;528
22.5.3;14.5.3 Modelle mit Keras’ »Model«-Klasse implementieren;530
22.5.4;14.5.4 Benutzerdefinierte Keras-Schichten;531
22.6;14.6 TensorFlows Schätzer;535
22.6.1;14.6.1 Merkmalsspalten;536
22.6.2;14.6.2 Machine Learning mit vorgefertigten Schätzern;540
22.6.3;14.6.3 Klassifikation handgeschriebener Ziffern mit Schätzern;545
22.6.4;14.6.4 Benutzerdefinierte Schätzer anhand eines Keras-Modells erstellen;547
22.7;14.7 Zusammenfassung;550
23;Kapitel 15: Bildklassifikation mit Deep Convolutional Neural Networks;551
23.1;15.1 Bausteine von Convolutional Neural Networks;551
23.1.1;15.1.1 CNNs und Merkmalshierarchie;552
23.1.2;15.1.2 Diskrete Faltungen;554
23.1.3;15.1.3 Subsampling;563
23.2;15.2 Implementierung eines CNNs;565
23.2.1;15.2.1 Verwendung mehrerer Eingabe- oder Farbkanäle;565
23.2.2;15.2.2 Regularisierung eines neuronalen Netzes mit Dropout;568
23.2.3;15.2.3 Verlustfunktionen für Klassifikationen;572
23.3;15.3 Implementierung eines tiefen CNNs mit TensorFlow;574
23.3.1;15.3.1 Die mehrschichtige CNN-Architektur;575
23.3.2;15.3.2 Einlesen und Vorverarbeiten der Daten;576
23.3.3;15.3.3 Implementierung eines CNNs mit TensorFlows Keras-API;577
23.4;15.4 Klassifikation des Geschlechts anhand von Porträtfotos mit einem CNN;584
23.4.1;15.4.1 Einlesen der CelebA-Datenmenge;584
23.4.2;15.4.2 Bildtransformation und Datenaugmentation;585
23.4.3;15.4.3 Training eines CNN-Klassifikators;592
23.5;15.5 Zusammenfassung;598
24;Kapitel 16: Modellierung sequenzieller Daten durch rekurrente neuronale Netze;599
24.1;16.1 Sequenzielle Daten;599
24.1.1;16.1.1 Modellierung sequenzieller Daten: Die Reihenfolge ist von Bedeutung;600
24.1.2;16.1.2 Repräsentierung von Sequenzen;600
24.1.3;16.1.3 Verschiedene Kategorien der Sequenzmodellierung;601
24.2;16.2 Sequenzmodellierung mit RNNs;603
24.2.1;16.2.1 Struktur und Ablauf eines RNNs;603
24.2.2;16.2.2 Aktivierungen eines RNNs berechnen;605
24.2.3;16.2.3 Rückkopplung mit der verdeckten Schicht oder der Ausgabeschicht;608
24.2.4;16.2.4 Probleme bei der Erkennung weitreichender Interaktionen;611
24.2.5;16.2.5 LSTM-Speicherzellen;612
24.3;16.3 Implementierung von RNNs zur Sequenzmodellierung mit TensorFlow;614
24.3.1;16.3.1 Projekt 1: Vorhersage der Stimmungslage von IMDb-Filmbewertungen;614
24.3.2;16.3.2 Projekt 2: Sprachmodellierung durch Zeichen mit TensorFlow;631
24.4;16.4 Sprache mit dem Transformer-Modell verstehen;644
24.4.1;16.4.1 Der Mechanismus der Selbst-Aufmerksamkeit;645
24.4.2;16.4.2 Multi-Head-Attention und Transformer-Block;648
24.5;16.5 Zusammenfassung;649
25;Kapitel 17: Synthetisieren neuer Daten mit Generative Adversarial Networks;651
25.1;17.1 Einführung in GANs;651
25.1.1;17.1.1 Autoencoder;652
25.1.2;17.1.2 Generative Modelle zum Synthetisieren neuer Daten;654
25.1.3;17.1.3 Mit GANs neue Beispiele erzeugen;656
25.1.4;17.1.4 Die Verlustfunktion des Generator- und Diskriminator-Netzes in einem GAN-Modell;657
25.2;17.2 Ein GAN von Grund auf implementieren;660
25.2.1;17.2.1 GAN-Modelle mit Google Colab trainieren;660
25.2.2;17.2.2 Implementierung der Generator- und Diskriminator-Netze;663
25.2.3;17.2.3 Definition der Trainingsdatenmenge;667
25.2.4;17.2.4 Trainieren des GAN-Modells;669
25.3;17.3 Verbesserung der Qualität synthetisierter Bilder durch Convolutional GAN und Wasserstein-GAN;678
25.3.1;17.3.1 Transponierte Faltung;679
25.3.2;17.3.2 Batchnormierung;680
25.3.3;17.3.3 Implementierung des Generators und des Diskriminators;683
25.3.4;17.3.4 Maße für den Unterschied zwischen zwei Verteilungen;690
25.3.5;17.3.5 Verwendung der EM-Distanz in der Praxis;693
25.3.6;17.3.6 Strafterm;694
25.3.7;17.3.7 Implementierung von WGAN-GP zum Trainieren des DCGAN-Modells;695
25.3.8;17.3.8 Zusammenbrechen des Verfahrens;699
25.4;17.4 Weitere GAN-Anwendungen;701
25.5;17.5 Zusammenfassung;702
26;Kapitel 18: Entscheidungsfindung in komplexen Umgebungen per Reinforcement Learning;703
26.1;18.1 Einführung: Aus Erfahrung lernen;704
26.1.1;18.1.1 Reinforcement Learning;704
26.1.2;18.1.2 Definition der Agent-Umgebung-Schnittstelle für ein Reinforcement-Learning-System;706
26.2;18.2 Theoretische Grundlagen des RLs;707
26.2.1;18.2.1 Markov-Entscheidungsprozesse;707
26.2.2;18.2.2 Mathematische Formulierung von Markov-Entscheidungsprozessen;708
26.2.3;18.2.3 RL-Terminologie: Return, Policy und Wertfunktion;712
26.2.4;18.2.4 Dynamische Programmierung und Bellman-Gleichung;716
26.3;18.3 Reinforcement-Learning-Algorithmen;717
26.3.1;18.3.1 Dynamische Programmierung;717
26.3.2;18.3.2 Reinforcement Learning mit Monte-Carlo-Algorithmen;720
26.3.3;18.3.3 Temporal Difference Learning;722
26.4;18.4 Implementierung eines RL-Algorithmus;725
26.4.1;18.4.1 OpenAI Gym;725
26.4.2;18.4.2 Lösung der Grid-World-Aufgabe mit Q-Learning;736
26.4.3;18.4.3 Ein Blick auf Deep Q-Learning;741
26.5;18.5 Zusammenfassung und Schlusswort;749
27;Stichwortverzeichnis;753