Neuronale Netze und Deep Learning kapieren -- Der einfache Praxiseinstieg mit Beispielen in Python

Book description

  • Von den Grundlagen Neuronaler Netze über Machine Learning bis hin zu Deep-Learning-Algorithmen
  • Anschauliche Diagramme, Anwendungsbeispiele in Python und der Einsatz von NumPy
  • Keine Vorkenntnisse in Machine Learning oder höherer Mathematik erforderlich

Deep Learning muss nicht kompliziert sein. Mit diesem Buch lernst du anhand vieler Beispiele alle Grundlagen, die du brauchst, um Deep-Learning-Algorithmen zu verstehen und anzuwenden. Dafür brauchst du nichts weiter als Schulmathematik und Kenntnisse der Programmiersprache Python. Alle Codebeispiele werden ausführlich erläutert und mathematische Hintergründe anhand von Analogien veranschaulicht.

Der Autor erklärt leicht verständlich, wie Neuronale Netze lernen und wie sie mit Machine-Learning-Verfahren trainiert werden können. Du erfährst, wie du dein erstes Neuronales Netz erstellst und wie es mit Deep-Learning-Algorithmen Bilder erkennen sowie natürliche Sprache verarbeiten und modellieren kann. Hierbei kommen Netze mit mehreren Schichten wie CNNs und RNNs zum Einsatz.

Fokus des Buches ist es, Neuronale Netze zu trainieren, ohne auf vorgefertigte Python-Frameworks zurückzugreifen. So verstehst du Deep Learning von Grund auf und kannst in Zukunft auch komplexe Frameworks erfolgreich für deine Projekte einsetzen.

Aus dem Inhalt:
  • Parametrische und nichtparametrische Modelle
  • Überwachtes und unüberwachtes Lernen
  • Vorhersagen mit mehreren Ein- und Ausgaben
  • Fehler messen und verringern
  • Hot und Cold Learning
  • Batch- und stochastischer Gradientenabstieg
  • Überanpassung vermeiden
  • Generalisierung
  • Dropout-Verfahren
  • Backpropagation und Forward Propagation
  • Bilderkennung
  • Verarbeitung natürlicher Sprache (NLP)
  • Sprachmodellierung
  • Aktivierungsfunktionen
    • Sigmoid-Funktion
    • Tangens hyperbolicus
    • Softmax
  • Convolutional Neural Networks (CNNs)
  • Recurrent Neural Networks (RNNs)
  • Long Short-Term Memory (LSTM)
  • Deep-Learning-Framework erstellen

Table of contents

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

Product information

  • Title: Neuronale Netze und Deep Learning kapieren -- Der einfache Praxiseinstieg mit Beispielen in Python
  • Author(s): Andrew W. Trask
  • Release date: November 2019
  • Publisher(s): mitp Verlag
  • ISBN: 9783747500170