Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Was steht in diesem Buch?
Die ersten vier Kapitel dieses Buches konzentrieren sich auf genügend Theorie und Grundlagen, um dir, dem Praktiker, eine Arbeitsgrundlage für den Rest des Buches zu geben. Die letzten fünf Kapitel bauen dann auf diesen Konzepten auf und führen dich durch eine Reihe praktischer Wege des Deep Learning mit DL4J:
- Tiefe Netzwerke aufbauen
- Erweiterte Tuning-Techniken
- Vektorisierung für verschiedene Datentypen
- Deep Learning Workflows auf Spark ausführen
DL4J als Abkürzung für Deeplearning4j
Wir verwenden die Namen DL4J und Deeplearning4j in diesem Buch synonym. Beide Begriffe beziehen sich auf die Tools der Deeplearning4j-Bibliothek.
Wir haben das Buch auf diese Weise konzipiert, weil wir das Gefühl hatten, dass ein Buch benötigt wird, das "genug Theorie" abdeckt und gleichzeitig praktisch genug ist, um Deep-Learning-Workflows der Produktionsklasse aufzubauen. Wir sind der Meinung, dass dieser hybride Ansatz des Buches gut zu diesem Bereich passt.
Kapitel 1 ist ein Überblick über die Konzepte des maschinellen Lernens im Allgemeinen und des Deep Learning im Besonderen, um jedem Leser die Grundlagen zu vermitteln, die er zum Verständnis des restlichen Buches benötigt. Wir haben dieses Kapitel hinzugefügt, weil viele Anfänger eine Auffrischung oder eine Einführung in diese Konzepte gebrauchen können und wir das Projekt einem möglichst großen Publikum zugänglich machen wollten.
Kapitel 2 baut auf den Konzepten aus Kapitel 1 auf und vermittelt dir die Grundlagen neuronaler Netze. Es ist vor allem ein Kapitel über die Theorie neuronaler Netze, aber wir versuchen, die Informationen auf eine zugängliche Weise zu präsentieren. Kapitel 3 baut auf den ersten beiden Kapiteln auf und bringt dich auf den neuesten Stand, wie sich Deep Networks aus den Grundlagen neuronaler Netze entwickelt haben. In Kapitel 4 werden die vier wichtigsten Architekturen von tiefen Netzen vorgestellt und damit die Grundlage für den Rest des Buches gelegt.
In Kapitel 5 führen wir dich durch eine Reihe von Java-Codebeispielen, in denen wir die Techniken aus der ersten Hälfte des Buches anwenden. In den Kapiteln 6 und 7 geht es um die Grundlagen des Tunings allgemeiner neuronaler Netze und dann darum, wie man bestimmte Architekturen von Deep Networks tunen kann. Diese Kapitel sind plattformunabhängig und eignen sich für alle Deep-Learning-Bibliotheken, die in der Praxis eingesetzt werden. Kapitel 8 gibt einen Überblick über die Techniken der Vektorisierung und die Grundlagen der Verwendung von DataVec (dem ETL- und Vektorisierungs-Workflow-Tool von DL4J). Kapitel 9 schließt den Hauptteil des Buches mit einem Überblick darüber ab, wie DL4J nativ auf Spark und Hadoop eingesetzt werden kann, und illustriert drei reale Beispiele, die du auf deinen eigenen Spark-Clustern ausführen kannst.
Das Buch hat viele Anhangskapitel zu Themen, die relevant waren, aber nicht direkt in die Hauptkapitel passten. Themen sind unter anderem:
- Künstliche Intelligenz
- Maven mit DL4J-Projekten verwenden
- Arbeiten mit GPUs
- Verwendung der ND4J-API
- und mehr
Wer ist "der Praktiker"?
Heutzutage der Begriff "Datenwissenschaft" keine klare Definition und wird oft auf viele verschiedene Arten verwendet. Die Welt der Datenwissenschaft und der künstlichen Intelligenz (KI) ist so breit gefächert und unscharf wie alle Begriffe in der heutigen Informatik. Das liegt vor allem daran, dass sich die Welt des maschinellen Lernens in fast allen Disziplinen verheddert hat.
Diese weit verbreitete Verflechtung hat historische Parallelen zu der Zeit, als das World Wide Web (90er Jahre) HTML in alle Disziplinen einbrachte und viele neue Menschen in das Land der Technologie brachte. Auf dieselbe Art und Weise kommen jeden Tag neue Leute - Ingenieure, Statistiker, Analysten, Künstler - in die Welt des maschinellen Lernens. Mit diesem Buch wollen wir Deep Learning (und maschinelles Lernen) demokratisieren und es einem möglichst breiten Publikum zugänglich machen.
Wenn du das Thema interessant findest und dieses Vorwort liest, dannbist du der Praktiker und dieses Buch ist für dich.
Wer sollte dieses Buch lesen?
Wir haben uns dafür entschieden, das Buch mit einer Reihe von Grundlagen zu beginnen, um dich auf eine umfassende Reise durch Deep Learning mitzunehmen.
Wir sind der Meinung, dass zu viele Bücher Kernthemen auslassen, die Praktiker in Unternehmen oft für eine schnelle Wiederholung benötigen. Aufgrund unserer Erfahrungen im Bereich des maschinellen Lernens haben wir uns entschlossen, mit den Themen zu beginnen, die Einsteiger/innen oft auffrischen müssen, um ihre Deep-Learning-Projekte besser unterstützen zu können.
Vielleicht möchtest du die Kapitel 1 und 2 überspringen und direkt mit den Grundlagen des Deep Learning beginnen. Wir gehen jedoch davon aus, dass du es zu schätzen weißt, wenn du das Material von Anfang an kennst, damit du einen reibungslosen Übergang zu den schwierigeren Themen des Deep Learning hast, die auf diesen Grundlagen aufbauen. In den folgenden Abschnitten schlagen wir dir einige Lesestrategien für verschiedene Hintergründe vor.
Der Enterprise Machine Learning Practitioner
Wir unterteilen diese Kategorie in zwei Untergruppen:
- Praktizierender Datenwissenschaftler
- Java Ingenieur
Der praktizierende Datenwissenschaftler
Diese Gruppe erstellt in der Regel bereits Modelle und kennt sich im Bereich der Datenwissenschaft aus. Wenn du zu dieser Gruppe gehörst, kannst du Kapitel 1 wahrscheinlich überspringen und solltest Kapitel 2 nur kurz überfliegen. Wir empfehlen dir, mit Kapitel 3 fortzufahren, weil du dann wahrscheinlich bereit bist, dich mit den Grundlagen von Deep Networks zu beschäftigen.
Der Java-Ingenieur
Java Ingenieure sind in der Regel damit betraut, Code für maschinelles Lernen in Produktionssysteme zu integrieren. Wenn das auf dich zutrifft, wird es für dich interessant sein, mit Kapitel 1 zu beginnen, weil du dann die Fachsprache der Datenwissenschaft besser verstehen wirst. Auch Anhang E sollte für dich von großem Interesse sein, denn der Integrationscode für die Modellbewertung berührt in der Regel direkt die API von ND4J.
Die Unternehmensleitung
Einige unserer Rezensenten waren Führungskräfte großer Fortune-500-Unternehmen und schätzten den Inhalt aus der Perspektive, einen besseren Überblick über das Geschehen im Deep Learning zu bekommen. Ein leitender Angestellter meinte, es sei "eine Minute her" seit dem Studium und Kapitel 1 sei eine gute Zusammenfassung der Konzepte. Wenn du eine Führungskraft bist, empfehlen wir dir, Kapitel 1 kurz zu überfliegen, um dich mit einigen Begriffen vertraut zu machen. Die Kapitel, die sich mit APIs und Beispielen befassen, solltest du dagegen lieber auslassen.
Der Akademiker
Wenn du ein Akademiker bist, wirst du Kapitel 1 und 2 wahrscheinlich überspringen wollen, weil du diese Themen bereits in der Schule behandelt hast. Die Kapitel über das Tuning neuronaler Netze im Allgemeinen und das architekturspezifische Tuning werden für dich von großem Interesse sein, da diese Informationen auf Forschungsergebnissen beruhen und über eine bestimmte Deep Learning-Implementierung hinausgehen. Die Behandlung von ND4J wird auch für dich interessant sein, wenn du lieber lineare Hochleistungsalgebra auf der Java Virtual Machine (JVM) verwendest.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen. Außerdem werden sie für Modul- und Paketnamen verwendet und um Befehle oder anderen Text anzuzeigen, der vom Benutzer wörtlich eingegeben werden muss, sowie für die Ausgabe von Befehlen.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element steht für eine Warnung oder Vorsicht.
Code-Beispiele verwenden
Zusätzliches Material (virtuelle Maschine, Daten, Skripte und benutzerdefinierte Befehlszeilentools usw.) steht unter https://github.com/deeplearning4j/oreilly-book-dl4j-examples zum Download bereit .
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Wenn du eine CD-ROM mit Beispielen aus den O'Reilly-Büchern verkaufst oder verteilst, ist eine Genehmigung erforderlich. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Erlaubnis erforderlich.
Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel:"Deep Learning: A Practitioner's Approach von Josh Patterson und Adam Gibson (O'Reilly). Copyright 2017 Josh Patterson und Adam Gibson, 978-1-4919-1425-0."
Wenn du der Meinung bist, dass deine Verwendung von Codebeispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
Administrative Hinweise
In Java-Codebeispielen lassen wir die Import-Anweisungen oft weg. Du kannst die vollständigen Import-Listen im aktuellen Code-Repository sehen. Die API-Informationen für DL4J, ND4J, DataVec und mehr findest du auf dieser Website:
Alle Codebeispiele findest du unter:
Weitere Informationen über die DL4J-Werkzeugfamilie findest du auf dieser Website:
O'Reilly Safari
Hinweis
Safari (ehemals Safari Books Online) ist eine mitgliedschaftsbasierte Schulungs- und Nachschlageplattform für Unternehmen, Behörden, Lehrkräfte und Einzelpersonen.
Mitglieder haben Zugang zu Tausenden von Büchern, Schulungsvideos, Lernpfaden, interaktiven Tutorials und kuratierten Playlists von über 250 Verlagen, darunter O'Reilly Media, Harvard Business Review, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Adobe, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett und Course Technology, um nur einige zu nennen.
Weitere Informationen erhältst du unter http://oreilly.com/safari.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, schicke eine E-Mail an bookquestions@oreilly.com. Wenn du Fehler oder eklatante Auslassungen entdeckst, wenn du etwas verwirrend findest oder wenn du Ideen zur Verbesserung des Buches hast, schicke bitte eine E-Mail an Josh Patterson unter jpatterson@floe.tv.
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter http://bit.ly/deep_learning_oreilly aufrufen .
Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://www.youtube.com/oreillymedia
Folge Josh Patterson auf Twitter: @jpatanooga
Folge Adam Gibson auf Twitter: @agibsonccc
Danksagungen
Josh
Ich habe mich auf viele Leute verlassen, die viel klüger sind als ich, um die Ideen zu entwickeln und den Inhalt dieses Buches zu überprüfen. Kein Projekt von der Größe von DL4J läuft in einem Vakuum ab, und ich habe mich auf viele der Community-Experten und Ingenieure bei Skymind verlassen, um viele der Ideen und Richtlinien in diesem Buch zu entwickeln.
Ich ahnte nicht, dass die Arbeit an DL4J, die ich zusammen mit Adam (nach einem zufälligen Treffen auf der MLConf) begonnen hatte, in einem Buch münden würde. Um ehrlich zu sein, war ich zwar von Anfang an bei DL4J dabei, aber Adam hat viel mehr Commits gemacht als ich. Ich bin Adam also sehr dankbar für sein Engagement für das Projekt, sein Engagement für die Idee des Deep Learning auf der JVM und dafür, dass er in den unsicheren Anfangstagen den Kurs gehalten hat. Und, ja, du hattest Recht: ND4J war eine gute Idee.
Schreiben kann ein langer, einsamer Weg sein, und ich möchte Alex Black ausdrücklich für seine beträchtlichen Bemühungen danken, nicht nur bei der Durchsicht des Buches, sondern auch für die Beiträge in den Anhängen. Alex' enzyklopädisches Wissen über die veröffentlichte Literatur zu neuronalen Netzwerken war der Schlüssel dazu, viele kleine Details in diesem Buch zu erarbeiten und dafür zu sorgen, dass alle großen und kleinen Dinge korrekt sind. Die Kapitel 6 und 7 wären ohne Alex Black nur halb so gut geworden, wie sie sind.
Susan Eraly war maßgeblich an der Erstellung des Abschnitts über die Verlustfunktionen beteiligt und hat auch das Material für die Anhänge beigesteuert (viele der Gleichungen in diesem Buch verdanken ihre Korrektheit Susan), ebenso wie viele detaillierte Anmerkungen. Melanie Warrick hat die ersten Entwürfe des Buches durchgesehen, Feedback gegeben und Anmerkungen zur Funktionsweise von Convolutional Neural Networks (CNNs) gemacht.
David Kale war ein häufiger Ad-hoc-Reviewer und hielt mich bei vielen wichtigen Netzwerkdetails und Papierreferenzen auf Trab. Dave war immer zur Stelle, wenn es darum ging, aus akademischer Sicht zu beurteilen, wie streng wir sein mussten, und gleichzeitig zu verstehen, welche Art von Publikum wir ansprechen wollten.
James Long war ein kritisches Ohr für meine Tiraden darüber, was in dem Buch stehen sollte und was nicht, und er war in der Lage, einen praktischen Standpunkt aus der Sicht eines praktizierenden Statistikers einzubringen. Oft gab es keine eindeutige Antwort auf die Frage, wie man ein komplexes Thema vermitteln sollte, und James war mein Gesprächspartner, um die Argumente von mehreren Seiten zu beleuchten. Während David Kale und Alex Black mich häufig an die Notwendigkeit mathematischer Strenge erinnerten, spielte James oft den rationalen Advokaten des Teufels, wenn es darum ging, wie viel davon wir brauchen, bevor wir den Leser "in Mathematik ertränken".
Vyacheslav "Raver" Kokorin hat die Entwicklung der Natural Language Processing (NLP)- und Word2Vec-Beispiele entscheidend vorangetrieben.
Ich möchte die Unterstützung durch unseren CEO bei Skymind, Chris Nicholson, hervorheben. Chris hat dieses Buch auf Schritt und Tritt unterstützt und uns nicht zuletzt dabei geholfen, die nötige Zeit und die Ressourcen aufzubringen, um es zu realisieren.
Ich möchte mich bei den Personen bedanken, die Kapitel im Anhang beigetragen haben: Alex Black (Backprop, DataVec), Vyacheslav "Raver" Kokorin (GPUs), Susan Eraly (GPUs) und Ruben Fiszel (Reinforcement Learning). Außerdem haben Grant Ingersol, Dean Wampler, Robert Chong, Ted Malaska, Ryan Geno, Lars George, Suneel Marthi, Francois Garillot und Don Brown das Buch in verschiedenen Phasen geprüft. Alle Fehler, die du in diesem Buch entdeckst, kannst du getrost auf mich schieben.
Ich möchte unserem geschätzten Redakteur, Tim McGovern, für sein Feedback, seine Anmerkungen und seine Geduld mit einem Projekt danken, das sich über Jahre hinzog und um drei Kapitel wuchs. Ich hatte das Gefühl, dass er uns den nötigen Freiraum gegeben hat, um es richtig zu machen, und dafür sind wir ihm sehr dankbar.
Nachfolgend möchte ich einige andere Personen nennen, die meine Karriere bis zu diesem Buch beeinflusst haben: meine Eltern (Lewis und Connie), Dr. Andy Novobiliski (Graduate School), Dr. Mina Sartipi (Doktorvater), Dr. Billy Harris (Graduate Algorithms), Dr. Joe Dumas (Graduate School), Ritchie Carroll (Schöpfer von openPDC), Paul Trachian, Christhe Bisciglia und Mike Olson (für die Anwerbung bei Cloux). Joe Dumas (Graduate School), Ritchie Carroll (Erfinder des openPDC), Paul Trachian, Christophe Bisciglia und Mike Olson (die mich für Cloudera rekrutiert haben), Malcom Ramey (für meinen ersten richtigen Programmierjob), die University of Tennessee in Chattanooga und Lupi's Pizza (für die Verpflegung während des Studiums).
Zu guter Letzt möchte ich mich bei meiner Frau Leslie und meinen Söhnen Ethan, Griffin und Dane für ihre Geduld bedanken, während ich oft bis spät in die Nacht und manchmal auch im Urlaub gearbeitet habe.
Adam
Ich möchte mich bei meinem Team bei Skymind für all die Arbeit bedanken, die sie bei der Durchsicht des Buches und des Inhalts geleistet haben, während wir das Buch immer weiter verbesserten. Mein besonderer Dank gilt Chris, der meine verrückte Idee, ein Buch zu schreiben, während ich versuche, ein Startup zu gründen, toleriert hat.
DL4J begann 2013 mit einer zufälligen Begegnung mit Josh auf der MLConf und hat sich zu einem Projekt entwickelt, das mittlerweile auf der ganzen Welt genutzt wird. DL4J hat mich um die ganze Welt gebracht und mir viele neue Erfahrungen ermöglicht.
Zunächst möchte ich mich bei meinem Co-Autor Josh Patterson bedanken, der den Löwenanteil des Buches geschrieben hat und dem ein großer Teil der Anerkennung gebührt. Er hat Nächte und Wochenenden investiert, um das Buch auf den Weg zu bringen, während ich weiter an der Codebasis gearbeitet und den Inhalt im Laufe der Jahre an neue Funktionen angepasst habe.
Viele unserer Teamkollegen und Mitwirkenden, die schon früh dabei waren, wie Alex, Melanie, Vyacheslav "Raver" Kokorin und später Leute wie Dave, die uns als zusätzliches Paar Augen bei der mathematischen Due Diligence geholfen haben, haben Josh zugestimmt.
Tim McGovern hatte ein offenes Ohr für einige meiner verrückten Ideen zu Inhalten für O'Reilly und war auch so nett, mir den Namen des Buches zu geben.
Get Deep Learning now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.