- Eine mathematische Einführung in Deep Learning, die so aufgebaut ist, dass Studierende und Wissenschaftler ohne Vorwissen sowie Praktiker, die ein strengeres Verständnis anstreben, eine solide Grundlage der Deep-Learning-Algorithmen erwerben können
- Künstliche neuronale Netze werden als wiederholte Kompositionen von Aktivierungsfunktionen und affinen Funktionen definiert; mit zunehmender Kompositionstiefe entsteht die Funktionsklasse, die als tiefe ANN behandelt wird
- Der Gesamtaufbau beginnt bei der Struktur und der Analysis von ANN und führt weiter über Approximationstheorie, Optimierung, Generalisierungsfehler, Gesamtfehleranalyse bis hin zum Lösen von PDEs
- Der Optimierungsteil behandelt gemeinsam gradient flow ODE, GD, SGD, Backpropagation, den Kurdyka–Łojasiewicz-Ansatz, batch normalization und zufällige Initialisierung
- Python-Quellcode kann aus dem öffentlichen GitHub-Repository und über die arXiv-Seite heruntergeladen werden; anhand der Dateinamen in den Captions der Listings lassen sich Buchinhalt und Code einander zuordnen
Wie Deep Learning mathematisch definiert wird
- Dieses Buch behandelt Deep-Learning-Algorithmen als Rechenverfahren, die tiefe ANN und Daten wiederholt verwenden, um bestimmte Beziehungen, Funktionen und Größen zu approximieren
- ANN sind eine Funktionsklasse, die aus mehreren Kompositionen einer bestimmten nichtlinearen Aktivierungsfunktion und affiner Funktionen besteht
- Die Tiefe eines ANN entspricht der Anzahl der wiederholten Kompositionen; von einem tiefen ANN spricht man, wenn die Komposition aus mehr als zwei nichtlinearen und affinen Funktionen besteht
- Die Zielgruppe sind Studierende und Wissenschaftler ohne jeglichen Hintergrund in Deep Learning, die dennoch ein belastbares Fundament benötigen, sowie Praktiker, die Objekte und Methoden des Deep Learning sicherer verstehen möchten
Teil I–II: Netzwerkstrukturen und Approximationstheorie
- Nach einer kurzen Einführung ist der Haupttext in sechs Teile, Teil I–VI, gegliedert
-
Teil I: Künstliche neuronale Netze
- Kapitel 1 führt verschiedene ANN-Typen mathematisch ein
- fully-connected feedforward ANN
- convolutional ANN (CNN)
- recurrent ANN (RNN)
- residual ANN (ResNet)
- Kapitel 2 behandelt die Analysis (calculus) vollständig verbundener feedforward-ANN
- Kapitel 1 führt verschiedene ANN-Typen mathematisch ein
-
Teil II: Approximation
- Es werden verschiedene mathematische Resultate behandelt, die analysieren, wie gut ANN eine gegebene Funktion approximieren können
- Kapitel 3 konzentriert sich aus Gründen der Zugänglichkeit zunächst auf eindimensionale Funktionen von den reellen Zahlen in die reellen Zahlen
- Kapitel 4 erweitert den Rahmen auf Resultate zur ANN-Approximation multivariater Funktionen
Teil III: Optimierung und Lernalgorithmen
- Der Kern von Deep-Learning-Algorithmen liegt darin, ein Problem als geeignetes Optimierungsproblem mit tiefen ANN zu modellieren oder umzuformulieren
- Dieser Teil behandelt Optimierungsprobleme und Algorithmen zu ihrer approximativen Lösung; üblicherweise werden Minimierungsprobleme mit gradientenbasierten Optimierungsmethoden gelöst
- Gradientenbasierte Methoden sind Rechenverfahren, die ein Problem durch fortlaufende Schritte in Richtung des negativen Gradienten der zu optimierenden Funktion lösen
- Kapitel 5 behandelt gradient flow (GF) ODE und ihren Einsatz zum Verständnis von Verfahren vom Typ GD und SGD
- Kapitel 6 untersucht und analysiert deterministische gradientenbasierte Optimierungsmethoden wie gradient descent (GD)
- Kapitel 7 untersucht und analysiert stochastische gradientenbasierte Optimierungsmethoden wie stochastic gradient descent (SGD)
- Kapitel 8 leitet Backpropagation her und behandelt sie ausführlich; sie ist die weit verbreitete Methode zur expliziten Berechnung von Gradienten beim ANN-Training
- Die Analysen in Kapitel 5–7 sind in den meisten Fällen nur eingeschränkt geeignet, Optimierungsprobleme des ANN-Trainings zu behandeln, doch der Kurdyka–Łojasiewicz (KL)-Ansatz in Kapitel 9 kann solche Probleme erfassen
- Kapitel 10 prüft batch normalization (BN) streng, eine Methode zur Beschleunigung des ANN-Trainings in datengetriebenen Lernproblemen
- Kapitel 11 untersucht Ansätze, bei denen die Zielfunktion mit unterschiedlichen zufälligen Initialisierungen optimiert wird
Teil IV–VI: Fehleranalyse und PDE-Anwendungen
-
Teil IV: Generalisierungsfehler
- Die mathematische Analyse von Deep Learning endet nicht bei Fehlerschätzungen für die Approximationseigenschaften von ANN und für Optimierungsmethoden
- Wenn kein expliziter Zugang zur Wahrscheinlichkeitsverteilung eines Lernproblems besteht und nur mit endlichen Realisierungen bzw. Daten approximiert wird, sind Schätzungen des Generalisierungsfehlers erforderlich
- Kapitel 12 behandelt probabilistische Schätzungen des Generalisierungsfehlers
- Kapitel 13 behandelt starke Generalisierungsfehlerschätzungen vom Lp-Typ
-
Teil V: Gesamtfehleranalyse
- An Beispielen wird gezeigt, wie sich die Approximationsfehler aus Teil II, die Optimierungsfehler aus Teil III und die Schätzungen des Generalisierungsfehlers aus Teil IV kombinieren lassen
- Das Beispiel ist ein ANN-Training auf Basis von SGD-artigen Optimierungsmethoden mit vielen unabhängigen zufälligen Initialisierungen
- Kapitel 14 präsentiert eine Zerlegung des Gesamtfehlers, die für überwachtes Lernen geeignet ist
- Kapitel 15 erstellt eine beispielhafte Gesamtfehleranalyse unter gemeinsamer Nutzung ausgewählter Resultate aus Teil II, III und IV
-
Teil VI: Deep Learning für PDEs
- Deep-Learning-Methoden werden nicht nur für datengetriebene Lernprobleme eingesetzt, sondern auch zum approximativen Lösen von partiellen Differentialgleichungen (PDEs)
- Teil VI untersucht und implementiert drei populäre Deep-Learning-Methoden für PDEs
- Kapitel 16 behandelt physics-informed neural networks (PINNs) und deep Galerkin methods (DGMs)
- Kapitel 17 behandelt deep Kolmogorov methods (DKMs)
Zugriff auf Code und Materialien
- Das Buch enthält mehrere Python-Quellcodes
- Der Quellcode kann aus dem öffentlichen GitHub-Repository introdeeplearning/book heruntergeladen werden
- Auch über die arXiv-Seite lässt sich der Quellcode beziehen, indem unter „Other formats“ die Option „Download source“ gewählt wird
- Die Captions der einzelnen source listings enthalten die zugehörigen Quelldateinamen, sodass sich Formeln, Beispiele und Code im Buch leicht gemeinsam nachverfolgen lassen
1 Kommentare
Hacker-News-Kommentare
Sieht aus wie eine gute Sammlung, die standardmäßige Machine-Learning-Verfahren mit ziemlich einheitlicher mathematischer Notation und vielen Beweisen vorstellt, aber bei 600 Seiten ist das wirklich ein großes Unterfangen.
Allerdings wirkt es so, als läge der Schwerpunkt stärker auf den leicht formalisierbaren Teilen als auf den Teilen, die interessant wären, wenn man sie versteht.
Das SGD-Kapitel wurde zum Beispiel gewählt, weil Optimierung ein Bereich ist, in dem Mathematiker tatsächlich wirkungsvoll zum Machine Learning beitragen können, aber die meisten Beweise sind grundlegend, etwa Bias-Varianz-Zerlegung oder Jensen-Ungleichung; die interessanten Sätze zur Konvergenz werden nur aus der Literatur zitiert und knüpfen nicht an die vorherigen Lemmata an, und tatsächlich interessante Verfahren wie ADAM haben kaum Beweise oder Theorie.
Nach der Lektüre dieses Kapitels versteht man moderne SGD-Methoden und ihre Entwicklungsgeschichte wohl gut, aber warum diese Methoden funktionieren, scheint man kaum über die durch numerische Experimente bestätigte Intuition hinaus zu erfahren.
Dann wäre es vermutlich nützlicher gewesen, Platz für bereits existierende ADAM-Konvergenzbeweise zu verwenden, statt viele Grundlagen wie E(XY)=E(X)E(Y) für unabhängige Zufallsvariablen zu beweisen.
Auch das ANN-Kapitel enthielt viele lange Beweise zu grundlegenden und weniger interessanten Inhalten, und das Paper zu physics-informed neural networks ist zwar gut, hat aber ein ähnliches Problem.
Die Richtung, Machine-Learning-Methoden strenger und einheitlicher zu erklären, ist an sich gut, aber ich frage mich, wie hier die Grenze gezogen wurde, was aufgenommen und was weggelassen wird.
Auch Konvergenzbeweise für ADAM erklären nicht, warum ADAM tendenziell besser funktioniert als andere Methoden.
Man kann schwer vorwerfen, dass etwas nicht erklärt wird, was derzeit niemand versteht; aber wenn die Theorie das wirklich Wichtige nicht vorhersagen kann, wird die Idee eines theoriezentrierten Unterrichts an sich schwächer.
Wer Deep Learning mathematisch vertieft betrachten möchte, sollte sich auch das Buch von Francois Fleuret ansehen: https://fleuret.org/francois/lbdl.html
Das PDF ist kostenlos, und die gedruckte Ausgabe ist ziemlich hübsch.
Jedes Mal, wenn ich es versuche, dreht mein Duplexdrucker bei jedem zweiten Blatt oben und unten um, was Probleme macht.
Ich frage mich, ob Leute solche Bücher wirklich von Anfang bis Ende komplett lesen.
Ich schaue mir gerade Bishops PRML an, und es dauert enorm lange, das Buch richtig durchzuarbeiten und alle Übungsaufgaben zu lösen.
Ich habe einen Blogpost von jemandem gesehen, der dasselbe gemacht hat; es habe über 1500 Stunden gedauert.
In meinem Masterstudium gab es niemanden, der so ein Buch abgeschlossen hat; wir haben einfach die Kurse besucht und den Rest, den wir brauchten, gegoogelt.
Aus der Perspektive von jemandem, dessen Programmierkenntnisse tiefer sind als die Mathematikkenntnisse, ist die mathematische Notation hier schwerer zu verstehen als Code.
Sie fühlt sich sogar schwieriger an als Code in einer Programmiersprache, die ich nicht kenne.
Ich frage mich, ob Menschen mit stärkerem mathematischem Hintergrund solche mathematischen Ausdrücke leichter verstehen als Quellcode.
Ich habe versucht, die Konzepte so präzise wie möglich mathematisch darzustellen, aber am Ende habe ich diese Art von schwergewichtiger Notation, wie sie in diesem Buch vorkommt, vermieden und viel Mathematik herausgenommen, damit die Studierenden sie in der Industrie einsetzen können; im tatsächlichen Unterricht gab es deutlich mehr Code als Formeln.
Wenn man alles sehr präzise schreiben will, wird es schnell unübersichtlich.
In der Mathematik ist es sehr schwierig, für neue Konzepte eine gute Notation zu finden, und Notationen wie die Einstein-Notation, Feynman-Diagramme oder Matrixnotation, die später alle als klar anerkannt wurden, stammen oft ursprünglich von herausragenden Leuten.
Es wird auch nicht automatisch nützlich, wenn man Gebiet A in die Notation von Gebiet B umschreibt; auch die Übersetzung der Quantenmechanik in Mathematik wie C*-Algebren war ein großes Vorhaben und ist bis heute in gewissem Maße ein offenes Forschungsfeld.
Daher war der Aufwand, dieses Buch zu schreiben, sicher enorm, aber ich halte den praktischen Nutzen wahrscheinlich für gering.
Wer solche Gleichungen bequem lesen kann, braucht sie meist nicht; wer zum Beispiel affine Transformationen kennt, muss kaum alle ijkl-Indizes eines vierdimensionalen Tensors explizit ausgeschrieben sehen.
Umgekehrt werden Menschen, die das nicht kennen, sich wahrscheinlich einschüchtern lassen und zurückziehen.
Ein Grund ist, dass sie für Handschrift optimiert ist.
Programmcode von Hand zu schreiben ist sehr mühsam, daher kann man verstehen, warum mathematische Notation so aussieht.
Außerdem gibt es so etwas wie „den Code“, der der mathematischen Notation entspricht, nicht.
Mathematische Notation dient dazu, mathematische Tatsachen oder Aussagen zu formulieren, und unterscheidet sich vom Zweck von Code, der Deep-Learning-Algorithmen implementiert.
Deshalb sind Thema und Darstellungsweise auf solche Leute ausgerichtet.
In der realen Deep-Learning-Praxis habe ich zum Beispiel kaum je gesehen, dass man sich um Existenz- und Eindeutigkeitsbedingungen gradientenbasierter Optimierungsalgorithmen sorgt, aber solche Ergebnisse sind Themen, für die diese Leute sich interessieren und über die sie Papers schreiben.
Schon der Titel sagt, dass es um die theoretischen Grundlagen dieses Gebiets geht, daher ist diese Herangehensweise an sich nicht überraschend.
Solche Bücher liest man normalerweise nicht von Anfang bis Ende, sondern vertieft sich nur in einige Kapitel zu den Verfahren, die mit der eigenen Forschung zu tun haben.
Auch ich habe bei meiner Forschung ähnlich ausschweifende Sammelbände verwendet, aber der für mich interessante Kern umfasste etwa 20 bis 30 Seiten.
Für meinen Geschmack ist es sowohl hinsichtlich Strenge als auch Umfang zu ausufernd.
Zum Beispiel wird die Gronwall-Ungleichung als Lemma aufgenommen und bewiesen; auch wenn die verwendete Version etwas allgemeiner ist als die, die ich normalerweise sehe, ist die Gronwall-Ungleichung ein sehr standardmäßiges Werkzeug in der Analyse gewöhnlicher Differentialgleichungen, und selbst meine strengen Bücher zur Regelungstheorie geben nur Literaturhinweise ohne Beweis, um Unübersichtlichkeit zu vermeiden.
Je höher die Beweisstandards sind und je weniger Annahmen man machen will, desto eher entsteht solche Ausführlichkeit.
Ich frage mich, wer mit der Zielgruppe „Studierende und Wissenschaftler“ genau gemeint ist.
Schon am Anfang von Kapitel 1 gibt es Indizes innerhalb von Indizes, Summen mit tiefgestellten Indizes innerhalb von hochgestellten Ausdrücken, und dann geht es in riesige Ketten von Funktionskompositionen hinein.
Später werden die tiefgestellten Indizes bis zu vier Ebenen tief, es werden mindestens drei neue Infix-Operatoren eingeführt und 30 neue Symbole aus drei verschiedenen Alphabeten definiert, obwohl noch nicht einmal 100 der 600 Seiten erreicht sind.
Ich weiß nicht, für wen das gedacht ist, damit man ihm folgen und es verarbeiten soll.
Ich habe schon einige Bücher gesehen, die Deep Learning aus mathematischer Perspektive erklären wollen, aber es überrascht mich immer wieder.
Deep Learning ist derzeit eindeutig eine empirische Wissenschaft, und meiner Ansicht nach gibt es nicht viele theoretische Arbeiten, die groß genug eingeschlagen haben, um in ein Buch aufgenommen zu werden.
Selbst unter solchen Büchern wirkt dieses hier aktiv nahe am schlechtesten Ende.
Es verwendet beträchtlichen Raum darauf, Hilfssätze zu beweisen, die kaum zusätzliches Verständnis liefern und nur lose mit Deep Learning zusammenhängen; ein großer Teil des Codes ist Code zum Erstellen von Grafiken, bei dem ich nicht verstehe, warum er enthalten ist.
Ich glaube, dass nur sehr wenige Menschen große Teile dieses Buchs lesen werden.
Ich halte weiterhin Deep Learning von Goodfellow et al. und das modernere Understanding Deep Learning (https://udlbook.github.io/udlbook/) für die besten Lehrbücher.
Auch wenn die vorderste Front des Deep Learning sehr empirisch ist, gibt es interessante Forschung, die nicht nur verstehen will, welche Verfahren gut funktionieren, sondern warum sie funktionieren.
Zu sagen, Beweise seien kein guter Weg, um Verständnis zu gewinnen, ergibt keinen Sinn.
Das ist nicht für alle der richtige Zugang, aber ein Buch mit dem Titel „eine mathematische Einführung in x“ richtet sich natürlich an Menschen mit einem gewissen mathematischen Training, und für solche Leser sind Hilfssätze und ihre Beweise ein natürlicher Weg, Verständnis aufzubauen.
Mathematik besteht nicht nur aus Beweisen, sondern ist auch eine Form der Kommunikation.
Es gibt viele Arten zu erklären, wie neuronale Netze funktionieren: Bilder, Code, Worte und auch ziemlich dichte mathematische Notation.
Es ist meist einfacher, erst Intuition zu entwickeln und danach die technischen Details zu verstehen, statt aus der Theorie Intuition zu erzeugen.
Das gilt im Allgemeinen für exakte Wissenschaften, besonders für Mathematik, und deshalb sind Beispiele hilfreich.
Ich frage mich, ob Deep Learning deshalb eine empirische Wissenschaft ist, weil alle Angst vor Mathematik haben.
Es ist ein so reichhaltiges Gebiet wie die moderne Physik, aber seltsamerweise scheinen die meisten Praktiker weiterhin so denken zu wollen, als wäre es der Wilde Westen.
Es gibt viele Deep-Learning-Forscher mit sehr stark mathematischer Ausrichtung.
Deep Learning ist eine empirische Wissenschaft, weil unsere mathematischen Werkzeuge nicht ausreichen, um die beobachteten Phänomene in einer einheitlichen Theorie zu erklären und vorherzusagen.
Dass es eine empirische Wissenschaft ist, heißt nicht, dass das Feld der „Wilde Westen“ ist.
Deep-Learning-Modelle können Gegenstand wiederholbarer, kontrollierter Experimente sein, und dadurch kann man in den meisten Fällen besser verstehen, was passieren wird.
Gute Praktiker wissen das.
Man kann sehr viel erreichen, ohne viel Mathematik jenseits von linearer Algebra, Analysis und Wahrscheinlichkeitstheorie auf Bachelor-Niveau zu beherrschen, und dieses Wissen dient vor allem dazu, Intuition zu liefern und das Problem, das man lösen will, etwas zu formalisieren.
Auch mit sehr wenig Mathematik kann man Ergebnisse erzielen, einschließlich beeindruckender Resultate.
Dadurch zeigen und lösen Leute neue Probleme empirisch sehr schnell, viel schneller, als theoretische Ergebnisse entstehen, die erklären, warum es funktioniert.
Es gibt viele Gründe, warum Theorie schwierig ist; ein wichtiger ist aber auch, dass viele Erfolge des Deep Learning nicht gut in bestehende Rahmen wie Statistik oder optimale Steuerung passen und deshalb schwer zu erklären sind.
Ich frage mich, ob irgendjemand diese Mathematik tatsächlich verwendet.
Meine Vermutung geht eher in Richtung Nein; im besten Fall wirkt sie wie mentale Unterstützung, die Deep-Learning-Forschern versichert, dass das, was sie vorhaben, nicht unmöglich ist.
Wenn ich falsch liege, lasse ich mich gern korrigieren.
Man braucht Mathematik nicht zwingend, um ein gutes Modell zu bauen, aber man muss Mathematik kennen, um zu wissen, warum ein Modell falsch ist.
Deshalb ist Mathematik notwendig.
Ohne Mathematik redet man sich ein, dass man AGI erreichen kann, wenn man nur groß genug skaliert.
Man verwendet überall Transformer, weil alle es tun, und ist bei Aktivierungsfunktionen verwirrt.
Man kann ein funktionierendes Modell bauen, aber zwischen einem funktionierenden Modell und der Fähigkeit, vorherzusehen, wo es scheitern wird, und seine Grenzen zu verstehen, besteht ein großer Unterschied.
Viele Leute scheinen allein aufgrund der Ergebnisse auf dem Test-Set zu hoffen, dass ihr Modell nicht overfittet.
Ganz zu schweigen davon, Hyperparameter anhand der Ergebnisse auf dem Test-Set zu tunen.
Man muss sich nur eine Informatik ohne Theorie vorstellen, in der es keine Sortieralgorithmen oder Suchalgorithmen mit bewiesener Korrektheit und bekannten Eigenschaften gibt.
Diese Mathematik spielt dieselbe Rolle wie theoretische Informatik.
Wenn man nur Modelle in einer Bibliothek wie Keras fitten lässt, „verwendet“ man diese Mathematik tatsächlich nicht.
Wenn das Dataset unterhalb einer gewissen Größe liegt, das Problem unterhalb einer gewissen Komplexität bleibt und das Modell seit Jahren im Einsatz ist und seine Eigenschaften gut untersucht sind, kann man mit nur grobem mathematischem Verständnis viel erledigen.
Das ist ähnlich wie bei Webapps: Man kann eine voll funktionsfähige Webapp bauen, ohne im Detail zu wissen, wie die Runtimes von Python oder Java intern funktionieren.
Aber wenn man nicht weiß, wie es wirklich funktioniert, bleibt man ziemlich heftig stecken, sobald man auf eine Situation trifft, die nicht schon in der Bibliothek abgedeckt ist.
Wenn man sehen will, was passiert, wenn die zugrunde liegende Mathematik fehlt, kann man sich die aktuelle Generation von „Data Science“-Absolventen ansehen, denen Grundlagen in Mathematik und Statistik fehlen.
Es gibt auch viele Probleme auf der Einstellungsseite, aber am Ende bekommen sie keine Jobs, weil sie nie gezwungen wurden, das zu lernen, und deshalb nicht wirklich wissen, was sie tun.
Also gibt es Leute, die sie verwenden.
In diesem Fall gibt es Praktikern eine Möglichkeit, die physikalische Konsistenz verschiedener Methoden zu überprüfen.
Das klingt nach Dingen, die jemand im Machine Learning täglich verwendet.
Ich frage mich, ob es üblich ist, ein Buch, besonders ein gerade erst erschienenes Buch, direkt auf ArXiv zu stellen.
Zumindest bei Lehrbüchern in Mathematik und Informatik sehe ich das öfter.