Neuronale Netze stehen im Mittelpunkt, wenn es um Künstliche Intelligenz und Machine Learning geht. Sie revolutionieren Bild- und Spracherkennung, Spiele-KIs und vieles mehr. Zum Glück lassen sich die genialen Ideen dahinter einfach erklären. Um sie zu verstehen und einzusetzen, programmieren Sie verschiedene Netztypen selbst nach! Und zwar in Python, der Hauptsprache der KI-Welt. Sie werden sich dabei mit Mathematik und Programmierung befassen, brauchen aber keine konkreten Vorkenntnisse.
Aus dem Inhalt:
Die Grundidee hinter Neuronalen Netzen
Ein einfaches Neuronales Netz aufbauen
Neuronale Netze trainieren
Überwachtes und unüberwachtes Lernen
Einführung in TensorFlow
Kompaktkurs Python
Wichtige mathematische Grundlagen
Reinforcement Learning
Verschiedene Netzarten und ihre Anwendungsbereiche
Back Propagation
Deep Learning
Werkzeuge für Data Scientists
Dr. Roland Schwaiger ist in so manchen Bereichen der IT-Welt zuhause - Entwickler, Dozent, Forscher und Autor. In seinem Buch "Schrödinger programmiert ABAP" oder "Neuronale Netze programmieren mit Python" verbindet er technisches Know-how mit einem lockeren, humorvollen Stil, der selbst komplexe Themen verständlich und unterhaltsam macht.
Seine berufliche Reise begann nach dem Studium der Informatik und Mathematik an der Bowling Green State University (Ohio, USA) und der Universität Salzburg, wo er in Mathematik/Informatik promovierte. Als Softwareentwickler bei der SAP AG in Walldorf sammelte er praktische Erfahrungen im Bereich Human Resources, bevor er sich der Wirtschaft und anwendungsbezogenen Projekten widmete.
Seit Anfang 2000 unterrichtet Dr. Schwaiger an Fachhochschulen, Universitäten und für SAP. Dort bringt er Studierenden und Schulungsteilnehmern die Feinheiten der ABAP-Programmierung und Themen wie künstliche Intelligenz näher. Seine angewandte Forschung dreht sich um Künstliche Neuronale Netze, Evolutionäre Algorithmen und innovative Ansätze in der Softwareentwicklung.
Als Geschäftsführer der NoR GmbH, einem Unternehmen mit Fokus auf SAP-HCM, SAP-Technologien und KI, bringt er Praxis und Forschung zusammen. Ob in Vorlesungen, Workshops oder seinem Buch - Dr. Schwaiger vermittelt nicht nur Wissen, sondern auch Begeisterung für die Welt der Informatik.
Vorwort ... 13
Vorwort zur 2. Auflage ... 16
Vorwort zur 3. Auflage (in Kooperation mit einem Transformer Neural Network) ... 17
1. Einleitung ... 19
1.1 ... Wozu neuronale Netze? ... 19
1.2 ... Über dieses Buch ... 20
1.3 ... Der Inhalt kompakt ... 22
1.4 ... Ist diese Biene eine Königin? ... 25
1.5 ... Ein künstliches neuronales Netz für den Bienenstaat ... 26
1.6 ... Von der Biologie zum künstlichen Neuron ... 32
1.7 ... Einordnung und der Rest ... 36
1.8 ... Zusammenfassung ... 45
1.9 ... Referenzen ... 45
TEIL I. Up and running ... 47
2. Das minimale Starterkit für die Entwicklung von neuronalen Netzen mit Python ... 49
2.1 ... Die technische Entwicklungsumgebung ... 49
2.2 ... Zusammenfassung ... 72
3. Ein einfaches neuronales Netz ... 73
3.1 ... Vorgeschichte ... 73
3.2 ... Her mit dem neuronalen Netz! ... 73
3.3 ... Neuron-Zoom-in ... 77
3.4 ... Stufenfunktion ... 82
3.5 ... Perceptron ... 84
3.6 ... Punkte im Raum -- Vektorrepräsentation ... 85
3.7 ... Horizontal und vertikal -- Spalten- und Zeilenschreibweise ... 92
3.8 ... Die gewichtete Summe ... 95
3.9 ... Schritt für Schritt -- Stufenfunktionen ... 95
3.10 ... Die gewichtete Summe reloaded ... 96
3.11 ... Alles zusammen ... 97
3.12 ... Aufgabe: Roboterschutz ... 100
3.13 ... Zusammenfassung ... 103
3.14 ... Referenzen ... 103
4. Lernen im einfachen Netz ... 105
4.1 ... Vorgeschichte: Man lässt planen ... 105
4.2 ... Lernen im Python-Code ... 106
4.3 ... Perceptron-Lernen ... 107
4.4 ... Trenngerade für einen Lernschritt ... 110
4.5 ... Perceptron-Lernalgorithmus ... 112
4.6 ... Die Trenngeraden bzw. Hyperplanes oder auch Hyperebenen für das Beispiel ... 117
4.7 ... scikit-learn-kompatibler Estimator ... 120
4.8 ... scikit-learn-Perceptron-Estimator ... 127
4.9 ... Adaline ... 129
4.10 ... Zusammenfassung ... 139
4.11 ... Referenzen ... 141
5. Mehrschichtige neuronale Netze ... 143
5.1 ... Ein echtes Problem ... 143
5.2 ... XOR kann man lösen ... 145
5.3 ... Vorbereitungen für den Start ... 150
5.4 ... Der Plan für die Umsetzung ... 152
5.5 ... Das Setup ('class') ... 153
5.6 ... Die Initialisierung ('__init__') ... 155
5.7 ... Was für zwischendurch ('print') ... 158
5.8 ... Die Auswertung ('predict') ... 159
5.9 ... Die Verwendung ... 161
5.10 ... Zusammenfassung ... 162
6. Lernen im mehrschichtigen Netz ... 163
6.1 ... Wie misst man einen Fehler? ... 163
6.2 ... Gradientenabstieg an einem Beispiel ... 165
6.3 ... Ein Netz aus sigmoiden Neuronen ... 174
6.4 ... Der coole Algorithmus mit Vorwärts-Delta und Rückwärts-Propagation ... 176
6.5 ... Ein fit-Durchlauf ... 189
6.6 ... Zusammenfassung ... 198
6.7 ... Referenz ... 198
7. Beispiele für tiefe neuronale Netze ... 199
7.1 ... Convolutional Neural Networks ... 199
7.2 ... Transformer Neural Networks ... 216
7.3 ... Das Optimierungsverfahren ... 226
7.4 ... Overfitting verhindern ... 228
7.5 ... Zusammenfassung ... 230
7.6 ... Referenzen ... 231
8. Programmierung von Deep Neural Networks mit TensorFlow 2 ... 233
8.1 ... Convolutional Networks zur Handschriftenerkennung ... 233
8.2 ... Transfer Learning mit Convolutional Neural Networks ... 249
8.3 ... Transfer Learning mit Transformer Neural Networks ... 259
8.4 ... Zusammenfassung ... 264
8.5 ... Referenzen ... 265
TEIL II. Deep Dive ... 267
9. Vom Hirn zum Netz ... 269
9.1 ... Ihr Gehirn in Aktion ... 270
9.2 ... Das Nervensystem ... 270
9.3 ... Das Gehirn ... 271
9.4 ... Neuronen und Gliazellen ... 274
9.5 ... Eine Übertragung im Detail ... 276
9.6 ... Darstellung von Zellen und Netzen ... 279
9.7 ... Zusammenfassung ... 280
9.8 ... Referenzen ... 281
10. Die Evolution der künstlichen neuronalen Netze ... 283
10.1 ... Die 1940er-Jahre ... 284
10.2 ... Die 1950er-Jahre ... 286
10.3 ... Die 1960er-Jahre ... 288
10.4 ... Die 1970er-Jahre ... 288
10.5 ... Die 1980er-Jahre ... 289
10.6 ... Die 1990er-Jahre ... 303
10.7 ... Die 2000er-Jahre ... 303
10.8 ... Die 2010er-Jahre ... 304
10.9 ... Zusammenfassung ... 307
10.10 ... Referenzen ... 307
11. Der Machine-Learning-Prozess ... 309
11.1 ... Das CRISP-DM-Modell ... 309
11.2 ... Ethische und rechtliche Aspekte ... 313
11.3 ... Feature Engineering ... 324
11.4 ... Zusammenfassung ... 353
11.5 ... Referenzen ... 354
12. Lernverfahren ... 355
12.1 ... Lernstrategien ... 355
12.2 ... Werkzeuge ... 384
12.3 ... Zusammenfassung ... 389
12.4 ... Referenzen ... 390
13. Anwendungsbereiche und Praxisbeispiele ... 391
13.1 ... Warmup ... 391
13.2 ... Bildklassifikation ... 394
13.3 ... Erträumte Bilder ... 415
13.4 ... Deployment mit vortrainierten Netzen ... 426
13.5 ... Zusammenfassung ... 430
13.6 ... Referenzen ... 431
Anhang ... 433
A ... Python kompakt ... 435
B ... Mathematik kompakt ... 465
C ... TensorFlow 2 und Keras ... 485
Index ... 497