Maschinelles Lernen für Dummies - Jörn Fischer - E-Book

Maschinelles Lernen für Dummies E-Book

Jörn Fischer

0,0
24,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

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 lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Maschinelles Lernen für Dummies

Schummelseite

EINFACHE OPTIMIERUNG

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.

EVOLUTIONÄRE ALGORITHMEN

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/DEEP LEARNING

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

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 KI (XAI)

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

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

Über den Autor

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.

Widmung

Dieses Buch widme ich meinen wundervollen Töchtern Lilly und Ronja.

Danksagung

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.

Inhaltsverzeichnis

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

Tabellenverzeichnis

Kapitel 2

Tabelle 2.1: Die Ableitungsregeln und Ableitungen ausgewählter Funktionen.

Illustrationsverzeichnis

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...

Orientierungspunkte

Cover

Titelblatt

Impressum

Über den Autor

Inhaltsverzeichnis

Einleitung

Fangen Sie an zu lesen

Literaturverzeichnis

Abbildungsverzeichnis

Stichwortverzeichnis

End User License Agreement

Seitenliste

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

Einleitung

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.

Über dieses Buch

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.

Wie Sie dieses Buch verwenden

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.

Törichte Annahmen über die Leser

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.

Wie dieses Buch aufgebaut ist

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: Einführung ins maschinelle Lernen

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: Optimierung

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.

Teil III: Neuronale Netze

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.

Teil IV: Verstärkendes Lernen

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.

Teil V: Der Top-Ten-Teil

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.

Symbole, die in diesem Buch verwendet werden

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.

Über das Buch hinaus

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/

Wie geht es weiter?

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

Einführung ins Maschinelle Lernen

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

Die Welt der KI

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.

Was ist eigentlich maschinelles Lernen

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 im Kontext des maschinellen Lernens

»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

Ein kleiner Mathe-Exkurs

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.

Vektoren und Matrizen

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:

(2.1)

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:

(2.2)

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.

(2.3)

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.

(2.4)

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:

(2.5)

Für ein Beispiel mit linear abhängigen Vektoren sieht das dann etwa so aus:

(2.6)

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.

Eigenwerte und Eigenvektoren

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.

(2.7)

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.

(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.

(2.9)

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.

Eigenwerte

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.

Singulärwertzerlegung

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:

(2.10)

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