Neuronale Netze und Deep Learning kapieren

Der einfache Praxiseinstieg mit Beispielen in Python

Andrew W. Trask

Cite this publication as

Andrew W. Trask, Neuronale Netze und Deep Learning kapieren (2019), mitp-Verlag, Frechen, ISBN: 9783747500163

12044
accesses
107
quotes

Description

Andrew W. Trask ist Doktorand an der Oxford University und als Research Scientist für DeepMind tätig. Zuvor war er Researcher und Analytics Product Manager bei Digital Reasoning, wo er u.a. das größte künstliche Neuronale Netz der Welt trainierte.

Description / Abstract

Table of content

  • Cover
  • Titel
  • Impressum
  • Inhaltsverzeichnis
  • Vorwort
  • Einleitung
  • Über den Autor
  • Danksagung
  • Kapitel 1: Deep Learning: Weshalb man sich damit befassen sollte
  • 1.1 Willkommen bei »Deep Learning kapieren«
  • 1.2 Weshalb du dich mit Deep Learning befassen solltest
  • 1.3 Ist es schwierig, Deep Learning zu verstehen?
  • 1.4 Warum du dieses Buch lesen solltest
  • 1.5 Was du brauchst, um loszulegen
  • 1.6 Python-Kenntnisse sind nützlich
  • 1.7 Zusammenfassung
  • Kapitel 2: Grundlegende Konzepte: Wie lernen Maschinen?
  • 2.1 Was ist Deep Learning?
  • 2.2 Was ist Machine Learning?
  • 2.3 Überwachtes Machine Learning
  • 2.4 Unüberwachtes Machine Learning
  • 2.5 Parametrisches und nichtparametrisches Lernen
  • 2.6 Überwachtes parametrisches Lernen
  • 2.7 Unüberwachtes parametrisches Lernen
  • 2.8 Nichtparametrisches Lernen
  • 2.9 Zusammenfassung
  • Kapitel 3: Vorhersage mit neuronalen Netzen: Forward Propagation
  • 3.1 Vorhersage
  • 3.2 Ein einfaches neuronales Netz trifft eine Vorhersage
  • 3.3 Was ist ein neuronales Netz?
  • 3.4 Wie funktioniert das neuronale Netz?
  • 3.5 Eine Vorhersage mit mehreren Eingaben treffen
  • 3.6 Mehrere Eingaben: Wie verhält sich das neuronale Netz?
  • 3.7 Mehrere Eingaben: vollständiger ausführbarer Code
  • 3.8 Eine Vorhersage mit mehreren Ausgaben treffen
  • 3.9 Vorhersagen mit mehreren Eingaben und mehreren Ausgaben treffen
  • 3.10 Mehrere Ein- und Ausgaben: Wie funktioniert das?
  • 3.11 Vorhersagen über Vorhersagen
  • 3.12 Kurzeinführung in NumPy
  • 3.13 Zusammenfassung
  • Kapitel 4: Lernen in neuronalen Netzen: Gradientenabstieg
  • 4.1 Vorhersagen, Vergleichen und Erlernen
  • 4.2 Vergleichen
  • 4.3 Erlernen
  • 4.4 Vergleichen: Trifft das Netz gute Vorhersagen?
  • 4.5 Warum Fehler messen?
  • 4.6 Was ist die einfachste Form des Lernens in neuronalen Netzen?
  • 4.7 Hot und Cold Learning
  • 4.8 Hot und Cold Learning: Eigenschaften
  • 4.9 Richtung und Betrag anhand des Fehlers berechnen
  • 4.10 Eine Iteration des Gradientenabstiegs
  • 4.11 Lernen bedeutet nur, den Fehler zu verringern
  • 4.12 Mehrere Schritte des Lernens
  • 4.13 Weshalb funktioniert das? Was ist weight_delta eigentlich?
  • 4.14 Tunnelblick auf ein Konzept
  • 4.15 Eine Kiste, aus der zwei Stangen ragen
  • 4.16 Ableitungen: Zweiter Ansatz
  • 4.17 Was du wirklich wissen musst
  • 4.18 Was man eigentlich nicht wissen muss
  • 4.19 Wie man Ableitungen zum Lernen verwendet
  • 4.20 Wirkt das vertraut?
  • 4.21 Den Gradientenabstieg stören
  • 4.22 Visualisierung der übermäßigen Korrektur
  • 4.23 Divergenz
  • 4.24 Einführung von alpha
  • 4.25 Alpha im Code
  • 4.26 Auswendig lernen
  • Kapitel 5: Mehrere Gewichte gleichzeitig erlernen: Generalisierung des Gradientenabstiegs
  • 5.1 Lernen durch Gradientenabstieg mit mehreren Eingaben
  • 5.2 Gradientenabstieg mit mehreren Eingaben erklärt
  • 5.3 Mehrere Lernschritte
  • 5.4 Einfrieren eines Gewichts: Was bewirkt das?
  • 5.5 Lernen mittels Gradientenabstieg mit mehreren Ausgaben
  • 5.6 Lernen mittels Gradientenabstieg mit mehreren Eingaben und mehreren Ausgaben
  • 5.7 Was erlernen die Gewichte?
  • 5.8 Visualisierung der Werte von Gewichten
  • 5.9 Visualisierung von Skalarprodukten (gewichtete Summen)
  • 5.10 Zusammenfassung
  • Kapitel 6: Das erste tiefe neuronale Netz: Einführung in Backpropagation
  • 6.1 Das Ampelproblem
  • 6.2 Vorbereitung der Daten
  • 6.3 Matrizen
  • 6.4 Erstellen von Matrizen in Python
  • 6.5 Erstellen eines neuronalen Netzes
  • 6.6 Erlernen der gesamten Datenmenge
  • 6.7 Vollständiger, Batch- und stochastischer Gradientenabstieg
  • 6.8 Neuronale Netze erlernen eine Korrelation
  • 6.9 Druck nach oben und unten
  • 6.10 Grenzfall: Überanpassung
  • 6.11 Grenzfall: Widersprüchliche Druckkräfte
  • 6.12 Erlernen indirekter Korrelation
  • 6.13 Korrelation erzeugen
  • 6.14 Stapeln neuronaler Netze: Überblick
  • 6.15 Backpropagation: Fehlerattribuierung
  • 6.16 Backpropagation: Weshalb funktioniert das?
  • 6.17 Linear vs. nichtlinear
  • 6.18 Weshalb das neuronale Netz noch nicht funktioniert
  • 6.19 Bedingte Korrelation
  • 6.20 Eine kurze Pause
  • 6.21 Das erste tiefe neuronale Netz
  • 6.22 Backpropagation im Code
  • 6.23 Eine Iteration der Backpropagation
  • 6.24 Alles zusammenbringen
  • 6.25 Warum sind tiefe Netze von Bedeutung?
  • Kapitel 7: Neuronale Netze abbilden: im Kopf und auf Papier
  • 7.1 Zeit für Vereinfachungen
  • 7.2 Korrelationszusammenfassung
  • 7.3 Die alte, zu komplizierte Visualisierung
  • 7.4 Die vereinfachte Visualisierung
  • 7.5 Weitere Vereinfachung
  • 7.6 Ein Netz bei der Vorhersage beobachten
  • 7.7 Visualisierung mit Buchstaben statt Bildern
  • 7.8 Variablen verknüpfen
  • 7.9 Alles zusammen
  • 7.10 Die Bedeutung von Visualisierungstools
  • Kapitel 8: Signale erlernen, Rauschen ignorieren: Einführung in Regularisierung und Batching
  • 8.1 Ein dreischichtiges Netz mit dem MNIST-Datensatz
  • 8.2 Das war einfach
  • 8.3 Auswendiglernen vs. Generalisierung
  • 8.4 Überanpassung in neuronalen Netzen
  • 8.5 Wie Überanpassung entsteht
  • 8.6 Die einfachste Regularisierung: früher Abbruch
  • 8.7 Der Industriestandard: das Dropout-Verfahren
  • 8.8 Weshalb das Dropout-Verfahren funktioniert: Ensembles
  • 8.9 Das Dropout-Verfahren im Code
  • 8.10 Bewertung des Dropout-Verfahrens mit dem MNIST-Datensatz
  • 8.11 Batch-Gradientenabstieg
  • 8.12 Zusammenfassung
  • Kapitel 9: Modellierung von Wahrscheinlichkeiten und Nichtlinearitäten: Aktivierungsfunktionen
  • 9.1 Was ist eine Aktivierungsfunktion?
  • 9.2 Standardaktivierungsfunktionen der verdeckten Schicht
  • 9.3 Standardaktivierungsfunktionen der Ausgabeschicht
  • 9.4 Das grundlegende Problem: Eingaben ähneln einander
  • 9.5 softmax-Berechnung
  • 9.6 Anleitung für die Nutzung von Aktivierungsfunktionen
  • 9.7 Multiplikation von delta mit der Steigung
  • 9.8 Ausgabe in Steigung umwandeln (Ableitung)
  • 9.9 Verbesserung des MNIST-Netzes
  • Kapitel 10: Einführung in Convolutional Neural Networks
  • 10.1 Wiederverwendung von Gewichten an verschiedenen Stellen
  • 10.2 Die Faltungsschicht
  • 10.3 Eine einfache Implementierung in NumPy
  • 10.4 Zusammenfassung
  • Kapitel 11: Neuronale Netze, die Sprache verstehen: Knecht – Mann + Frau == ?
  • 11.1 Was bedeutet es, Sprache zu verstehen?
  • 11.2 Verarbeitung natürlicher Sprache
  • 11.3 Überwachte Verarbeitung natürlicher Sprache
  • 11.4 Die IMDB-Filmbewertungsdatenbank
  • 11.5 Wortkorrelationen in Eingabedaten erfassen
  • 11.6 Vorhersage von Filmbewertungen
  • 11.7 Kurz vorgestellt: Embedding-Schichten
  • 11.8 Interpretation der Ausgabe
  • 11.9 Architektur neuronaler Netze
  • 11.10 Wort-Embeddings vergleichen
  • 11.11 Welche Bedeutung hat ein Neuron?
  • 11.12 Ausfüllen der Lücke
  • 11.13 Bedeutung ergibt sich aus dem Verlust
  • 11.14 Knecht – Mann + Frau ~= Magd
  • 11.15 Wortanalogien
  • 11.16 Zusammenfassung
  • Kapitel 12: Rekurrente Schichten für Daten variabler Größe
  • 12.1 Die Herausforderungen von variabler Größe
  • 12.2 Spielen Vergleiche tatsächlich eine Rolle?
  • 12.3 Die erstaunliche Leistungsstärke gemittelter Wortvektoren
  • 12.4 Wie werden Informationen in diesen Embeddings gespeichert?
  • 12.5 Wie verwendet ein neuronales Netz Embeddings?
  • 12.6 Die Beschränkungen von Bag-of-words-Vektoren
  • 12.7 Verwendung von Einheitsmatrizen zum Summieren von Wort-Embeddings
  • 12.8 Matrizen, die überhaupt nichts verändern
  • 12.9 Erlernen der Übergangsmatrizen
  • 12.10 Lernen, nützliche Satzvektoren zu erzeugen
  • 12.11 Forward Propagation in Python
  • 12.12 Wie funktioniert die Backpropagation?
  • 12.13 Training durchführen
  • 12.14 Einrichtung
  • 12.15 Forward Propagation beliebiger Größe
  • 12.16 Backpropagation beliebiger Größe
  • 12.17 Aktualisierung von Gewichten beliebiger Größe
  • 12.18 Ausführung und Analyse der Ausgabe
  • 12.19 Zusammenfassung
  • Kapitel 13: Automatische Optimierung: Entwicklung eines Deep-Learning-Frameworks
  • 13.1 Was ist ein Deep-Learning-Framework?
  • 13.2 Einführung in Tensoren
  • 13.3 Einführung in Automatic Gradient Computation (Autograd)
  • 13.4 Eine kurze Bestandsaufnahme
  • 13.5 Mehrfach verwendete Tensoren
  • 13.6 Autograd um mehrmals verwendbare Tensoren erweitern
  • 13.7 Wie funktioniert Backpropagation durch Addition?
  • 13.8 Negation hinzufügen
  • 13.9 Weitere Funktionen hinzufügen
  • 13.10 Autograd zum Trainieren eines neuronalen Netzes verwenden
  • 13.11 Automatische Optimierung hinzufügen
  • 13.12 Schichttypen hinzufügen
  • 13.13 Schichten, die weitere Schichten enthalten
  • 13.14 Verlustfunktions-Schichten
  • 13.15 Erlernen eines Frameworks
  • 13.16 Nichtlineare Schichten
  • 13.17 Die Embedding-Schicht
  • 13.18 Indizierung zu Autograd hinzufügen
  • 13.19 Zurück zur Embedding-Schicht
  • 13.20 Die Kreuzentropie-Schicht
  • 13.21 Die rekurrente Schicht eines neuronalen Netzes
  • 13.22 Zusammenfassung
  • Kapitel 14: Lernen, wie Shakespeare zu schreiben: Long Short-Term Memory
  • 14.1 Zeichenbasierte Sprachmodellierung
  • 14.2 Die Notwendigkeit einer verkürzten Backpropagation
  • 14.3 Truncated Backpropagation
  • 14.4 Eine Stichprobe von der Ausgabe
  • 14.5 Verschwindende und explodierende Gradienten
  • 14.6 Ein Testbeispiel für Backpropagation in RNNs
  • 14.7 LSTM-Zellen
  • 14.8 Veranschaulichung von LSTM-Gates
  • 14.9 Die LSTM-Schicht
  • 14.10 Erweiterung des zeichenbasierten Sprachmodells
  • 14.11 Training des zeichenbasierten LSTM-Sprachmodells
  • 14.12 Optimierung des zeichenbasierten LSTM-Sprachmodells
  • 14.13 Zusammenfassung
  • Kapitel 15: Deep Learning mit unbekannten Daten: Federated Learning
  • 15.1 Das Problem der Privatsphäre beim Deep Learning
  • 15.2 Federated Learning
  • 15.3 Spam-Erkennung erlernen
  • 15.4 Federation
  • 15.5 Federated Learning hacken
  • 15.6 Sichere Aggregation
  • 15.7 Homomorphe Verschlüsselung
  • 15.8 Homomorph verschlüsseltes Federated Learning
  • 15.9 Zusammenfassung
  • Kapitel 16: Wie geht es weiter? Ein kurzer Leitfaden
  • 16.1 Glückwunsch!
  • 16.2 Schritt 1: Lerne PyTorch
  • 16.3 Schritt 2: Nimm an einem weiteren Deep-Learning- Kurs teil
  • 16.4 Schritt 3: Lies ein mathematisch anspruchsvolles Lehrbuch
  • 16.5 Schritt 4: Schreibe ein Blog und unterrichte Deep Learning
  • 16.6 Schritt 5: Twitter
  • 16.7 Schritt 6: Verweise auf wissenschaftliche Arbeiten
  • 16.8 Schritt 7: Verschaffe dir Zugriff auf eine GPU (oder mehrere)
  • 16.9 Schritt 8: Lass dich für praktische Erfahrungen bezahlen
  • 16.10 Schritt 9: Beteilige dich an einem Open-Source-Projekt
  • 16.11 Schritt 10: Fördere deine Community vor Ort
  • Stichwortverzeichnis

More of this series

    Related titles

      More of this author(s)