24,99 €
Algorithmen für künstliches Lernen verstehen
Maschinelles Lernen ist eines der wichtigsten Teilgebiete der künstlichen Intelligenz und das Verstehen und Entwickeln von passenden Algorithmen bleibt die große Herausforderung. Dieses Buch bietet einen außergewöhnlich umfassenden Überblick über die neuesten Algorithmen und die bereits bewährten Verfahren. Jörn Fischer beschreibt nicht nur deren Funktionsweise, sondern gibt für alle Bereiche verständliche Beispiele, die detailliert beschrieben und leicht nachvollziehbar sind. Außerdem werden hilfreiche Methoden zur Fehlersuche und -beseitigung an die Hand gegeben.
Sie erfahren
Sie lesen das E-Book in den Legimi-Apps auf:
Maschinelles Lernen für Dummies
Hill-Climbing und Simulated Annealing sind beides heuristische Optimierungsalgorithmen, die zur Lösung komplexer Probleme eingesetzt werden. Zu den Hauptvorteilen dieser Verfahren gehören ihre Einfachheit – die Fitnessfunktion muss nicht unbedingt abgeleitet werden können – sowie ihre Fähigkeit, mit relativ wenigen Bewertungen schnell lokale Optima zu finden. Außerdem können sie mit nicht linearen und diskreten Funktionen umgehen, ohne dass Vorkenntnisse über diese erforderlich sind.
Genetische Algorithmen und Evolutionäre Strategien sind leistungsstarke Optimierungstechniken, die gute Lösungen für komplexe Probleme mit vielen Variablen finden können. Diese Methoden verwenden einen populationsbasierten Ansatz, bei dem jedes Individuum nach seiner Fähigkeit, das Problem zu lösen, bewertet und dann kombiniert wird, um eine optimale Lösung zu finden. Sie können mit einer hohen Dimensionalität und nicht linearen Funktionen umgehen, ohne dass das zu lösende System im Detail bekannt sein oder die Ableitung der Fitnessfunktion gebildet werden muss. Außerdem sind genetische Algorithmen aufgrund ihres stochastischen Charakters robust gegenüber Rauschen, sodass sie auch bei verrauschten Daten gute Lösungen finden können.
Neuronale Netze haben mehrere Vorteile, die sie zu einem leistungsstarken Werkzeug für maschinelle Lernanwendungen machen. Erstens sind sie in der Lage, aus Daten zu lernen und Muster, Merkmale oder Beziehungen zwischen Variablen zu erkennen, um daraus eine Vorhersage oder Klassifikation zu generieren. Zweitens besitzen neuronale Netze die Fähigkeit, gut zu verallgemeinern. Das ist besonders vorteilhaft, wenn es um komplexe Probleme geht, für die es nicht immer nur eine Lösung gibt, die in allen Fällen funktioniert. Je tiefer die Netzwerkarchitektur ist (Deep Learning), desto abstrakter können die gefundenen Merkmale sein, die zur richtigen Ausgabe führen und umso komplexer können die Aufgaben sein, die ein neuronales Netz ausführt.
Reinforcement Learning ist eine hilfreiche Lernmethode, weil sie aus spärlichen oder verrauschten Feedback-Daten lernen kann. Hier ist keine Kennzeichnung erforderlich. Es findet auch Lösungen für das Verhalten in gegebenen Umgebungen, indem es nur Versuch und Irrtum einsetzt. Reinforcement Learning wird noch effizienter, wenn neuronale Netze kombiniert werden, wie beim Deep Reinfocement Learning (DRL). Hilfreich ist auch ein Modell der Umgebung, sodass der Algorithmus auch offline lernen kann.
Erklärbare künstliche Intelligenz (Explainable Artificial Intelligence, kurz XAI) ist ein Forschungsgebiet, das sich mit der Entwicklung von Algorithmen und Systemen zur Interpretation von Entscheidungen beschäftigt, die von Modellen der künstlichen Intelligenz getroffen werden. Dies hilft den Nutzern zu verstehen, warum das Modell zu einer bestimmten Schlussfolgerung gekommen ist. So können sie den Ergebnissen eher vertrauen und mögliche Fehler in Entscheidungsprozessen besser erkennen.
Große Sprachmodelle (englisch: Large Language Models, kurz LLMs) werden zunehmends mithilfe von Transformer-Modellen realisiert. Transformer-Modelle sind neuronale Netzarchitekturen, die für Aufgaben der Verarbeitung natürlicher Sprache wie maschinelle Übersetzung, Frage-Antwort-Systeme oder Textzusammenfassung verwendet werden. Sie nutzen einen Mechanismus der Selbstaufmerksamkeit, um weitreichende Abhängigkeiten zwischen Wörtern in der Eingabesequenz zu erfassen, wodurch sie im Vergleich zu traditionellen neuronalen Netzen wie Faltungsnetzen komplexe sprachliche Strukturen besser verarbeiten und semantische Merkmale von Sätzen auf höherer Ebene verstehen können. Transformer-Modelle bestehen aus mehreren Schichten, von denen jede mehrere Aufmerksamkeitsköpfe enthält. Damit ist es den Transformer Netzen möglich, sich auf Beziehungen unterschiedlichen Inhalts zu konzentrieren und sehr gute wahrscheinlichkeitsbasierte Vorhersagen für die nachfolgenden Tokens (Worte oder Teilworte) zu machen.
Maschinelles Lernen für Dummies
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
1. Auflage 2024
© 2024 Wiley-VCH GmbH, Boschstraße 12, 69469 Weinheim, Germany
All rights reserved including the right of reproduction in whole or in part in any form. This book published by arrangement with John Wiley and Sons, Inc.
Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Dieses Buch wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.
Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.
Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.
Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.
Coverfoto: Gheorghita – stock.adobe.comKorrektur: Isolde Kommer
Print ISBN: 978-3-527-72055-2ePub ISBN: 978-3-527-84184-4
Prof. Dr. Jörn Fischer lehrt und forscht in der Informatik an der Hochschule Mannheim. Sein Interesse für neuronale Netze und maschinelles Lernen geht zurück bis in die frühen 1990er-Jahre. Nach dem Studium der Physik an der Westfälischen Wilhelms-Universität Münster arbeitete er im Bereich der Spracherkennung und promovierte auf dem Gebiet selbstlernender Roboter. Seit 2010 hält er Vorlesungen zum Thema maschinelles Lernen und begleitet die Umsetzung von Algorithmen für zahlreiche Projekte.
Dieses Buch widme ich meinen wundervollen Töchtern Lilly und Ronja.
Vor allem möchte ich mich ganz herzlich bei meiner Familie bedanken, die mich durchgängig mental und organisatorisch unterstützt hat. Mir Zeit freigeschaufelt, Mut zugesprochen, mich in »weltlichen Dingen« unterstützt, mir Rede und Antwort gestanden, Rücksicht genommen hat – eben alles, was man sich von einer Familie wünschen kann. Meiner Tochter Ronja danke ich zudem für ihre sorgfältige Prüfung der Bilder auf Fehler, Unsymmetrien und unpassende Schriftgrößen.
Ein besonderer Dank geht an meine Mutter, die mit konsequentem und kritischem Blick alle Texte durchgesehen und korrigiert hat. Ein Dankeschön auch an meine Schwester Petra, die mich laufend mit aktuellem Material und guten Tipps versorgt hat.
Ein herzlicher Dank geht an Prof. Dr. Ivo Wolf und Prof. Dr. Kai Eckert für ihre fachliche Expertise, ihre wertvollen Kommentare und anregenden Diskussionen. Ein großer Dank geht auch an das Lektorat von Wiley für die weitreichende und unkomplizierte Unterstützung. Schließlich danke ich all jenen, mit denen ich während meiner wissenschaftlichen Laufbahn intensiv diskutieren durfte, die mich inspiriert und weiter gebracht haben, insbesondere Ralph Breithaupt, Dr. Mathias Bode, Prof. Dr. Herbert Jäger, Prof. Dr. Frank Pasemann, Prof. Dr. Thomas Ihme und vielen weiteren.
Cover
Titelblatt
Impressum
Über den Autor
Widmung
Danksagung
Inhaltsverzeichnis
Einleitung
Über dieses Buch
Wie Sie dieses Buch verwenden
Törichte Annahmen über die Leser
Wie dieses Buch aufgebaut ist
Symbole, die in diesem Buch verwendet werden
Über das Buch hinaus
Wie geht es weiter?
Teil I: Einführung ins Maschinelle Lernen
Kapitel 1: Die Welt der KI
Was ist eigentlich maschinelles Lernen
Lernen im Kontext des maschinellen Lernens
Kapitel 2: Ein kleiner Mathe-Exkurs
Vektoren und Matrizen
Analysis
Statistische Größen
Über Fixpunkte, Oszillatoren und Chaos
Kapitel 3: Python-Grundlagen
Was wir noch brauchen
Grundlagen
NumPy für Vektoren und Matrizen
Matplotlib für Graphen
PyGame zur Visualisierung
Tensorflow Keras für neuronale Netze
Scikit-learn für maschinelles Lernen
Kapitel 4: Das Wichtigste: die Daten
Daten sammeln und aufbereiten
Auswertung und Visualisierung
Auswahl von Merkmalen
Heatmap
Teil II: Grundlegende Optimierungs- und Lernalgorithmen
Kapitel 5: Einfach besser werden
Immer bergauf – Hill Climbing
Abkühlung schadet nicht – Simulated Annealing
Fluch der Dimensionen
Kapitel 6: Natürlich – künstliche Evolution
Aus der Biologie lernen
Genetische Algorithmen
Evolutionäre Strategien
Kapitel 7: Clustering
k-Means-Algorithmus
Hierarchisches Clustering
DBSCAN
Kapitel 8: Klassifikation
k-Nearest Neighbor
Support Vector Machines
Der Kernel-Trick
Entscheidungsbäume
Random Forest
Multinomial-Naive-Bayes-Klassifikator
Kapitel 9: Regression
Lineare Regression
Lasso-Regression
Ridge-Regression
Polynomiale Regression
Teil III: Neuronale Netze
Kapitel 10: Und was ist mit neuronalen Netzen?
Ein kleiner Exkurs: Das biologische Vorbild
Das biologische Neuron
Künstliche Neuronen und was sie können
Der Fehler fließt durchs Netz
Visualisierung
Kapitel 11: Tiefe Netze
Von Restricted Boltzman Machines zu Deep Belief Networks
Autoencoder
Faltungsnetzwerke (CNN)
Layer-Normalisierung
Transferlernen
Natürliche Sprachverarbeitung
Transformer
Kapitel 12: Generative Netze
Generative Adversarial Networks
Variational Autoencoder
Diffusionsmodelle
Kapitel 13: Rückgekoppelte Netze
Hopfield
Echo-State-Netze
Rückgekoppelte Netze und Eigenwerte
LSTM
GRU
Dualität: Ausgabe- und Gewichtsraum
Kapitel 14: Neuronale Netze erklärbar
Den Durchblick behalten
Den Durchblick bekommen
Teil IV: Verstärkendes Lernen
Kapitel 15: Reinforcement Learning
Q-Learning
SARSA
Deterministisches Q-Learning
Experience Replay
Lernen mit Modell
Kapitel 16: Reinforcement Learning kombiniert
Neuronales Q-Learning – eine Implementierung
Deep Reinforcement Learning
AlphaGo Zero
Kapitel 17: Ein kleiner Blick in die Zukunft
Intrinsische Motivation
Abstraktion
Träumen
Bewusstsein
AGI – Chancen und Risiken
Teil V: Der Top-Ten-Teil
Kapitel 18: Zehn Tipps, damit es funktioniert
Den lernenden Teil vom Problem trennen
Zeitliche Reihenfolge beachten
Zahl der nötigen Durchläufe abschätzen
Initialisierung beachten
Parameter optimieren
Daten visualisieren
Leichten Spezialfall durchspielen
Problem vereinfachen
Vielfach erprobte Bibliotheken nutzen
Nicht aufgeben
Kapitel 19: Zehn Kategorien für die Anwendung
Parameter optimieren
Daten klassifizieren
Daten gruppieren
Daten ergänzen
Daten rekonstruieren
Daten vorhersagen
Anomalien erkennen
Empfehlungen aussprechen
Daten in weniger Dimensionen darstellen
Entscheidungen fällen
Literaturverzeichnis
Abbildungsverzeichnis
Stichwortverzeichnis
End User License Agreement
Kapitel 2
Tabelle 2.1: Die Ableitungsregeln und Ableitungen ausgewählter Funktionen.
Kapitel 1
Abbildung 1.1: Die Abbildung bietet einen groben Überblick über die...
Kapitel 2
Abbildung 2.1: Vektoren werden als Richtungspfeile dargestellt. In dieser Abbildu...
Abbildung 2.2: Zu sehen ist die ReLU-Funktion und deren Ableitung. Da die Funktio...
Abbildung 2.3: Hier wird die Sigmoidfunktion mit der zugehörigen Ableitung ge...
Abbildung 2.4: Die Linearisierung der Tangens-Hyperbolicus-Funktion um den Urspru...
Abbildung 2.5: Der Graph zeigt die Funktion und deren Taylorentwicklung um de...
Abbildung 2.6: Die Abbildung zeigt zwei Gauß'sche Wahrscheinlichkeitsverteilungen...
Abbildung 2.7: Das Potenzial: . Eine Murmelkugel bewegt sich bergab, bis sie im ...
Abbildung 2.8: Gemäß (2.24) ergibt sich die Veränderung der Koordinate in Abhän...
Kapitel 3
Abbildung 3.1: Die Abbildung zeigt das Diagram einer Sinusfunktion, wie es von de...
Abbildung 3.2: Die Abbildung zeigt, dass das Modell über 50 Epochen den Modellfeh...
Kapitel 4
Abbildung 4.1 Eine Konfusionsmatrix zeigt Fälle von falscher Klassifikation. Die...
Abbildung 4.2 Ein Beispiel einer Heatmap, die mit dem Code in Listing 4.2 erzeug...
Kapitel 5
Abbildung 5.1: Beispiel für den Ablauf eines Hill-Climbing-Algorithmus: Durch Tau...
Abbildung 5.2: Von den 10.000 Schritten, die der Hill-Climbing-Algorithmus macht,...
Abbildung 5.3: Der Hill-Climbing-Algorithmus kann in einem nicht so guten Nebenop...
Abbildung 5.4: Schauen Sie sich die Exponentialfunktion näher an, dann sehen Sie,...
Abbildung 5.5: Der Simulated-Annealing-Algorithmus macht sehr viel mehr Vertausch...
Abbildung 5.6: Je höher die Dimension eines Parameterraums, desto stärker steigt ...
Abbildung 5.7: Wenn Sie eine eindimensionale Strecke und einen dreidimensionalen ...
Kapitel 6
Abbildung 6.1: Vereinfachtes Schema: Durch Rekombination und Crossing-over werden...
Abbildung 6.2: Die DNA-Doppelhelix mit ihren Basenpaaren wird aufgespalten und di...
Abbildung 6.3: Vier unterschiedlich codierte Parameter auf einem Gen: Die 22 wird...
Abbildung 6.4: Die Gene des Individuums A und des Individuums B werden am Crossov...
Abbildung 6.5: Bei der Roulette-Selektion generiert man eine Zufallszahl . Dann ...
Abbildung 6.6: Der genetische Algorithmus mit vereinfachter Rank Selection optimi...
Abbildung 6.7: Die Rosenbrock-Funktion ist ein Benchmark für Optimierungsalgorith...
Kapitel 7
Abbildung 7.1: Der k-Means-Algorithmus findet meistens die Clusterzentren, solang...
Abbildung 7.2: Das Dendrogramm zeigt auf der x-Achse die Datenpunkte und auf der ...
Abbildung 7.3: Der Rauschpunkt wird über den definierten Abstand (siehe Kreisra...
Abbildung 7.4: Mit dem DBSCAN-Clustering findet man auch Cluster, die nicht kugel...
Kapitel 8
Abbildung 8.1: Das Zwei-Spiralen-Problem ist ein Klassifikationsproblem, das für ...
Abbildung 8.2: Der Graph zeigt die Datenpunkte als Kreuze und Kreise, die Trennun...
Abbildung 8.3: Diesmal zeigt der Graph Datenpunkte, die nicht so einfach linear v...
Abbildung 8.4: Der Entscheidungsbaum wird mitsamt der Information über die Gini-I...
Kapitel 9
Abbildung 9.1: Hier wird ein Polynom zweiten Grades genutzt, um die künstlich erz...
Kapitel 10
Abbildung 10.1: Biologische Neuronen, Zeichnung nach [Ramon y Cajal, 1955].
Abbildung 10.2: Eine Pyramidenzelle nach [Ramon y Cajal, 1955].
Abbildung 10.3: Um die Ausgabe eines Neurons zu betrachten, gibt es die Möglichke...
Abbildung 10.4: Die unterschiedlichen Transferfunktionen bringen verschiedene Eig...
Abbildung 10.5: Bei einem Neuron mit linearer Transferfunkion ist die Funktion de...
Abbildung 10.6: Man sieht die Ausgabe des Neurons für eine AND-Funktion, die nur ...
Abbildung 10.7: Die Fehleroberfläche mit den auf die --Ebene projizierten Höhen...
Abbildung 10.8: Bei der k-fachen Kreuzvalidierung werden die Daten in k Datenpake...
Abbildung 10.9: Hinton-Diagramme zeigen eine Gewichtsmatrix eines neuronalen Netz...
Abbildung 10.10: In einem Hinton-Diagramm, bei dem alle Neuronentypen berücksicht...
Abbildung 10.11: Hier sieht man, dass unterschiedliche Ziffern mit dem t-SNE-Algo...
Kapitel 11
Abbildung 11.1: Beim Contrastive Divergence nutzt man eine sichtbare (unten) und ...
Abbildung 11.2: Zu sehen ist ein Autoencoder mit fünf Schichten, eine Eingangssch...
Abbildung 11.3: Oben die Reihe zeigt einige Originalbilder des Fashion-MNIST-Date...
Abbildung 11.4: Eine 3x3-Filtermaske wird über das Bild geschoben. Jeder Filterko...
Abbildung 11.5: Beim Pooling wird eine Maske über den Merkmalskarten verschoben, ...
Abbildung 11.6: Das Faltungsnetz besteht aus zwei Faltungsschichten (convolutiona...
Abbildung 11.7: Die Klassifikation von MNIST-Ziffern gilt als Einstiegsbeispiel f...
Abbildung 11.8: Die Abbildung zeigt die Genauigkeit (Accuracy) der korrekten Klas...
Abbildung 11.9: Die Abbildung zeigt den Verlust (negative Log-Likelihood). Ein kl...
Abbildung 11.10: Das Skip-Gram-Modell hat zum Ziel, für jedes Wort einen Wortvekt...
Abbildung 11.11: Zu sehen ist die Transformer-Modell-Architektur gemäß der Abbild...
Abbildung 11.12: Ein kleines Transformer-Modell mit Positional Encoding, maskiert...
Kapitel 12
Abbildung 12.1: Die Abbildung zeigt die Architektur eines GAN-Netzwerkes. Der Dis...
Abbildung 12.2: Die vom GAN-Netzwerk generierten MNIST-Ziffern. Am Eingang des Ge...
Abbildung 12.3: Der latente Raum des Beispiel-VAE hat nur zwei Dimensionen. Hier ...
Abbildung 12.4: Da der latente Raum in diesem Beispiel nur zwei Dimensionen hat (...
Abbildung 12.5: Beim U-Net wird das Eingangsbild in mehreren Convolutional- und P...
Abbildung 12.6: Oben sind verrauschte Testabbildungen zu sehen, die nach dem Entr...
Kapitel 13
Abbildung 13.1: Im Hopfield-Netzwerk ist jedes Neuron mit jedem anderen Neuron ve...
Abbildung 13.2: Dies ist ein Echo-State-Netzwerk mit Reservoir. Außer den Ausgang...
Abbildung 13.3: Dies ist der Mackey-Glass-Attraktor, eines der typischen Beispiel...
Abbildung 13.4: Eine LSTM-Memory-Zelle enthält ein lineares rückgekoppeltes Neuro...
Abbildung 13.5: Hier wird das Entfalten des Netzes in der Zeit am Beispiel eines ...
Abbildung 13.6: Das Beispiel zeigt einen erfundenen Börsenkurs, der von fünf LSTM...
Abbildung 13.7: Die durchgezogene Line zeigt die zu approximierenden Funktionen
Kapitel 14
Abbildung 14.1: Die Abbildung zeigt die Wichtigkeit der einzelnen Variablen, von ...
Abbildung 14.2: Die Abbildung zeigt die Bedeutung der einzelnen Features für die ...
Kapitel 15
Abbildung 15.1: Der Agent wirkt mit seiner Aktion auf die Umgebung ein und die ...
Abbildung 15.2: Das dargestellte Labyrinth hat weniger als Zustände. Ein Agent ...
Abbildung 15.3: Die gemittelte Belohnung. wird pro Schleifendurchlauf um verk...
Kapitel 16
Abbildung 16.1: Die vier Phasen einer Iteration des MCTS-Algorithmus, grau oder w...
Kapitel 17
Abbildung 17.1: Eine Diskussion mit Alpaca-Electron, einem LLaMA Sprachmodell der...
Cover
Titelblatt
Impressum
Über den Autor
Inhaltsverzeichnis
Einleitung
Fangen Sie an zu lesen
Literaturverzeichnis
Abbildungsverzeichnis
Stichwortverzeichnis
End User License Agreement
1
2
5
6
7
17
18
19
20
21
23
24
25
26
27
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
115
116
117
118
119
120
121
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
259
260
261
262
263
264
265
266
267
268
269
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
313
314
315
316
317
318
319
320
321
322
323
324
325
327
328
329
330
331
332
333
334
335
337
338
339
340
341
342
343
Willkommen in der Welt des maschinellen Lernens. Dieses Buch führt Sie durch eine Technologie, die in den letzten Jahren immer mehr an Bedeutung gewonnen und zahlreiche Branchen revolutioniert hat. Das maschinelle Lernen hat nicht nur die Art und Weise verändert, wie Computer Daten verarbeiten, sondern auch, wie wir über Automatisierung und Datenanalyse nachdenken.
Einige der beeindruckenden Errungenschaften des maschinellen Lernens sind beispielsweise selbstfahrende Autos, die sich sicher durch den Verkehr bewegen, und Spracherkennungssysteme, die mit fast menschenähnlicher Präzision funktionieren. Maschinelles Lernen steckt hinter Empfehlungssystemen, die uns bei der Auswahl von Filmen, Büchern oder Produkten unterstützen, und in fortschrittlichen medizinischen Diagnosesystemen, die Ärzten helfen, Krankheiten mit bisher unerreichter Genauigkeit zu erkennen.
Die Methoden und Algorithmen, die dabei zum Einsatz kommen, sind hochinteressant und in vielen Fällen gerade erst entwickelt. In kaum einem Bereich der Wissenschaft wird so intensiv geforscht wie im Bereich des maschinellen Lernens. Umso größer ist die Herausforderung, die Vielfalt der maschinellen Lernverfahren in einem Buch zusammenzufassen.
Es gibt zahlreiche Bücher über maschinelles Lernen. Warum dann noch ein weiteres Buch?
Ich beschäftige mich nun seit mehr als 30 Jahren mit dem Thema des maschinellen Lernens und bin oftmals selbst in Buchläden gewesen, um Bücher zu finden, die mir neue Einblicke in das Thema verschaffen. Gewünscht habe ich mir damals wie heute ein Buch, welches das große Spektrum der Algorithmen maschinellen Lernens auf verständliche Weise beschreibt und jeden dieser Algorithmen an einem Beispielcode erklärt. Das Ganze mit vielen Bildern bespickt, unter denen man lesen kann, was im Bild zu sehen ist und wie alles funktioniert. Irgendwann habe ich mich dann dazu entschlossen, dieses Buch selbst zu schreiben. Das Ergebnis halten Sie in Händen.
Das Buch hat den Anspruch, sowohl die wichtigsten und besten »alt-bekannten« Lernalgorithmen als auch die eindrucksvollen neueren Errungenschaften wie Deep Learning, GAN-Netze, Transformer-Netze und Deep Reinforcement Learning verständlich zu erklären. Dabei werden Themen wie die rückgekoppelten neuronalen Netze nicht ausgelassen. Um klar und verständlich zu sein, werden alle Kernideen detailliert beschrieben, in Abbildungen visualisiert und in Form kommentierter Beispiel-Quellcodes bereitgestellt.
Sie erfahren, welche Lernverfahren transparent und erklärbar sind und mit welchen Methoden Sie komplexere Modelle besser verstehen können.
Sie lernen, wie Sie die Lernverfahren implementieren, ohne abstrakte Bibliotheken dafür verwenden zu müssen. Falls doch Bibliotheken notwendig sind, weil eine Implementierung den Rahmen dieses Buches sprengen würde, werden sie in diesem Buch an einem Beispiel erklärt.
Die Hauptaufgabe dieses Buches ist, Sie in die Welt des maschinellen Lernens einzuführen, Ihnen zu zeigen, wie Sie die beschriebenen Algorithmen in die Praxis umsetzen.
Die Funktionsweise aller Lernalgorithmen wird Schritt für Schritt erklärt. Der Ablauf wird anhand zahlreicher Abbildungen veranschaulicht und noch mal beschrieben. Die neuen Erkenntnisse werden gleich in kleinen Codebeispielen umgesetzt. Die Kommentare im Quellcode helfen, die Einzelschritte besser zu verstehen.
Lesen können Sie dieses Buch dennoch auf vielfältige Weise. Falls Sie den Algorithmus schon kennen, können Sie zum Beispiel den Text unter den Abbildungen lesen oder den Quellcode mitsamt Kommentaren inspizieren. Falls dann doch noch Fragen aufkommen, können Sie nachträglich immer noch den Text dazu lesen.
Ein wenig neugierig dürfen Sie gern sein, denn es warten spannende Erkenntnisse der letzten Jahrzehnte auf Sie.
Sie beschäftigen sich gern mit Computern, können Python und zugehörige Bibliotheken installieren? Sie haben schon selber Programme entwickelt? Graben gern tiefer, um Dinge wirklich zu verstehen? Vor ein paar mathematischen Formeln, die auch noch im Detail erklärt werden, rennen Sie nicht gleich davon? Prima! Dann ist das hier genau das Richtige für Sie.
Das Buch ist weder mathematiklastig, denn die Worte Lemma, Satz oder Beweis sind kaum zu finden, noch ist es oberflächlich, denn es ist nicht einfach die Neuro-Bibliothek XY, die mit dem Befehl NeuroBib.DeepNet.solve() alle Probleme wie von Zauberhand löst. Es hat den Anspruch, die Kernideen verständlich zu veranschaulichen, sodass Sie das Ganze im Detail verstehen und selber implementieren können. Wenn Sie das schaffen, haben Sie es wirklich verstanden.
Das Buch ist in fünf Abschnitte unterteilt, die viele Kapitel und Unterkapitel enthalten. Sie können die meisten dieser Abschnitte separat lesen. Wenn jedoch Informationen aus früheren Abschnitten benötigt werden, müssen Sie vielleicht doch ab und zu mal zurückblättern.
Teil I ist der Grundlagenteil. Hier erfahren Sie in Kapitel 1, was maschinelles Lernen ausmacht und wie man es in die Welt der KI einsortieren kann. Weiter geht es in Kapitel 2 mit einem kleinen Exkurs in die Mathematik, in dem Vektoren und Matrizen, Analysis und Statistik wieder ins Gedächtnis gerufen werden. Dann kommen in Kapitel 3 ein paar Python-Grundlagen und eine kurze Einführung in die genutzen Python-Bibliotheken. Am Ende des Grundlagenteils wird noch in Kapitel 4 erklärt, wie Sie Daten sammeln, aufbereiten und visualisieren, um eventuell eine Merkmalsauswahl zu treffen.
Teil II behandelt klassische Optimierungs- und Lernverfahren. Kapitel 5 beginnt mit den Algorithmen Hill Climbing und Simulated Annealing. Weiter geht es in Kapitel 6 mit genetischen Algorithmen und evolutionären Strategien. Kapitel 7 ist den verschiedenen Clusteringverfahren gewidmet. Von k-Means Clustering über hierarchische Clusterverfahren bis hin zu DBSCAN werden alle Algorithmen detailliert beschrieben und anhand von Beispielen veranschaulicht. In Kapitel 8 werden verschiedene Klassifikationsverfahren beschrieben, darunter k-Nearest Neighbor, Support Vector Machines, Entscheidungsbäume inklusive Random Forest, und als Beispiel für ein statistisches Verfahren der Multinomial Naiv Bayes Classifier. Kapitel 9 schließt diesen Teil II mit Regressionsverfahren ab, beginnend mit der linearen Regression, der Lasso-Regression, der Ridge-Regression und schließlich der polynomialen Regression.
Dann kommt der dritte Teil, in dem die neuronalen Netze besprochen werden. In Kapitel 10 lernen Sie, wie Backpropagation funktioniert und was Sie tun können, damit alles noch effizienter läuft. In Kapitel 11 werden dann die tiefen neuronalen Netze eingeführt. Hier gibt es fortgeschrittene Methoden zur Bildklassifikation wie die Convolutional Neural Networks und die Verarbeitung natürlicher Sprache. Es gibt auch ein Beispiel für einen kleinen Transformer in 100 Codezeilen, der ähnlich wie ChatGPT Text generiert.
Kapitel 12 zeigt, wie realistisch aussehende Daten mit generativen neuronalen Netzen erzeugt werden können. Dabei wird vor allem auf Generative Adversarial Networks und Variational Autoencoder eingegangen. Zudem werden die in der Bildgenerierung verwendeten Diffusionsmodelle erklärt. Es folgt in Kapitel 13 die Königsdisziplin, die rückgekoppelten neuronalen Netze. Damit ist es möglich, Zeitreihen zu verarbeiten und zum Beispiel Zeitreihenprognosen durchzuführen. Um nicht ganz den Durchblick zu verlieren, wird im darauffolgenden Kapitel 14 gezeigt, wie Sie neuronale Netze erklärbar machen.
Im Teil IV folgt das verstärkende Lernen. Kapitel 15 fängt mit dem klassische Q-Learning und SARSA an. Danach in Kapitel 16 werden Kombinationen mit tiefen neuronalen Netzen beschrieben. Kapitel 17 ist ein persönlicher Blick in die Glaskugel, ein Blick in die Zukunft, über den Tellerrand und was da noch so kommen könnte.
In diesem Abschnitt erhalten Sie, wie in den anderen »für Dummies«-Büchern, zehn wertvolle Tipps. In Kapitel 18 erfahren Sie in zehn Schritten, wie Sie Ihre Algorithmen zum Laufen bringen. Außerdem wird in Kapitel 19 erklärt, welche Algorithmen für welche Aufgabe am besten geeignet sind.
Die folgenden Symbole am Seitenrand zeigen Ihnen wichtige Hinweise oder zusätzliche Informationen:
Tipps helfen Ihnen, schneller ans Ziel zu kommen. Viele Dinge können Sie zwar durch Ausprobieren herausfinden, aber wer möchte schon Zeit verschwenden, wenn Tipps da weiterhelfen?
Vorsicht, der Text neben diesem Symbol deutet darauf hin, dass sich hier leicht Fehler einschleichen können. Vermeiden Sie Fehler – lesen Sie, was hier steht.
Hier stehen Formeln und Zusammenhänge für mathematisch Interessierte. Diese sind hilfreich, die Lernalgorithmen im Detail zu verstehen und notwendig, wenn Sie sie von Grund auf selbst schreiben wollen.
Hier kommt ein Beispiel. Beispiele helfen, das eben Gelernte zu vertiefen und in der Umsetzung zu verstehen.
Da hier wichtige Inhalte zusammengefasst werden, sollten Sie den Text neben diesem Symbol aufmerksam lesen.
Sie tippen ungern seitenweise Codebeispiele ab? Gute Nachricht – der Quellcode der Programmbeispiele ist nachhaltig für Sie archiviert. Den finden Sie hier: https://wiley-vch.de/ISBN9783527720552.
Wenn Sie weitere Informationen über die beschriebenen Lernverfahren bekommen möchten, nutzen Sie die zitierte Literatur, Papers und Bücher.
Falls es doch die Programmiersprache Python ist, die Fragen offenlässt, finden Sie hier Hilfestellung im Netz:
https://www.python.org/doc/
https://www.w3schools.com/python/
Weiterführende Literatur zu den Python-Bibliotheken Numpy (für lineare Algebra), Matplotlib (um Graphen darzustellen), Tensorflow (für neuronale Netze) und Scikit-learn (für grundlegende maschinelle Lernarlgorithmen) finden Sie auf folgenden Webseiten:
https://numpy.org/doc/stable/
https://matplotlib.org/
https://www.tensorflow.org/api_docs/python/tf/keras
https://scikit-learn.org/stable/
Jetzt kann es losgehen! Die Kapitel 1 bis 3 geben neben den Grundlagen des maschinellen Lernens auch einen kleinen Exkurs in die Mathematik sowie eine kurze Einführung in Python, inklusive der genutzten Frameworks.
Sie kennen sich schon bestens aus und möchten direkt durchstarten? Dann beginnen Sie direkt mit Teil II oder III.
Viel Erfolg bei der Reise in die Welt des maschinellen Lernens.
Teil I
IN DIESEM TEIL …
lernen Sie die Grundlagen des maschinellen Lernens kennen.wiederholen Sie die eine oder andere mathematische Grundlage.erfahren Sie, wie Sie mit der Programmiersprache Python und den dazugehörigen Frameworks arbeiten.lernen Sie, Methoden der Merkmalsauswahl anzuwenden und Daten oder Ergebnisse zu visualisieren.Kapitel 1
IN DIESEM KAPITEL
wird eine Einführung in die Welt der künstlichen Intelligenz gegeben.wird das Lernen im Kontext des maschinellen Lernens erklärt.In heutiger Zeit sind es längst nicht mehr nur die großen Technologieunternehmen wie Google, Microsoft, Apple, Meta (Facebook) und Amazon, die in großem Ausmaß die Entwicklung und den Einsatz maschineller Lernverfahren vorantreiben. Es geht eine globale Welle durch die Industrie, die einen weltweiten Einsatz dieser wissenschaftlichen Erkenntnisse erzwingt. Viele Resultate sind allgegenwärtig. So funktionieren zum Beispiel die Spracherkennungsprogramme von Google, Microsoft und Baidu mit tiefen oder rückgekoppelten neuronalen Netzen, neuronale Algorithmen erkennen Verkehrsschilder zuverlässiger als der Mensch, auch gibt es neuronale Netze, die ganze Bildszenen beschreiben, und andere, die Bilder aufgrund von beschreibendem Text erzeugen. Die Firma Google hat eine KI entwickelt, die aufgrund des Videobildes lernt, über 50 Atari-Videospiele zu spielen. Doch nicht nur das! Sie hat auch AlphaGo Zero und Alpha Zero entwickelt, lernende Algorithmen, die Schach, Shogu und sogar GO auf übermenschlichem Niveau spielen. OpenAI hat zunächst mit DALLE, einer bildgenerierenden KI, die Aufmerksamkeit der Öffentlichkeit auf sich gezogen, um dann mit ChatGPT einen Durchbruch im Bereich der natürlichen Sprachverarbeitung, insbesondere der Chatbots, zu erzielen und der Öffentlichkeit zugänglich zu machen. ChatGPT schreibt Texte aller Art, bietet Unterhaltung, fasst Inhalte zusammen, kann sie vereinfachen, kann in diversen Sprachen programmieren und hält mit all dem die Welt in Atem.
Als maschinelles Lernen bezeichnet man eine Sammlung von Methoden in einem Teilgebiet der künstlichen Intelligenz. Die künstliche Intelligenz wird unterteilt in die klassische KI, dem mathematisch logischen Folgern beziehungsweise dem Planen und Suchen mittels Heuristiken, und in das maschinelle Lernen, ein Lernen aus Beispielen, mit seinen überwachten, unüberwachten und bestärkenden Lernalgorithmen. Einen Überblick, wie sich das maschinelle Lernen in die künstliche Intelligenz einordnen lässt, finden Sie in Abbildung 1.1.
Abbildung 1.1: Die Abbildung bietet einen groben Überblick über die unterschiedlichen Felder der künstlichen Intelligenz. In der Realität ist der Baum weitaus stärker verzweigt. Das bestärkende Lernen wird hier im Reinforcement Learning gut abgebildet. Überwachte und unüberwachte Lernverfahren finden sich vor allem bei den neuronalen Netzen. Ob überwacht oder unüberwacht hängt allerdings nicht notwendigerweise mit der Architektur des Netzes zusammen.
Bei überwachten Lernverfahren ist zu jeder Eingabe (oder Eingabesequenz) eine genaue Sollausgabe definiert. So möchte man beispielsweise, dass ein neuronales Netz bei jedem Bild einer Ziffer die dazugehörige Zahl als Ausgabe erlernt. Wird dem Netz zum Beispiel das Bild der Ziffer 5 als Eingabe gegeben, so soll am Ausgang das Neuron, welches die Fünf repräsentiert, einen möglichst hohen Wert ausgeben und damit das Bild als Fünf klassifizieren. Eine solche Aufgabe wird Klassifikation genannt. Bei anderen Aufgaben, wie zum Beispiel der Vorhersage von Börsenkursen, möchte man kontinuierliche Ausgabewerte erhalten. Dazu verwendet man Regressionsverfahren.
Unüberwachte Lernverfahren haben meist das Ziel, ähnliche Eingaben zusammenzufassen. Da gibt es Clusterverfahren, die Daten in Gruppen zusammenfassen. Andere unüberwachte Lernverfahren komprimieren die Eingabedaten. Als Vorverarbeitung zum überwachten Lernen können solche Algorithmen helfen, die Generalisierungsfähigkeit zu verbessern. So werden unter Umständen weniger Eingangsdaten benötigt, um die eigentliche Aufgabe erlernen zu können.
Beim bestärkenden Lernen, im Weiteren als Reinforcement Learning bezeichnet, dagegen ist es ein Agent, der seine Umgebung erkundet, der Aktionen ausführt und nur ab und zu Rückmeldung über eine positive oder negative Belohnung bekommt. Dabei versucht der Reinforcement Leaning Agent, seine Belohnung zu maximieren.
»Lernen tut weh.«, sagte mal mein guter Freund Ralph. Aber was kann er damit gemeint haben? Na ja, Lernen braucht eine Rückkopplung, ob eine Aktion oder eine Entscheidung, eine Klassifikation oder eine Vorhersage gut oder schlecht ist. In all den Lernalgorithmen gibt es Mechanismen, die vor allem bei negativer Rückkopplung eine Änderung hervorrufen. Wenn etwas schlecht klassifiziert oder vorhergesagt wird, muss eben etwas geschehen, dass es demnächst besser wird. Die Änderung ist dringend erforderlich, denn Schmerzen möchte jeder vermeiden. Darum ändern wir schnell etwas, bevor es später wieder weh tut.
Aber was ändert man eigentlich und wie?
Beim Lernen werden Variablen eines Modells oder Agenten so angepasst, dass danach aufgrund der Anpassung eine bessere Klassifizierung, Vorhersage oder Aktion gemacht werden kann.
Das »was« und »wie« hängt im Speziellen vom jeweiligen Lernalgorithmus ab. So wird beim Reinforcement Learning die Belohnungsvorhersage verändert. Beim neuronalen Netz sind es die Gewichte der Verbindungen zwischen den Neuronen und beim Optimierungsalgorithmus zum Beispiel die zu optimierenden Parameter.
Wenn etwas gut funktioniert, sind keine Änderungen notwendig. Es heißt in der Informatik schnell »Never touch a running system.«, also fasse niemals ein laufendes System an, weil es ja läuft und weil jede Änderung auch eine mögliche Verschlechterung bedeuten kann.
Da die Änderung der Modellvariablen eines Algorithmus meist auf mathematischen Berechnungen basiert, wird im folgenden Kapitel ein kurzer Exkurs, eine kleine Wiederholung des mathematischen Fundamentes eingeschoben. Wenn Sie sich in der Mathematik fit genug fühlen oder wenn Ihnen ein grobes Verständnis der Algorithmen reicht, können Sie den Teil auch überspringen. Im schlimmsten Fall blättern Sie einfach zurück und schauen den unverstandenen Teil noch mal nach.
Kapitel 2
IN DIESEM KAPITEL
wiederholen Sie Grundlagen der linearen Algebra.werden Analysis und Statistik erklärt.wird in die Begriffswelt der dynamischen Systeme eingeführt.Dies ist das zweite Kapitel und es beginnt gleich mit hartem Stoff: Mathematik. Wollen Sie sich das wirklich antun? Alternativ können Sie einfach unauffällig das Kapitel überspringen. Wenn Sie dann doch mal tiefer in die Materie einsteigen oder bestimmte Grundlagen wiederholen wollen, können Sie einfach zurückspulen und das nachschauen, was Sie brauchen, um die Inhalte zu verstehen.
Um das maschinelle Lernen in all seinen Tiefen verstehen zu können, ist die Mathematik allerdings ein wichtiges Werkzeug und umfasst unglaublich viele Teilgebiete:
Lineare Algebra: Grundlagen – rechnen mit Vektoren und Matrizen.
Analysis: das Differenzieren beziehungsweise das Bilden von Ableitungen.
Statistik: den Wahrscheinlichkeitsbegriff, Mittelwert und Varianz.
Theorie dynamischer Systeme: Begriffe wie Fixpunkte, Oszillatoren, Chaos.
All diese Teilgebiete werden hier im Zusammenhang mit den vorgestellten Optimierungsverfahren und Lernalgorithmen diskutiert. Einige Unterkapitel, wie zum Beispiel das über die Jacobimatrix oder das über das Bayes'sche Theorem, beziehen sich auf spezielle Lernverfahren, wie das der Echo-State-Netze oder des Multinomial-Naive-Bayes-Klassifikators, und sollten besser im Zusammenhang mit diesen Lernverfahren gelesen werden.
Auch wenn es manchmal unter Mathematikern verpönt ist, eine Darstellung eines Vektors als Pfeil ist einfach anschaulich und oftmals hilfreich, um die Operationen mit Vektoren besser verstehen zu können. Vektoren selbst definieren dabei eine Richtung oder manchmal auch einen Punkt im Raum (siehe Abbildung 2.1).
Abbildung 2.1: Vektoren werden als Richtungspfeile dargestellt. In dieser Abbildung sind sie als Spaltenvektoren beschrieben, wobei die erste Zahl die x-Koordinate und die zweite die y-Koordinate repräsentiert. Im dreidimensionalen Raum gibt es drei Koordinatenwerte im Spaltenvektor und im n-dimensionalen Raum n Werte.
Möchten Sie nun die Länge des Richtungsvektors wissen, so verwenden Sie den pythagoreischen Lehrsatz, der aus der Geometrie stammt. Allgemein berechnen Sie die Länge eines -dimensionalen Vektors als . Für einen Vektor im zweidimensionalen Raum berechnet man die Länge zum Beispiel so: . Wenn man einen solchen Vektor normieren, also auf die Länge eins festlegen möchte, muss man nur jede Koordinate des Vektors durch die Länge des Vektors teilen. Das ist für das Beispiel . Wenn Sie nun von diesem Vektor die Länge neu berechnen, so kommt genau 1 heraus. Übrigens spricht man bei der Länge eines Vektors auch von seinem Betrag.
Das komponentenweise Multiplizieren und dann Aufsummieren nennt man auch Skalarprodukt. Dazu ein kleines Beispiel:
Stehen zwei Vektoren aufeinander senkrecht, so ist ihr Skalarprodukt gleich null. Ein Beispiel für aufeinander senkrecht stehende Vektoren sind die Einheitsvektoren und . Ist der Winkel zwischen ihnen größer oder kleiner als , dann ist das Skalarprodukt ungleich null.
Sind zwei Vektoren und normiert, haben also die Länge 1, so ist das Skalarprodukt gleich der Cosinusähnlichkeit der beiden Vektoren.
Dabei ist (theta) der Winkel zwischen den beiden Vektoren und sie sind ähnlicher, je kleiner der Winkel zwischen den Vektoren ist. Ein Wert von bedeutet, dass die Vektoren in die gleiche Richtung zeigen (maximale Ähnlichkeit), ein Wert von bedeutet, dass die Vektoren orthogonal zueinander sind (keine Ähnlichkeit), und ein Wert von bedeutet, dass die Vektoren in genau entgegengesetzte Richtungen zeigen.
Jetzt wissen Sie, wie ein Vektor dargestellt wird, Sie können seine Länge berechnen und ihn normieren. Außerdem wissen Sie jetzt, wie man die Cosinusähnlichkeit zweier normierter Vektoren berechnen kann.
Was fehlt, ist eine Transformation, so etwas wie eine Drehung, Spiegelung, Stauchung und Dehnung zum Beispiel. Um diese Transformationen zu beschreiben, brauchen wir Matrizen. Unter einer Matrix versteht man eine Tabelle mit Zahlen. Um eine Transformation eines Vektors durchzuführen, multipliziert man die Abbildungsmatrix mit dem Vektor. Eine Matrix-Vektor-Multiplikation sieht zum Beispiel folgendermaßen aus:
Dafür kann man sich den Spaltenvektor um nach links gekippt vorstellen. In Gedanken legt man ihn jeweils über eine Zeile der Matrix, im Beispiel über . Jedes Element der Zeile wird dann mit dem darüberliegenden Element des Vektors multipliziert und die resultierenden Elemente werden in der Zeile aufsummiert. Das Ergebnis wird in den Ergebnisvektor auf die gleiche Zeilenhöhe wie die der Matrix geschrieben.
Nun, und wenn Sie möchten, dass der Ursprungsvektor erhalten bleibt, ohne gedreht, gestaucht, gestreckt oder sonst irgendwie transformiert zu werden, dann können Sie einfach die Einheitsmatrix verwenden. Die Einheitsmatrix besteht aus lauter Nullen, außer in der Diagonalen, da stehen Einsen.
Das Besondere an allen linearen Abbildungen ist, es lassen sich mehrere davon ganz einfach zu einer linearen Abbildung zusammenfassen. Aus einer Drehung und einer Spiegelung wird dann zum Beispiel eine Drehspiegelung. Dafür muss man die Matrizen der Abbildungen nur miteinander multiplizieren. Das geht im Grunde so, wie die Multiplikation einer Matrix mit einem Vektor, nur dass die zweite Matrix, mit der man die erste Matrix multipliziert, eben aus mehreren Spaltenvektoren besteht und deshalb das Ergebnis auch nicht ein einzelner Spaltenvektor ist, sondern mehrere Spaltenvektoren sind, die dann eine Ergebnismatrix bilden.
Bei nicht linearen Abbildungen – damit sind Abbildungen gemeint, die am Ende noch eine nicht lineare Funktion berechnen – ist das Zusammenfassen leider nicht so einfach möglich. Aber bleiben wir bei den linearen Abbildungen.
Zwei Vektoren, die in die gleiche Richtung zeigen, nennt man linear abhängig. Man kann den einen, durch ein Vielfaches des anderen ersetzen. Hat man eine Matrix von linear abhängigen Vektoren, so wird die Determinante gleich null. Für eine -Matrix berechnet man die Determinante mit folgender Formel:
Für ein Beispiel mit linear abhängigen Vektoren sieht das dann etwa so aus:
Multipliziert man die linke Spalte mit drei, so erhält man die rechte Spalte. Die Spalten sind voneinander abhängig und damit ist die Determinante gleich null. Die Anzahl der linear unabhängigen Vektoren einer Matrix nennt man Rang der Matrix. Determinanten höherdimensionaler Matrizen können Sie mit der Leibniz-Formel für Determinanten berechnen, auf die hier nicht näher eingegangen wird.
Um Boltzman Machines und rekurrente neuronale Netze besser verstehen zu können, müssen wir noch über die Eigenwerte und Eigenvektoren sprechen. Bei linearen Abbildungen gibt es manche Vektoren, die durch die Abbildung (Multiplikation mit der Matrix) die Richtung nicht ändern. Diese Vektoren nennt man Eigenvektoren der Matrix. Dabei wird allerdings die Länge des Vektors um den Faktor (lambda) geändert. ist der zum Eigenvektor gehörende Eigenwert. Falls der Betrag von , also , kleiner als eins ist, so wird der Vektor mit der Abbildung verkürzt. Ist er größer als eins, so wird er nach der Abbildung länger. Mathematisch lässt sich der Vorgang auch mithilfe der Eigenwertgleichung (2.7) beschreiben. Auf der linken Seite des Gleichheitszeichens wird der Eigenvektor mit der Matrix multipliziert, also abgebildet. Daraus resultiert der gleiche Vektor , allerdings um den Faktor verkürzt oder verlängert.
Aber was bedeutet das eigentlich? Um die Gleichung wirklich zu verstehen, stellen Sie sich mal folgende Fragen:
Was bedeutet es, wenn alle kleiner als eins sind?
Was bedeutet es, wenn alle größer als eins sind?
Was bedeutet es, wenn alle genau gleich eins sind?
Fangen wir mit dem ersten Punkt an: Da alle Eigenvektoren wegen der kleinen Eigenwerte nach der Abbildung kürzer sind als vorher, werden wohl alle Punkte näher zum Ursprung hin abgebildet. Alle Vektoren schrumpfen.
Sind alle Eigenwerte betragsmäßig größer als eins, dann tritt genau das Gegenteil ein. Alle Vektoren werden durch die Abbildung vergrößert.
Und nun der Spezialfall, wenn der Betrag aller Eigenwerte gleich eins ist. Dann spricht man von orthogonalen Abbildungen. Die Längen aller Vektoren bleiben erhalten. Solche Abbildungen sind Drehungen, Spiegelungen und Drehspiegelungen. Es gibt dann auch immer eine inverse Abbildung. Eine inverse Abbildung kann die Vektoren wieder zurück auf ihren ursprünglichen Vektor abbilden. Bei einer Drehung nach rechts um einen Winkel wäre das zum Beispiel die Drehung um den Winkel , also die Drehung nach links.
Kommen wir zur Berechnung der Eigenwerte aus der oben stehenden Eigenwertgleichung (2.7). Wenn Sie durch ersetzen, dann bekommen Sie nach Umstellung die Gleichung 2.8.
Damit diese Gleichung eine nicht triviale Lösung für hat (das heißt, dass nicht der Nullvektor ist), muss die Matrix singulär sein, das heißt, ihre Determinante muss null sein.
Mithilfe dieser Determinante kann man dann die Eigenwerte berechnen, um sie dann in Gleichung 2.8 einzusetzen und die Eigenvektoren zu ermitteln.
Hilfreich ist, die Eigenwerte und Eigenvektoren mal für ein kleines Beispiel durchzurechnen. Dafür nehmen wir die Matrix und berechnen die Eigenwerte nach Gleichung 2.9:
So erhalten wir die Eigenwerte und . Diese Eigenwerte setzen wir jetzt in die Formel zur Berechnung der Eigenvektoren (Gleichung 2.8) ein und erhalten:
und .
Das sind jeweils Gleichungssysteme mit zwei Variablen. Dabei ist die linke Spalte der Abbildung vom Betrag der Werte her immer doppelt so groß wie die der rechten Spalte. Löst man die Gleichungen, so erhält man ein Vielfaches der Vektoren, die wir hier als Eigenvektoren bezeichnen mit und .
Welche Vektoren bei dieser Abbildung wohin abgebildet werden, können Sie im Kasten Eigenwerte nachlesen.
Eigenwerte und Eigenvektoren sind sehr hilfreiche Hilfsmittel aus der linearen Algebra. Nun ist dieses Buch ja kein Mathematikbuch und die gegebene Information sollte ausreichen, um die neuronalen Netze, also Netze wie Restricted Boltzman Machines und rekurrente neuronale Netze wie zum Beispiel Echo-State-Netzwerke besser verstehen zu können.
In den folgenden Graphen werden drei lineare Beispielabbildungen gezeigt. Die erste Abbildung ist die Einheitsmatrix. Alle Punkte auf dem Einheitskreis werden auf sich selbst abgebildet. Die zweite Abbildung ist eine Spiegelung über die (−x,y)-Diagonale. Alle Punkte auf dem Einheitskreis landen wieder auf dem Einheitskreis. Die feinen Linien im Einheitskreis deuten an, welcher Punkt auf welchen anderen Punkt abgebildet wird. Bei der letzten Abbildung sind die Eigenwerte und , also vom Betrag her größer als eins. Die Abbildung projiziert die Punkte vom Einheitskreis auf eine größere Ellipse. Welcher Punkt wohin projiziert wird, ist auch hier an den feinen Linien zu erkennen, ist aber nicht unbedingt intuitiv.
Die Singulärwertzerlegung (Singular Value Decomposition, SVD) ist ein leistungsfähiges mathematisches Werkzeug, das in vielen Bereichen Anwendung findet. Im Kontext des maschinellen Lernens ermöglicht die SVD beispielsweise die Komprimierung von Gewichtsmatrizen neuronaler Netze, wodurch der Rechenaufwand und der Speicherbedarf reduziert werden. Ein kürzlich veröffentlichtes Paper mit dem Titel »LoRA« (Low-rank Adaptation) [Hu et al., 2023] hat gezeigt, dass es auch möglich ist, Sprachmodelle schneller und mit weniger Speicherbedarf zu trainieren, indem die Gewichtsänderung oder Differenz in zerlegten komprimierten Matrizen adaptiert wird.
Um die Vorteile der Singulärwertzerlegung zu demonstrieren, beginnen wir mit der Diagonalisierbarkeit einer Matrix. Eine Matrix A kann wie folgt diagonalisiert werden:
wobei S die Matrix der Eigenvektoren und D die Diagonalmatrix der zugehörigen Eigenwerte ist. Ein Hauptproblem dieser Methode ist, dass die Matrix S nicht notwendigerweise invertierbar ist, da zum Beispiel zweimal der gleiche Eigenvektor in der Matrix vorkommt. Dadurch kann das Gleichungssystem für die Inversion nicht gelöst und nicht berechnet werden. Außerdem kann es vorkommen, dass die Eigenwerte der reellen Matrix komplex sind, sodass man damit eigentlich nicht weiterrechnen möchte.
Im Gegensatz dazu berechnet die Singulärwertzerlegung die Eigenwerte und Eigenvektoren der Matrix AAT. Die resultierenden Eigenwerte sind positiv und reell. Anstelle der invertierten Matrix muss nur noch die transponierte Matrix berechnet werden, was den Rechenaufwand erheblich reduziert. Ein weiterer Vorteil der SVD ist, dass sie auch für nicht quadratische Matrizen durchgeführt werden kann.
Die Singulärwertzerlegung einer Matrix A ist gegeben durch:
wobei U und V orthogonal sind und ∑ (Sigma) eine Diagonalmatrix ist, die die Singulärwerte enthält und wie folgt aussieht:
Dabei ist der Rang der Matrix , der angibt, wie viele linear unabhängige Vektoren die Matrix hat. Die Singulärwerte sind üblicherweise nach der Größe sortiert, sodass der wichtigste (größte) Wert ist, der zweitwichtigste (zweitgrößte) und so weiter.
Die Matrizen U, ∑ und V werden dann wie folgt berechnet:
Die Diagonalelemente von ∑ sind die Quadratwurzeln der Eigenwerte von
AA
T
, sortiert in abnehmender Reihenfolge: .
Berechne die normierten Eigenvektoren von
A
T
A
, um
V
zu erhalten.
Berechne die Vektoren , um
U
zu erhalten.
Um eine Matrix zu komprimieren, kann man einfach die ersten Vektoren und die ersten bis der Diagonalmatrix zur Berechnung der komprimierten Matrizen verwenden. Komprimiert bedeutet hier, dass die Matrix verlustbehaftet komprimiert wird und nicht mehr exakt die Werte der Originalmatrix rekonstruiert werden können. Oftmals ist eine komprimierte Gewichtsmatrix für ein neuronales Netz ausreichend und durch die Kompression können einige Multiplikationen und Additionen eingespart werden.
Als Beispiel wird die Singulärwertzerlegung anhand einer nicht quadratischen Matrix durchgeführt. Wer lieber die Matrixzerlegung programmiert, der kann sich auch das Beispiel in Kapitel 3 im Unterkapitel NumPy für Vektoren und Matrizen anschauen:
Schritt 1: Berechne ATA.
Schritt 2: Eigenwerte berechnen.
Da die Matrix Sigma die gleiche Dimension wie die Matrix hat, trägt man die Wurzel aus den sortierten Eigenwerten in die Diagonale ein und füllt den Rest mit Nullen.
Schritt 3: Berechne die normierten Eigenvektoren mit .
Schritt 4: Berechne und .
Schritt 5: Um einen senkrechten Vektor zu berechnen, nutzen wir hier einfach das Kreuzprodukt. Ist die Matrix höherdimensional, bietet sich das Gram-Schmidt'sche Orthogonalisierungsverfahren an, welches hier aber nicht weiter besprochen wird.
In der Berechnung des Kreuzproduktes steht