Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
1 Vorwort
13
1.1 An wen richtet sich dieses Buch?
15
1.2 Voraussetzungen
15
1.3 Die Struktur des Buches
16
1.4 Wie Sie dieses Buch effektiv nutzen
16
1.5 Konventionen in diesem Buch
17
1.6 Der Code zum Herunterladen und weitere Materialien
18
1.7 Systemeinrichtung
18
1.7.1 Python-Installation
19
1.7.2 IDE-Installation
20
1.7.3 Git-Installation
21
1.7.4 Download des Kursmaterials
22
1.7.5 Die lokale Python-Umgebung einrichten
23
1.8 Danksagung
25
2 Einführung in das Deep Learning
27
2.1 Was ist Deep Learning?
28
2.2 Wofür kann Deep Learning verwendet werden?
29
2.2.1 Regression
31
2.2.2 Zeitreihenvorhersage
31
2.2.3 Klassifizierung
31
2.2.4 Sprachmodelle
31
2.2.5 Modelle für Computer-Vision
32
2.2.6 Clustering
32
2.2.7 Dimensionsreduktion
32
2.2.8 Empfehlungssysteme
32
2.3 Wie funktioniert Deep Learning?
33
2.3.1 Modelltraining
33
2.3.2 Modell-Inferenz
34
2.4 Historische Entwicklung
35
2.5 Perzeptron
36
2.6 Netzwerkaufbau und -schichten
37
2.7 Aktivierungsfunktionen
38
2.7.1 Rectified Linear Unit und Leaky Rectified Linear Unit
39
2.7.2 Hyperbolischer Tangens
39
2.7.3 Sigmoid
40
2.7.4 Softmax
40
2.8 Verlustfunktion
41
2.8.1 Regressionsprobleme
42
2.8.2 Binäre Klassifizierung
42
2.8.3 Multiclass-Klassifizierung
43
2.9 Optimierer und Parameter-Update
43
2.9.1 Optimierer
43
2.9.2 Parameter-Update
44
2.10 Umgang mit Tensoren
45
2.10.1 Was sind Tensoren?
45
2.10.2 Coding: Tensorerstellung und Attribute
46
2.10.3 Coding: Berechnungsgraph und Training
48
2.11 Zusammenfassung
53
3 Unser erstes PyTorch-Modell
55
3.1 Datenvorbereitung
56
3.1.1 Feature-Typen
56
3.1.2 Datentypen
58
3.1.3 One-Hot Encoding
59
3.1.4 Explorative Datenanalyse
61
3.1.5 Skalierung
65
3.2 Modell-Erstellung
66
3.2.1 Datenimport
66
3.2.2 Modelltraining
67
3.2.3 Modell-Evaluierung
69
3.2.4 Modell-Inferenz
71
3.3 Modellklasse und Optimierer
74
3.4 Batches
78
3.4.1 Was sind Batches?
79
3.4.2 Vorteile von Batches
79
3.4.3 Die optimale Batchgröße
80
3.4.4 Coding: Implementierung von Batches
80
3.5 Dataset und DataLoader
83
3.5.1 Was sind Dataset und DataLoader?
83
3.5.2 Die Vorteile von Dataset und DataLoader
83
3.5.3 Coding: Implementierung mit Dataset und DataLoader
84
3.6 Modelle speichern und laden
88
3.6.1 Modellparameter speichern
88
3.6.2 Modell laden
89
3.7 Data Sampling
91
3.7.1 Was ist Data Sampling?
91
3.7.2 Kreuzvalidierung
93
3.7.3 Warum braucht man das?
94
3.7.4 Coding: Aufteilung in Trainings- und Validierungsdaten
95
3.8 Zusammenfassung
100
4 Klassifizierungsmodelle
103
4.1 Klassifizierungstypen
104
4.2 Konfusionsmatrix
105
4.3 ROC-Kurve
108
4.4 Binäre Klassifizierung
110
4.4.1 Datenvorbereitung
110
4.4.2 Modellierung
115
4.4.3 Evaluierung
120
4.5 Multi-Class-Klassifizierung
124
4.5.1 Datenvorbereitung
125
4.5.2 Modellierung
129
4.5.3 Evaluierung
133
4.6 Zusammenfassung
137
5 Computer-Vision
139
5.1 Wie werden Bilder in Modellen behandelt?
141
5.2 Netzwerkarchitekturen
142
5.2.1 Convolutional Neural Networks (CNN)
142
5.2.2 Vision-Transformer (ViT)
145
5.3 Bildklassifizierung
147
5.3.1 Binäre Klassifizierung
148
5.3.2 Multi-Class-Klassifizierung
164
5.4 Objekterkennung
177
5.4.1 Wie funktioniert Objekterkennung?
178
5.4.2 Datenvorbereitung
179
5.4.3 Modelltraining
186
5.4.4 Modellevaluierung
187
5.4.5 Modell-Inferenz
190
5.5 Semantische Segmentierung
193
5.5.1 Funktionsweise
194
5.5.2 Die Segmentierungsmaske
195
5.5.3 Datenvorbereitung
197
5.5.4 Modellierung
198
5.5.5 Modellevaluierung
202
5.6 Stiltransfer
204
5.6.1 Funktionsweise
204
5.6.2 Datenvorbereitung
206
5.6.3 Modellierung
209
5.6.4 Modellergebnis
213
5.7 Zusammenfassung
213
6 Empfehlungssysteme
215
6.1 Konzepte
215
6.1.1 Grundkonzepte
215
6.1.2 Matrix-Faktorisierung
217
6.2 Coding: Empfehlungssystem
218
6.2.1 Datenvorbereitung
218
6.2.2 Modellierung
223
6.2.3 Modellevaluierung
225
6.3 Zusammenfassung
236
7 Autoencoder
237
7.1 Architektur
238
7.2 Autoencoder-Implementierung
239
7.2.1 Datenvorbereitung
239
7.2.2 Modellierung
241
7.2.3 Training
245
7.2.4 Validierung
247
7.3 Variational Autoencoder
248
7.4 Coding: Variational Autoencoder
249
7.4.1 Netzwerkaufbau
250
7.4.2 Verlustfunktion
254
7.5 Zusammenfassung
259
8 Graph Neural Networks
261
8.1 Einführung in die Graphentheorie
261
8.1.1 Graph und Adjazenzmatrix
262
8.1.2 Merkmale
263
8.1.3 Nachrichtenübermittlung
264
8.1.4 Anwendungsfälle
265
8.2 Coding: Aufbau eines Graphen
266
8.3 Coding: Training eines GNN
271
8.4 Zusammenfassung
280
9 Zeitreihen
281
9.1 Modellierungsansätze
281
9.1.1 Besonderheiten bei Zeitreihendaten
281
9.1.2 Datenmodellierung
282
9.1.3 LSTM
283
9.1.4 1D-CNN
284
9.1.5 Transformer
285
9.2 Coding: Eigenes Modell
286
9.2.1 Datenvorbereitung
287
9.2.2 LSTM
291
9.2.3 Convolutional Neural Networks
295
9.2.4 Transformer
298
9.3 Coding: Nutzung von PyTorch Forecasting
301
9.3.1 Datenvorbereitung
301
9.3.2 Modelltraining
306
9.3.3 Evaluierung
307
9.4 Zusammenfassung
310
10 Sprachmodelle
311
10.1 Nutzung von LLMs mit Python
312
10.1.1 Coding: Nutzung von OpenAI
313
10.1.2 Coding: Nutzung von Groq
317
10.1.3 Multimodale Modelle
320
10.1.4 Coding: Multimodale Modelle
321
10.1.5 Coding: Lokales Betreiben von LLMs
323
10.2 Modellparameter
328
10.3 Modellauswahl
331
10.3.1 Leistungsfähigkeit
332
10.3.2 Der Wissensstand des Modells
333
10.3.3 On-Premises vs. Cloud-Hosting
333
10.3.4 Open-Source-, Open-Weight- und proprietäre Modelle
334
10.3.5 Kosten
334
10.3.6 Kontextfenster
334
10.3.7 Latenz
335
10.4 Nachrichtentypen
335
10.4.1 Benutzereingabe (User- bzw. Human Message)
335
10.4.2 Systemnachricht
335
10.4.3 Assistant
336
10.5 Prompt-Templates
336
10.5.1 Coding: ChatPromptTemplates
336
10.5.2 Coding: Verbesserung eines Prompts mit dem LangChain Hub
338
10.6 Chains
340
10.6.1 Eine einfache sequenzielle Chain
340
10.6.2 Coding: Eine einfache sequenzielle Chain
341
10.7 Strukturierte Outputs
343
10.7.1 Was sind strukturierte Outputs?
343
10.7.2 Coding: Strukturierte Outputs
343
10.8 Deep Dive: Wie funktionieren Transformer?
346
10.8.1 Tokenisierung
347
10.8.2 Word Embeddings
348
10.8.3 Positional Encoding
350
10.8.4 Attention
350
10.9 Zusammenfassung
353
11 Vortrainierte Netzwerke und Finetuning
355
11.1 Vortrainierte Netzwerke mit Hugging Face
356
11.1.1 Einführung in Hugging Face
356
11.1.2 Auswahl eines Modells
357
11.2 Transferlernen
359
11.2.1 Vorteile des Transferlernens
359
11.2.2 Transferlernen-Ansätze
360
11.3 Coding: Finetuning eines Computer-Vision-Modells
362
11.3.1 Datenvorbereitung
363
11.3.2 Modellierung
366
11.3.3 Modellevaluation
368
11.4 Coding: Finetuning eines Sprachmodells
370
11.4.1 Datenvorbereitung
372
11.4.2 Modellierung
374
11.4.3 Modellevaluation
375
11.5 Zusammenfassung
376
12 PyTorch Lightning
377
12.1 Vergleich zwischen PyTorch und PyTorch Lightning
378
12.2 Coding: Modelltraining
379
12.3 Callbacks
386
12.3.1 Vorteile von Callbacks
386
12.3.2 Modell-Checkpoints
386
12.3.3 Early Stopping
388
12.4 Zusammenfassung
389
13 Modellevaluierung, Logging und Monitoring
391
13.1 TensorBoard
392
13.1.1 Funktionsweise
392
13.1.2 Nutzung von TensorBoard
393
13.1.3 TensorBoard-Dashboard
399
13.2 MLflow
401
13.2.1 Daten loggen
402
13.2.2 Modelle speichern und laden
404
13.2.3 MLflow-Dashboard
405
13.3 Weights and Biases (WandB)
406
13.3.1 Initialisierung
407
13.3.2 Loggen von Metriken
408
13.3.3 Loggen von Artefakten
409
13.3.4 Sweeps
411
13.4 Zusammenfassung
413
14 Deployment
415
14.1 Deployment-Strategien
415
14.2 Lokales Deployment
418
14.2.1 API-Entwicklung
418
14.2.2 Deployment
422
14.2.3 Test
422
14.3 Heroku
424
14.3.1 Heroku CLI und Login
425
14.3.2 Deployment
425
14.3.3 Test
429
14.3.4 Stoppen und Löschen der App
430
14.4 Microsoft Azure
431
14.4.1 Erste Schritte mit Azure
431
14.4.2 Erstellung der lokalen Function-App
433
14.4.3 Lokaler Test
436
14.4.4 Erstellung der Function App im Portal
436
14.4.5 Cloud-Deployment
438
14.5 Zusammenfassung
440
Index
443