Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 Einführung
15
1.1 Über dieses Buch
15
1.1.1 Voraussetzungen
16
1.1.2 Aufbau des Buches
16
1.2 Ein Einblick in Deep Learning
17
1.3 Deep Learning im Alltag und in der Zukunft
19
1.3.1 Sprachverarbeitung
19
1.3.2 Automatische Sprachübersetzungen
20
1.3.3 Visual Computing
21
1.3.4 Autonomes Fahren
23
1.3.5 Deep Learning in der Medizin
24
1.3.6 Deep Learning in der Finanzwelt
25
1.3.7 Deep Learning in der Energiewirtschaft
27
2 Machine Learning und Deep Learning
29
2.1 Einführung
29
2.2 Lernansätze bei Machine Learning
34
2.2.1 Supervised Learning
34
2.2.2 Unsupervised Learning
36
2.2.3 Semi-supervised Learning
36
2.2.4 Reinforcement Learning
37
2.2.5 Aktives Lernen
38
2.3 Deep-Learning-Frameworks
39
2.4 Datenbeschaffung
40
2.4.1 Vorgefertigte Datasets
41
2.4.2 Eigene Datasets
41
2.5 Datasets
42
2.5.1 Kaggle
42
2.5.2 Chars74K
44
2.5.3 ImageNET
45
2.5.4 ImageClef
46
2.5.5 VGG
47
2.5.6 YFCC100M
49
2.5.7 YouTube-8M
50
2.5.8 MS-Celeb1M
50
2.5.9 Microsoft COCO
51
2.5.10 MNIST und Fashion-MNIST
52
2.5.11 Weitere Datasets
54
2.5.12 Checkliste Datasets
54
2.6 Zusammenfassung
55
3 Neuronale Netze
57
3.1 Aufbau und Prinzip
57
3.1.1 Das künstliche Neuron
59
3.1.2 Wie funktioniert ein künstliches Neuron?
59
3.1.3 Mehrschichtige neuronale Netze
61
3.2 Wie lernt ein neuronales Netz?
63
3.2.1 Lernvorgang
63
3.2.2 Backpropagation und Fehlerfunktionen
66
3.2.3 Gewichtsanpassung und Training
67
3.2.4 Gradientenverfahren
68
3.3 Datenaufbereitung
70
3.4 Ein einfaches neuronales Netz
71
3.4.1 Variante 1
73
3.4.2 Variante 2
76
3.5 Netzarchitektur
80
3.5.1 Convolutional Neural Networks
80
3.5.2 Rekurrente neuronale Netze
84
3.6 Bekannte Netze
86
3.6.1 LeNet
87
3.6.2 AlexNet
87
3.6.3 VGGNet
87
3.6.4 YOLO
88
3.6.5 PoseNet
89
3.7 Die Fallstricke des Deep Learnings
89
3.8 Zusammenfassung
94
4 Python und Machine-Learning-Bibliotheken
95
4.1 Installation von Python 3.6
95
4.1.1 Unter Microsoft Windows
96
4.1.2 Unter macOS
97
4.1.3 Alternative: Python 3.6-Installation mit Anaconda
98
4.2 Programmierumgebungen
101
4.2.1 Microsoft Visual Code
101
4.2.2 PyCharm CE
103
4.2.3 Rodeo
106
4.2.4 Spyder
107
4.3 Jupyter Notebook
108
4.4 Python-Bibliotheken für das Machine Learning
113
4.4.1 NumPy
113
4.4.2 SciPy
114
4.4.3 Scikit-learn
114
4.5 Nützliche Routinen mit NumPy und Scikit-learn für ML
115
4.5.1 Laden eines Datasets aus einer CSV- oder JSON-Datei
115
4.5.2 Laden eines Datasets aus dem Web
116
4.5.3 Laden eines in Scikit-learn inkludierten Datasets
117
4.5.4 Daten explorieren und visualisieren
117
4.5.5 Normalisierung von Daten
118
4.6 Ein erstes Machine-Learning-Beispiel
119
4.7 Zusammenfassung
123
5 TensorFlow
125
5.1 Einführung
125
5.2 Installation
128
5.2.1 Installation von TensorFlow unter Windows
129
5.2.2 TensorFlow mit alleiniger CPU-Unterstützung
129
5.2.3 TensorFlow mit GPU-Unterstützung
129
5.2.4 Installation von TensorFlow unter macOS
135
5.2.5 Überprüfung der TensorFlow-Installation
135
5.3 Grundkonzepte
136
5.3.1 Tensoren
136
5.3.2 Konstanten
137
5.3.3 Variablen
140
5.3.4 Graphen
142
5.3.5 Platzhalter und Feed Dictionary
147
5.3.6 Operationen
148
5.4 Erster Kontakt mit TensorBoard: Einen Graphen visualisieren
149
5.5 Einen Graphen in TensorBoard debuggen
152
5.6 Projekt 1: Eine lineare Regression
156
5.6.1 Schritt 1: Datengenerierung und Visualisierung
157
5.6.2 Schritt 2: Modell erstellen
158
5.6.3 Schritt 3: Modell trainieren
159
5.6.4 Schritt 4: Modell benutzen und Ergebnisse visualisieren
160
5.7 Projekt 2: Fashion MNIST
161
5.7.1 Schritt 1: Vorbereitung der Daten
162
5.7.2 Schritt 2: Laden der Daten
164
5.7.3 Schritt 3: Modell erstellen
166
5.7.4 Schritt 4: Modell trainieren
168
5.7.5 Schritt 5: Modell benutzen
169
5.7.6 Schritt 6: Modell erweitern
169
5.8 TensorFlow-Modelle speichern und laden
171
5.8.1 tf.train.Saver()
171
5.8.2 Modell speichern
172
5.8.3 Modell wiederherstellen
173
5.8.4 tf.saved_model.builder.SavedModelBuilder()
174
5.8.5 Modell speichern
174
5.8.6 Modell wiederherstellen
176
5.9 Projekt 3: Konvolutionales neuronales Netz mit TensorFlow
176
5.9.1 Schritt 1: Modell generieren
176
5.9.2 Schritt 2: Festlegung der Metriken
180
5.9.3 Schritt 3: Modell trainieren
181
5.10 High-Level APIs
183
5.11 Prozess
184
5.12 Zusammenfassung
185
6 Keras
187
6.1 Einführung
187
6.2 Installation von Keras
188
6.2.1 K wie Keras oder Konfusion
188
6.3 Modelle erstellen
191
6.3.1 Sequential Model
191
6.3.2 Functional API
192
6.3.3 Keras-Layers
193
6.4 Modelle trainieren
193
6.5 Modelle evaluieren
195
6.6 Modelle laden und exportieren
196
6.6.1 Speichern des Modells
196
6.6.2 Separates Speichern der Struktur und Parameter des Modells
197
6.7 Keras Applications
198
6.8 Keras Callbacks
199
6.9 Beispiel: Iris-Klassifikation mit Keras
200
6.9.1 Dataset laden
201
6.9.2 Modell erstellen
202
6.9.3 Modell trainieren
202
6.9.4 Modell evaluieren
202
6.9.5 Modell benutzen
203
6.10 CNNs mit Keras
204
6.10.1 CIFAR-10-Dataset laden
204
6.10.2 Modell erstellen und trainieren
206
6.10.3 Modell evaluieren und exportieren
207
6.10.4 Modell exportieren und benutzen
207
6.11 RNNs und LSTMs in Keras
209
6.11.1 Vorbereitung der Daten
209
6.11.2 Modell erstellen und trainieren
212
6.11.3 Modell testen
212
6.12 Zusammenfassung
214
7 Netze und Metriken visualisieren
215
7.1 TensorBoard
215
7.1.1 Einen Graphen visualisieren
216
7.1.2 Metriken visualisieren
220
7.1.3 Histogramme
222
7.1.4 Text-Dashboard
223
7.1.5 Bilderdatensätze mit dem Images-Dashboard visualisieren
226
7.1.6 TensorBoard Debugger
228
7.2 tf_cnnvis
232
7.3 Visualisierung mit Keras
234
7.3.1 plot_model()
234
7.3.2 TensorBoard-Callbacks
236
7.3.3 TensorBoard Debugger mit Keras
237
7.3.4 Aktivierungen visualisieren
238
7.3.5 Keras-Metriken mit Bokeh darstellen
242
7.4 Visualisierung von CNNs mit Quiver
244
7.4.1 Installation
245
7.4.2 Start
245
7.5 Bonus: Interaktive Visualisierung mit Keras-Callbacks, Node.js und HTML5 selbst implementieren
247
7.5.1 Projektarchitektur
248
7.5.2 Benutzung von Keras-Callbacks
249
7.5.3 Server
251
7.5.4 Aufbau der Visualisierung
254
7.5.5 Start der Visualisierung
256
7.6 Weitere Visualisierungsmöglichkeiten
258
7.6.1 Netron
258
7.6.2 ConX
259
8 TensorFlow.js
261
8.1 Anwendungsfälle
261
8.2 Installation von BrowserSync
265
8.3 Installation von TensorFlow.js
266
8.4 Konzepte
269
8.4.1 Keras vs. TensorFlow.js
270
8.4.2 Variablen
273
8.4.3 Tensoren
274
8.4.4 Operationen
278
8.4.5 Modelle und Schichten
279
8.4.6 Bilddaten mit tf.fromPixels() einlesen
280
8.5 Ihr erstes Modell mit TensorFlow.js: Eine quadratische Regression
281
8.5.1 Schritt 1: index.html-Datei anlegen
282
8.5.2 Schritt 2: Daten anlegen
286
8.5.3 Schritt 3: Modell erstellen
286
8.5.4 Schritt 4: Modell trainieren
287
8.6 Laden und Speichern von Modellen
289
8.6.1 Modelle mit model.save() speichern
290
8.6.2 Modell laden
295
8.6.3 Keras-Modelle exportieren und in TensorFlow.js importieren
297
8.7 PoseNet-Modell mit TensorFlow.js
298
8.7.1 Schritt 1: Implementierung der Benutzerschnittstelle
300
8.7.2 Schritt 2: Laden des PoseNet-Modells
304
8.7.3 Schritt 3: Single- und Multi-Pose-Erkennung
305
8.7.4 Schritt 4: Ergebnisse von PoseNet visualisieren
307
8.8 TensorFlow.js noch einfacher: ml5.js
314
9 Praxisbeispiele
317
9.1 Projekt 1: Verkehrszeichenerkennung mit Keras
318
9.1.1 Schritt 1: Datasets
319
9.1.2 Schritt 2: Datenanalyse und Vorbereitung der Klassifikation
322
9.1.3 Schritt 3: Modell trainieren
324
9.1.4 Schritt 4: Modell testen
329
9.1.5 Erweiterungsmöglichkeiten
332
9.2 Projekt 2: Intelligente Spurerkennung mit Keras und OpenCV
333
9.2.1 Schritt 1: Methodik zur Datenerstellung
334
9.2.2 Schritt 2: Benutzung der Modelle
339
9.3 Projekt 3: Erkennung der Umgebung mit YOLO und TensorFlow.js bzw. ml5.js
346
9.3.1 Das YOLO-Modell
346
9.3.2 Schritt 1: Vorbereitung des Projekts
349
9.3.3 Schritt 2: Aufbereitung der Objekterkennung
350
9.3.4 Schritt 3: Benutzung des YOLO-Modells
355
9.3.5 Schritt 4: Erweiterungsmöglichkeiten
356
9.4 Projekt 4: Haus oder Katze? Vorgefertigte Modelle mit Keras benutzen – VGG-19
357
9.4.1 Schritt 1: Vorbereitung
358
9.4.2 Schritt 2: Instanziierung des VGG-19-Modells
359
9.4.3 Schritt 3: Benutzung des Modells
359
9.4.4 Schritt 4: Benutzung weiterer Modelle und Tests
361
9.5 Projekt 5: Fashion-MNIST mit TensorFlow-Estimators
364
9.5.1 Schritt 1: Modell erstellen mit tf.estimator
364
9.5.2 Schritt 2: Modell anlegen
366
9.5.3 Schritt 3: Modell trainieren und evaluieren
370
9.5.4 Schritt 4: Vorhersage mit predict()
372
9.5.5 Schritt 5: Benutzung des Modells
373
9.5.6 Bonus: Alternativmodell mit einem DNNClassifier
375
9.5.7 Erweiterung
377
9.6 Projekt 6: Stimmungsanalyse mit Keras
377
9.6.1 Schritt 1: Eingabedaten und Datenstruktur
377
9.6.2 Schritt 2: Modell(e) erstellen
381
9.6.3 Schritt 3: Modell trainieren
382
9.6.4 Schritt 4: Modell benutzen
383
9.7 Bonus: Sentiment-Analyse mit TensorFlow.js
384
9.7.1 Schritt 1: Die Benutzerschnittstelle erstellen und das Modell laden
385
9.7.2 Schritt 2: Modell benutzen
387
9.8 Allgemeine Tipps und Tricks
388
9.8.1 Datenanalyse
388
9.8.2 Das Problem und die Aufgaben eines Modells korrekt definieren
389
9.8.3 Wie viele verdeckten Schichten und Neuronen brauche ich?
390
9.8.4 Die Falle des Overfittings bzw. Underfittings vermeiden
391
9.8.5 Datenaugmentierung und synthetische Daten
392
9.8.6 Normalisierung der Daten
392
9.8.7 Eingabedimensionen von Tensoren
393
9.8.8 Hilfe, es geht nicht!
394
10 Ausblick
397
10.1 Deep Learning in der Cloud
397
10.1.1 Google Cloud Machine Learning
397
10.1.2 Microsoft Azure
399
10.1.3 Amazon Deep Learning-AMIs
400
10.1.4 IBM Watson Services
402
10.1.5 Adobe Sensei
403
10.1.6 Cloud oder nicht Cloud?
404
10.2 Kunst mit Deep Learning
405
10.3 GAN und Stiltransfere mit Deep Learning
406
10.4 Musik mit Deep Learning
408
10.4.1 FlowMachine
408
10.4.2 Magenta.js
409
10.5 Videogenerierung mit Deep Learning
410
10.6 Deep Learning einfacher gemacht
411
11 Fazit
415
Index
419