Deep Learning

Book description

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Obwohl das Interesse an maschinellem Lernen einen Höhepunkt erreicht hat, werden Projekte oft durch überzogene Erwartungen zunichte gemacht, bevor sie weit kommen. Wie kann maschinelles Lernen - insbesondere tiefe neuronale Netze - in deinem Unternehmen einen echten Unterschied machen? Dieser praktische Leitfaden bietet nicht nur die meisten praktischen Informationen zu diesem Thema, sondern hilft dir auch dabei, effiziente Deep-Learning-Netzwerke zu erstellen.

Die Autoren Adam Gibson und Josh Patterson stellen zunächst die Theorie des Deep Learning vor, bevor sie ihre Open-Source-Bibliothek Deeplearning4j (DL4J) für die Entwicklung von Workflows der Produktionsklasse vorstellen. Anhand von Beispielen aus der Praxis lernst du Methoden und Strategien für das Training von Deep-Network-Architekturen und die Ausführung von Deep-Learning-Workflows auf Spark und Hadoop mit DL4J.

  • Eintauchen in Konzepte des maschinellen Lernens im Allgemeinen und des Deep Learning im Besonderen
  • Verstehe, wie sich Deep Networks aus den Grundlagen neuronaler Netze entwickelt haben
  • die wichtigsten Deep-Network-Architekturen kennenlernen, darunter Convolutional und Recurrent
  • Lernen, wie man bestimmte tiefe Netzwerke auf das richtige Problem anwendet
  • Die Grundlagen des Tunings allgemeiner neuronaler Netze und spezieller Deep Network-Architekturen kennenlernen
  • Vektorisierungstechniken für verschiedene Datentypen mit DataVec, dem Workflow-Tool von DL4J, anwenden
  • Lerne, wie du DL4J nativ auf Spark und Hadoop nutzen kannst

Table of contents

  1. Vorwort
    1. Was steht in diesem Buch?
    2. Wer ist "der Praktiker"?
    3. Wer sollte dieses Buch lesen?
      1. Der Enterprise Machine Learning Practitioner
      2. Die Unternehmensleitung
      3. Der Akademiker
    4. In diesem Buch verwendete Konventionen
    5. Code-Beispiele verwenden
    6. Administrative Hinweise
    7. O'Reilly Safari
    8. Wie du uns kontaktierst
    9. Danksagungen
      1. Josh
      2. Adam
  2. 1. Ein Überblick über maschinelles Lernen
    1. Die Lernmaschinen
      1. Wie können Maschinen lernen?
      2. Biologische Inspiration
      3. Was ist Deep Learning?
      4. Auf dem Weg zum Kaninchenbau
    2. Der Rahmen der Fragen
    3. Die Mathematik hinter dem maschinellen Lernen: Lineare Algebra
      1. Scalars
      2. Vektoren
      3. Matrizen
      4. Tensoren
      5. Hyperplanes
      6. Relevante mathematische Operationen
      7. Daten in Vektoren umwandeln
      8. Gleichungssysteme lösen
    4. Die Mathematik hinter dem maschinellen Lernen: Statistik
      1. Wahrscheinlichkeit
      2. Bedingte Wahrscheinlichkeiten
      3. Posterior Wahrscheinlichkeit
      4. Ausschüttungen
      5. Stichproben gegenüber der Bevölkerung
      6. Resampling-Methoden
      7. Voreingenommenheit bei der Auswahl
      8. Wahrscheinlichkeiten
    5. Wie funktioniert maschinelles Lernen?
      1. Regression
      2. Klassifizierung
      3. Clustering
      4. Underfitting und Overfitting
      5. Optimierung
      6. Konvexe Optimierung
      7. Gradient Descent
      8. Stochastischer Gradientenabstieg
      9. Quasi-Newton-Optimierungsverfahren
      10. Generative versus diskriminative Modelle
    6. Logistische Regression
      1. Die logistische Funktion
      2. Die Ausgabe der logistischen Regression verstehen
    7. Modelle evaluieren
      1. Die Verwirrungsmatrix
    8. Ein Verständnis für maschinelles Lernen aufbauen
  3. 2. Grundlagen der neuronalen Netze und des Deep Learning
    1. Neuronale Netze
      1. Das biologische Neuron
      2. Das Perceptron
      3. Mehrschichtige Feed-Forward-Netzwerke
    2. Neuronale Netze trainieren
      1. Backpropagation Learning
    3. Aktivierungsfunktionen
      1. Linear
      2. Sigmoid
      3. Tanh
      4. Hard Tanh
      5. Softmax
      6. Gleichgerichtet Linear
    4. Verlustfunktionen
      1. Notation der Verlustfunktion
      2. Verlustfunktionen für Regression
      3. Verlustfunktionen für die Klassifizierung
      4. Verlustfunktionen für die Rekonstruktion
    5. Hyperparameter
      1. Lernrate
      2. Regulierung
      3. Momentum
      4. Sparsamkeit
  4. 3. Grundlagen von Deep Networks
    1. Definieren von Deep Learning
      1. Was ist Deep Learning?
      2. Organisation dieses Kapitels
    2. Gemeinsame Architekturprinzipien von Deep Networks
      1. Parameter
      2. Lagen
      3. Aktivierungsfunktionen
      4. Verlustfunktionen
      5. Optimierungsalgorithmen
      6. Hyperparameter
      7. Zusammenfassung
    3. Bausteine von Deep Networks
      1. RBMs
      2. Autokodierer
      3. Variationale Autoencoder
  5. 4. Wichtige Architekturen von Deep Networks
    1. Unüberwachte vortrainierte Netzwerke
      1. Tiefe Belief-Netzwerke
      2. Generative adversarische Netze
    2. Faltungsneuronale Netze (CNNs)
      1. Biologische Inspiration
      2. Intuition
      3. CNN Architektur Überblick
      4. Eingangsschichten
      5. Faltungsschichten
      6. Pooling-Schichten
      7. Vollständig verbundene Schichten
      8. Andere Anwendungen von CNNs
      9. Bemerkenswerte CNNs
      10. Zusammenfassung
    3. Rekurrente neuronale Netze
      1. Modellierung der Zeitdimension
      2. 3D volumetrische Eingabe
      3. Warum nicht Markov-Modelle?
      4. Allgemeine rekurrente neuronale Netzarchitektur
      5. LSTM-Netzwerke
      6. Domänenspezifische Anwendungen und Blended Networks
    4. Rekursive neuronale Netze
      1. Netzwerkarchitektur
      2. Arten von rekursiven neuronalen Netzen
      3. Anwendungen von rekursiven neuronalen Netzen
    5. Zusammenfassung und Diskussion
      1. Wird Deep Learning andere Algorithmen überflüssig machen?
      2. Verschiedene Probleme haben verschiedene beste Methoden
      3. Wann brauche ich Deep Learning?
  6. 5. Tiefe Netzwerke aufbauen
    1. Tiefe Netze auf das richtige Problem abstimmen
      1. Spaltenförmige Daten und mehrschichtige Perceptrons
      2. Bilder und Faltungsneuronale Netze
      3. Zeitreihen-Sequenzen und rekurrente neuronale Netze
      4. Hybride Netzwerke nutzen
    2. Die DL4J-Suite von Tools
      1. Vektorisierung und DataVec
      2. Laufzeiten und ND4J
    3. Grundlegende Konzepte der DL4J API
      1. Laden und Speichern von Modellen
      2. Input für das Modell erhalten
      3. Einrichten der Modellarchitektur
      4. Ausbildung und Bewertung
    4. Modellierung von CSV-Daten mit mehrschichtigen Perceptron-Netzen
      1. Einrichten der Eingabedaten
      2. Festlegen der Netzwerkarchitektur
      3. Das Modell trainieren
      4. Bewertung des Modells
    5. Modellierung handgeschriebener Bilder mit CNNs
      1. Java Code Listing für das LeNet CNN
      2. Laden und Vektorisieren der Eingabebilder
      3. Netzwerkarchitektur für LeNet in DL4J
      4. Training des CNN
    6. Modellierung von Sequenzdaten mit rekurrenten neuronalen Netzen
      1. Shakespeare mit LSTMs generieren
      2. Klassifizierung von Sensor-Zeitserien mit LSTMs
    7. Verwendung von Autoencodern zur Erkennung von Anomalien
      1. Java Code Listing für Autoencoder Beispiel
      2. Einrichten der Eingabedaten
      3. Autoencoder Netzwerkarchitektur und Training
      4. Bewertung des Modells
    8. Verwendung von Variations-Autoencodern zur Rekonstruktion von MNIST-Ziffern
      1. Code Listing zur Rekonstruktion von MNIST-Ziffern
      2. Prüfung des VAE-Modells
    9. Anwendungen von Deep Learning in der natürlichen Sprachverarbeitung
      1. Worteinbettung mit Word2Vec lernen
      2. Verteilte Repräsentationen von Sätzen mit Absatzvektoren
      3. Absatzvektoren für die Klassifizierung von Dokumenten verwenden
  7. 6. Abstimmung tiefer Netzwerke
    1. Grundlegende Konzepte für das Tuning tiefer Netze
      1. Eine Intuition für den Aufbau tiefer Netzwerke
      2. Die Intuition als schrittweiser Prozess aufbauen
    2. Abgleich von Eingangsdaten und Netzwerkarchitekturen
      1. Zusammenfassung
    3. Verknüpfung von Modellzielen und Output-Ebenen
      1. Regressionsmodell Ausgangsschicht
      2. Klassifizierungsmodell Output Layer
    4. Arbeiten mit Layer Count, Parameter Count und Speicher
      1. Vorwärtsgerichtete mehrschichtige neuronale Netze
      2. Kontrolle der Anzahl der Ebenen und Parameter
      3. Schätzung des Netzwerkspeicherbedarfs
    5. Strategien zur Gewichtsinitialisierung
    6. Aktivierungsfunktionen verwenden
      1. Übersichtstabelle für Aktivierungsfunktionen
    7. Anwendung von Verlustfunktionen
    8. Lernquoten verstehen
      1. Verwendung des Verhältnisses der Aktualisierungen zu den Parametern
      2. Spezifische Empfehlungen für Lernquoten
    9. Wie sich Sparsamkeit auf das Lernen auswirkt
    10. Anwendung von Optimierungsmethoden
      1. SGD Bewährte Methoden
    11. Parallelisierung und GPUs für schnellere Ausbildung nutzen
      1. Online-Lernen und parallele iterative Algorithmen
      2. Parallelisierung von SGD in DL4J
      3. GPUs
    12. Steuerung von Epochen und Mini-Batch-Größe
      1. Die Kompromisse bei der Mini-Batch-Größe verstehen
    13. Wie man die Regularisierung verwendet
      1. Prioritäten als Regulatoren
      2. Max-Norm Regularisierung
      3. Ausstieg
      4. Andere Regularisierungsthemen
    14. Arbeit mit Klassenungleichgewicht
      1. Methoden für die Probenahme in den Klassen
      2. Gewichtete Verlustfunktionen
    15. Umgang mit Overfitting
    16. Netzwerkstatistiken über die Tuning-Oberfläche verwenden
      1. Erkennung einer schlechten Gewichtsinitialisierung
      2. Erkennen von nicht gemischten Daten
      3. Probleme mit der Regularisierung aufspüren
  8. 7. Tuning spezifischer Deep Network-Architekturen
    1. Faltungsneuronale Netze (CNNs)
      1. Gängige Faltungsmuster in der Architektur
      2. Faltungsschichten konfigurieren
      3. Pooling-Schichten konfigurieren
      4. Lernen übertragen
    2. Rekurrente neuronale Netze
      1. Netzwerk-Eingangsdaten und Eingangsschichten
      2. Ausgabeschichten und RnnOutputLayer
      3. Das Netzwerk schulen
      4. Gemeinsame Probleme mit LSTMs debuggen
      5. Auffüllen und Maskieren
      6. Auswertung und Punktevergabe mit Maskierung
      7. Varianten der rekurrenten Netzarchitekturen
    3. Eingeschränkte Boltzmann-Maschinen
      1. Versteckte Einheiten und Modellierung verfügbarer Informationen
      2. Verschiedene Einheiten verwenden
      3. Regularisierung mit RBMs verwenden
    4. DBNs
      1. Momentum nutzen
      2. Regularisierung verwenden
      3. Ermittlung der Anzahl der verdeckten Einheiten
  9. 8. Vektorisierung
    1. Einführung in die Vektorisierung beim maschinellen Lernen
      1. Warum müssen wir Daten vektorisieren?
      2. Strategien für den Umgang mit säulenartigen Rohdatenattributen
      3. Feature Engineering und Normalisierungstechniken
    2. DataVec für ETL und Vektorisierung verwenden
    3. Bilddaten vektorisieren
      1. Darstellung von Bilddaten in DL4J
      2. Bilddaten und Vektornormalisierung mit DataVec
    4. Arbeiten mit sequenziellen Daten in der Vektorisierung
      1. Die wichtigsten Variationen von sequentiellen Datenquellen
      2. Vektorisierung sequenzieller Daten mit DataVec
    5. Arbeiten mit Text in der Vektorisierung
      1. Tasche voller Worte
      2. TF-IDF
      3. Vergleich von Word2Vec und VSM Vergleich
    6. Mit Diagrammen arbeiten
  10. 9. Deep Learning und DL4J auf Spark verwenden
    1. Einführung in die Nutzung von DL4J mit Spark und Hadoop
      1. Bedienung von Spark über die Kommandozeile
    2. Konfigurieren und Abstimmen der Spark-Ausführung
      1. Spark auf Mesos ausführen
      2. Spark auf YARN ausführen
      3. Allgemeiner Leitfaden zur Funkenabstimmung
      4. DL4J-Aufträge auf Spark abstimmen
    3. Einrichten eines Maven-Projektobjektmodells für Spark und DL4J
      1. Ein pom.xml File Dependency Template
      2. Einrichten einer POM-Datei für CDH 5.X
      3. Einrichten einer POM-Datei für HDP 2.4
    4. Fehlersuche bei Spark und Hadoop
      1. Häufige Probleme mit ND4J
    5. Parallele DL4J-Ausführung auf Spark
      1. Ein minimales Spark-Trainingsbeispiel
    6. DL4J API Bewährte Methoden für Spark
    7. Multilayer Perceptron Spark Beispiel
      1. Einrichten der MLP-Netzwerkarchitektur für Spark
      2. Verteilte Ausbildung und Modellbewertung
      3. Erstellen und Ausführen eines DL4J Spark Auftrags
    8. Shakespeare-Text mit Spark und Langzeitgedächtnis generieren
      1. Einrichten der LSTM-Netzwerkarchitektur
      2. Ausbildung, Verfolgung des Fortschritts und Verständnis der Ergebnisse
    9. Modellierung von MNIST mit einem Convolutional Neural Network auf Spark
      1. Konfigurieren des Spark-Auftrags und Laden der MNIST-Daten
      2. Einrichten der LeNet CNN Architektur und Training
  11. A. Was ist künstliche Intelligenz?
    1. Die Geschichte bis jetzt
      1. Definieren von Deep Learning
      2. Künstliche Intelligenz definieren
    2. Was treibt das Interesse an KI heute an?
    3. Der Winter ist im Anmarsch
  12. B. RL4J und Reinforcement Learning
    1. Präliminarien
      1. Markov-Entscheidungsprozess
      2. Terminologie
    2. Verschiedene Einstellungen
      1. Model-Free
      2. Beobachtung Einstellung
      3. Einzelspieler- und Adversarial-Spiele
    3. Q-Learning
      1. Von der Politik zu neuronalen Netzen die folgenden
      2. Politik Iteration
      3. Erkundung versus Ausbeutung
      4. Bellman-Gleichung
      5. Anfangszustand Stichprobe
      6. Q-Learning Implementierung
      7. Modellierung Q(s,a)
      8. Erlebniswiederholung
      9. Faltungsschichten und Bildvorverarbeitung
      10. Geschichte Verarbeitung
      11. Doppeltes Q-Lernen
      12. Clipping
      13. Belohnungen skalieren
      14. Vorrangige Wiedergabe
    4. Grafik, Visualisierung und Mean-Q
    5. RL4J
    6. Fazit
  13. C. Zahlen, die jeder kennen sollte
  14. D. Neuronale Netze und Backpropagation: Eine mathematische Herangehensweise
    1. Einführung
    2. Backpropagation in einem mehrschichtigen Perzeptron
  15. E. Verwendung der ND4J-API
    1. Aufbau und grundlegende Verwendung
      1. NDArrays verstehen
      2. ND4J Allgemeine Syntax
      3. Die Grundlagen der Arbeit mit NDArrays
      4. Datensatz
    2. Eingangsvektoren erstellen
      1. Grundlagen der Vektorerstellung
    3. MLLibUtil verwenden
      1. Konvertierung von INDArray zu MLLib Vector
      2. Konvertierung von MLLib-Vektor zu INDArray
    4. Modellvorhersagen mit DL4J machen
      1. Gemeinsame Verwendung von DL4J und ND4J
  16. F. DataVec verwenden
    1. Daten für maschinelles Lernen laden
    2. Laden von CSV-Daten für Multilayer-Perceptrons
    3. Laden von Bilddaten für Faltungsneuronale Netze
    4. Laden von Sequenzdaten für rekurrente neuronale Netze
    5. Daten umwandeln: Datenmanipulation mit DataVec
      1. DataVec-Transformationen: Die wichtigsten Konzepte
      2. DataVec Transform-Funktionalität: Ein Beispiel
  17. G. Arbeiten mit DL4J aus der Quelle
    1. Überprüfen, ob Git installiert ist
    2. Klonen von wichtigen DL4J GitHub Projekten
    3. Herunterladen des Quellcodes per Zip-Datei
    4. Maven zum Erstellen von Quellcode verwenden
  18. H. Einrichten von DL4J-Projekten
    1. Ein neues DL4J-Projekt erstellen
      1. Java
      2. Arbeiten mit Maven
      3. IDEs
    2. Andere Maven POMs einrichten
      1. ND4J und Maven
  19. I. Einrichten von GPUs für DL4J-Projekte
    1. Wechsel des Backends zur GPU
      1. Auswahl einer GPU
      2. Ausbildung auf einem System mit mehreren GPUs
    2. CUDA auf verschiedenen Plattformen
    3. Überwachung der GPU-Leistung
      1. NVIDIA System Management Interface
  20. J. Fehlersuche bei DL4J-Installationen
    1. Vorherige Installation
    2. Speicherfehler bei der Installation von der Quelle
    3. Ältere Versionen von Maven
    4. Maven und PATH-Variablen
    5. Schlechte JDK-Versionen
    6. C++ und andere Entwicklungswerkzeuge
    7. Fenster und Include-Pfade
    8. Überwachung von GPUs
    9. Verwendung der JVisualVM
    10. Arbeiten mit Clojure
    11. OS X und Float-Unterstützung
    12. Fork-Join Fehler in Java 7
    13. Vorsichtsmaßnahmen
      1. Andere lokale Repositorien
      2. Maven-Abhängigkeiten prüfen
      3. Abhängigkeiten neu installieren
      4. Wenn alles andere fehlschlägt
    14. Verschiedene Plattformen
      1. OS X
      2. Windows
      3. Linux
  21. Index
  22. Über die Autoren

Product information

  • Title: Deep Learning
  • Author(s): Josh Patterson, Adam Gibson
  • Release date: October 2024
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9798341604728