Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Das Ziel des Einsatzes von Anwendungen mit maschinellem Lernen
In den letzten zehn Jahren wurde maschinelles Lernen (ML) zunehmend für eine Vielzahl von Produkten eingesetzt, z. B. für automatische Unterstützungssysteme, Übersetzungsdienste, Empfehlungsmaschinen, Modelle zur Erkennung von Betrug und viele, viele mehr.
Überraschenderweise gibt es nicht viele Ressourcen, die Ingenieuren und Wissenschaftlern beibringen, wie man solche Produkte entwickelt. In vielen Büchern und Kursen wird gelehrt, wie man ML-Modelle trainiert oder wie man Softwareprojekte erstellt, aber nur wenige verbinden beide Welten, um zu lehren, wie man praktische Anwendungen erstellt, die auf ML basieren.
Der Einsatz von ML als Teil einer Anwendung erfordert eine Mischung aus Kreativität, soliden technischen Verfahren und einer analytischen Denkweise. Die Entwicklung von ML-Produkten ist bekanntermaßen eine große Herausforderung, denn sie erfordert viel mehr als nur das Training eines Modells auf einem Datensatz. Die Wahl des richtigen ML-Ansatzes für ein bestimmtes Merkmal, die Analyse von Modellfehlern und Datenqualitätsproblemen sowie die Validierung der Modellergebnisse, um die Produktqualität zu gewährleisten, sind allesamt anspruchsvolle Probleme, die den Kern des ML-Erstellungsprozesses ausmachen.
Dieses Buch geht jeden einzelnen Schritt dieses Prozesses durch und soll dir dabei helfen, jeden einzelnen Schritt zu erreichen, indem es eine Mischung aus Methoden, Codebeispielen und Ratschlägen von mir und anderen erfahrenen Praktikern vermittelt. Wir vermitteln dir die praktischen Fähigkeiten, die du brauchst, um ML-gestützte Anwendungen zu entwickeln, zu erstellen und einzusetzen. Das Ziel dieses Buches ist es, dir zu helfen, in jedem Teil des ML-Prozesses erfolgreich zu sein.
Nutze ML, um praktische Anwendungen zu entwickeln
Wenn du regelmäßig ML-Artikel und Blogs von Ingenieuren liest, fühlst du dich vielleicht von der Kombination aus Gleichungen der linearen Algebra und technischen Begriffen überwältigt. Die hybride Natur des Fachgebiets führt dazu, dass sich viele Ingenieure und Wissenschaftler, die ihr vielfältiges Fachwissen einbringen könnten, vom Bereich ML eingeschüchtert fühlen. Auch Unternehmer und Produktverantwortliche haben oft Schwierigkeiten, ihre Geschäftsideen mit dem zu verbinden, was heute mit ML möglich ist (und was vielleicht morgen möglich sein wird).
Dieses Buch enthält die Lektionen, die ich bei meiner Arbeit in Datenteams in verschiedenen Unternehmen gelernt habe und mit denen ich Hunderten von Datenwissenschaftlern, Softwareentwicklern und Produktmanagern geholfen habe, angewandte ML-Projekte zu entwickeln, indem ich das Programm für künstliche Intelligenz bei Insight Data Science geleitet habe.
Das Ziel dieses Buches ist es, eine praktische Schritt-für-Schritt-Anleitung für die Entwicklung von ML-gestützten Anwendungen zu geben. Es ist praxisorientiert und konzentriert sich auf konkrete Tipps und Methoden, die dir beim Prototyping, der Iteration und dem Einsatz von Modellen helfen. Da das Buch ein breites Spektrum an Themen abdeckt, gehen wir bei jedem Schritt nur so weit ins Detail, wie es nötig ist. Wann immer es möglich ist, werde ich dir Ressourcen zur Verfügung stellen, die dir helfen, tiefer in die behandelten Themen einzutauchen.
Wichtige Konzepte werden mit praktischen Beispielen veranschaulicht, darunter eine Fallstudie, die am Ende des Buches von einer Idee zu einem einsatzfähigen Modell führt. Die meisten Beispiele werden von Illustrationen begleitet, und viele enthalten Code. Der gesamte Code, der in diesem Buch verwendet wird, ist im GitHub-Repository des Buches zu finden.
Da sich dieses Buch auf die Beschreibung des ML-Prozesses konzentriert, baut jedes Kapitel auf Konzepten auf, die in früheren Kapiteln definiert wurden. Deshalb empfehle ich dir, das Buch der Reihe nach zu lesen, damit du verstehst, wie jeder einzelne Schritt in den Gesamtprozess passt. Wenn du nur einen Teil des ML-Prozesses erforschen willst, bist du mit einem spezielleren Buch vielleicht besser bedient. In diesem Fall habe ich ein paar Empfehlungen für dich.
Zusätzliche Ressourcen
-
Wenn du ML gut genug kennenlernen möchtest, um deine eigenen Algorithmen von Grund auf zu schreiben, empfehle ich dir Data Science from Scratch von Joel Grus. Wenn du dich für die Theorie des Deep Learning interessierst, ist das Lehrbuch Deep Learning (MIT Press) von Ian Goodfellow, Yoshua Bengio und Aaron Courville eine umfassende Quelle.
-
Wenn du dich fragst, wie du Modelle effizient und genau auf bestimmten Datensätzen trainieren kannst, sind Kaggle und fast.ai eine gute Anlaufstelle.
-
Wenn du lernen möchtest, wie man skalierbare Anwendungen erstellt, die viele Daten verarbeiten müssen, empfehle ich dir das Buch Designing Data-Intensive Applications (O'Reilly) von Martin Kleppmann.
Wenn du über Programmiererfahrung und einige grundlegende ML-Kenntnisse verfügst und ML-gesteuerte Produkte entwickeln möchtest, wird dich dieses Buch durch den gesamten Prozess von der Produktidee bis zum fertigen Prototyp führen. Wenn du bereits als Datenwissenschaftler/in oder ML-Ingenieur/in arbeitest, wird dieses Buch dein ML-Entwicklungstool um neue Techniken erweitern. Wenn du nicht programmieren kannst, aber mit Datenwissenschaftlern zusammenarbeitest, kann dir dieses Buch helfen, den ML-Prozess zu verstehen, solange du bereit bist, einige der ausführlichen Code-Beispiele zu überspringen.
Beginnen wir damit, tiefer in die Bedeutung von praktischem ML einzutauchen.
Praktisch ML
Unter kannst du dir ML als den Prozess vorstellen, bei dem Muster in Daten genutzt werden, um Algorithmen automatisch zu optimieren. Das ist eine allgemeine Definition, und so wird es dich nicht überraschen, dass viele Anwendungen, Tools und Dienste ML in ihre Funktionsweise integrieren.
Einige dieser Aufgaben sind nutzerorientiert, z. B. Suchmaschinen, Empfehlungen auf sozialen Plattformen, Übersetzungsdienste oder Systeme, die automatisch bekannte Gesichter auf Fotos erkennen, Anweisungen von Sprachbefehlen befolgen oder versuchen, nützliche Vorschläge zum Beenden eines Satzes in einer E-Mail zu machen.
Einige arbeiten auf weniger sichtbare Weise, indem sie Spam-E-Mails und betrügerische Konten herausfiltern, Werbung ausliefern, zukünftige Nutzungsmuster vorhersagen, um Ressourcen effizient zuzuweisen, oder mit der Personalisierung von Websites für jeden Nutzer experimentieren.
Viele Produkte nutzen derzeit ML, und noch mehr könnten dies tun. Praktische ML bezieht sich auf die Aufgabe, praktische Probleme zu identifizieren, die von ML profitieren könnten, und eine erfolgreiche Lösung für diese Probleme zu liefern. Von einem hochgesteckten Produktziel zu ML-gestützten Ergebnissen zu gelangen, ist eine anspruchsvolle Aufgabe, bei der dir dieses Buch helfen will.
In manchen ML-Kursen lernen die Schüler/innen ML-Methoden kennen, indem sie einen Datensatz erhalten und ein Modell darauf trainieren, aber das Trainieren eines Algorithmus auf einem Datensatz ist nur ein kleiner Teil des ML-Prozesses. Überzeugende ML-gestützte Produkte beruhen auf mehr als einer aggregierten Genauigkeit und sind das Ergebnis eines langen Prozesses. Dieses Buch beginnt bei der Ideenfindung und setzt sich bis zur Produktion fort, wobei jeder Schritt anhand einer Beispielanwendung erläutert wird. Wir stellen Werkzeuge, bewährte Methoden und häufige Fallstricke vor, die wir aus der Zusammenarbeit mit Teams gelernt haben, die diese Art von Systemen tagtäglich einsetzen.
Was dieses Buch behandelt
Um das Thema der Entwicklung von ML-gestützten Anwendungen zu behandeln, ist der Schwerpunkt dieses Buches konkret und praktisch. Dieses Buch soll vor allem den gesamten Prozess der Entwicklung von ML-gestützten Anwendungen veranschaulichen.
Dazu beschreibe ich zunächst die Methoden, mit denen die einzelnen Schritte des Prozesses angegangen werden. Dann veranschauliche ich diese Methoden anhand eines Beispielprojekts als Fallstudie. Das Buch enthält außerdem viele praktische Beispiele für ML in der Industrie und enthält Interviews mit Fachleuten, die ML-Modelle für die Produktion gebaut und gewartet haben.
Der gesamte Prozess von ML
Um erfolgreich ein ML-Produkt anzubieten, musst du mehr tun, als nur ein Modell zu trainieren. Du musst dein Produktbedürfnis sorgfältig in ein ML-Problem umwandeln, geeignete Daten sammeln, effizient zwischen den Modellen iterieren, deine Ergebnisse validieren und sie auf robuste Weise einsetzen.
Die Erstellung eines Modells macht oft nur ein Zehntel des gesamten Arbeitsaufwands eines ML-Projekts aus. Die Beherrschung der gesamten ML-Pipeline ist entscheidend, um erfolgreich Projekte zu erstellen, bei ML-Interviews erfolgreich zu sein und in ML-Teams einen Spitzenbeitrag zu leisten.
Eine technische, praktische Fallstudie
Während wir die Algorithmen nicht von Grund auf in C neu implementieren, werden wir praktisch und technisch bleiben, indem wir Bibliotheken und Tools verwenden, die Abstraktionen auf höherer Ebene bieten. In diesem Buch werden wir gemeinsam eine ML-Beispielanwendung entwickeln, von der ersten Idee bis zum fertigen Produkt.
Ich werde die wichtigsten Konzepte mit Codeschnipseln veranschaulichen, wo dies möglich ist, sowie mit Abbildungen, die unsere Anwendung beschreiben. Der beste Weg, ML zu lernen, ist, es in der Praxis anzuwenden. Deshalb möchte ich dich ermutigen, das Buch durchzuarbeiten, die Beispiele nachzuvollziehen und sie anzupassen, um deine eigene ML-gestützte Anwendung zu entwickeln.
Echte Geschäftsanwendungen
In diesem Buch werde ich Gespräche und Ratschläge von ML-Führungskräften einbeziehen, die in Datenteams von Tech-Unternehmen wie StitchFix, Jawbone und FigureEight gearbeitet haben. In diesen Gesprächen geht es um praktische Ratschläge, die wir beim Aufbau von ML-Anwendungen mit Millionen von Nutzern erhalten haben, und um die Korrektur einiger weit verbreiteter Missverständnisse darüber, was Datenwissenschaftler und Data-Science-Teams erfolgreich macht.
Voraussetzungen
Dieses Buch setzt eine gewisse Vertrautheit mit der Programmierung voraus. Ich werde Python hauptsächlich für technische Beispiele verwenden und gehe davon aus, dass der Leser mit der Syntax vertraut ist. Wenn du dein Python-Wissen auffrischen möchtest, empfehle ich dir The Hitchhiker's Guide to Python (O'Reilly) von Kenneth Reitz und Tanya Schlusser.
Außerdem werde ich zwar die meisten ML-Konzepte, auf die im Buch Bezug genommen wird, definieren, aber nicht die Funktionsweise aller verwendeten ML-Algorithmen behandeln. Bei den meisten dieser Algorithmen handelt es sich um Standard-ML-Methoden, die in einführenden ML-Ressourcen behandelt werden, wie z. B. in den unter "Zusätzliche Ressourcen" genannten .
Unsere Fallstudie: ML-unterstütztes Schreiben
Um diese Idee konkret zu veranschaulichen, werden wir im Laufe dieses Buches gemeinsam eine ML-Anwendung erstellen.
Als Fallstudie habe ich eine Anwendung gewählt, die die Komplexität der Iteration und des Einsatzes von ML-Modellen gut veranschaulichen kann. Außerdem wollte ich ein Produkt vorstellen, das einen Mehrwert bietet. Deshalb werden wir einen durch maschinelles Lernen unterstützten Schreibassistenten implementieren.
Unser Ziel ist es, ein System zu entwickeln, das den Nutzern hilft, besser zu schreiben. Vor allem wollen wir den Menschen helfen, bessere Fragen zu schreiben. Das mag wie ein sehr vages Ziel erscheinen, das ich im Laufe des Projekts noch genauer definieren werde, aber es ist aus einigen wichtigen Gründen ein gutes Beispiel.
- Textdaten sind überall
-
Textdaten sind für die meisten denkbaren Anwendungsfälle im Überfluss vorhanden und bilden den Kern vieler praktischer ML-Anwendungen. Egal, ob wir versuchen, die Rezensionen zu unserem Produkt besser zu verstehen, eingehende Supportanfragen genau zu kategorisieren oder unsere Werbebotschaften auf potenzielle Zielgruppen zuzuschneiden, wir werden Textdaten konsumieren und produzieren.
- Schreibassistenten sind nützlich
-
Von der Textvorhersagefunktion von Gmail bis zur intelligenten Rechtschreibprüfung von Grammarly haben ML-gestützte Editoren bewiesen, dass sie den Nutzern auf vielfältige Weise einen Mehrwert bieten können. Deshalb ist es für uns besonders interessant zu untersuchen, wie man sie von Grund auf neu entwickeln kann.
- ML-unterstütztes Schreiben ist eigenständig
-
Viele ML-Anwendungen können nur dann funktionieren, wenn sie eng in ein breiteres Ökosystem integriert sind, wie z. B. die ETA-Vorhersage für Ride-Hailing-Unternehmen, Such- und Empfehlungssysteme für Online-Händler und Ad-Bidding-Modelle. Ein Texteditor hingegen kann, auch wenn er von der Integration in ein Ökosystem zur Dokumentenbearbeitung profitieren könnte, auch für sich allein wertvoll sein und über eine einfache Website zugänglich gemacht werden.
Im Laufe des Buches werden wir anhand dieses Projekts die Herausforderungen und die damit verbundenen Lösungen aufzeigen, die wir für den Aufbau von ML-gestützten Anwendungen vorschlagen.
Der ML-Prozess
Der Weg von einer Idee zu einer einsatzbereiten ML-Anwendung ist lang und kurvenreich. Nachdem ich viele Unternehmen und Einzelpersonen beim Aufbau solcher Projekte erlebt habe, habe ich vier wichtige aufeinanderfolgende Phasen identifiziert, die jeweils in einem Abschnitt dieses Buches behandelt werden.
-
Den richtigen ML-Ansatz finden: Das Feld der ML ist breit gefächert und bietet oft eine Vielzahl von Möglichkeiten, ein bestimmtes Produktziel zu erreichen. Welcher Ansatz für ein bestimmtes Problem am besten geeignet ist, hängt von vielen Faktoren wie den Erfolgskriterien, der Datenverfügbarkeit und der Komplexität der Aufgabe ab. In dieser Phase geht es darum, die richtigen Erfolgskriterien festzulegen und einen geeigneten Ausgangsdatensatz und ein geeignetes Modell zu finden.
-
Baue einen ersten Prototyp: Beginne mit dem Bau eines End-to-End-Prototyps, bevor du an einem Modell arbeitest. Dieser Prototyp sollte darauf abzielen, das Produktziel ohne ML zu erreichen, und ermöglicht es dir, herauszufinden, wie du ML am besten einsetzen kannst. Sobald du einen Prototyp gebaut hast, solltest du wissen, ob du ML brauchst, und du solltest in der Lage sein, einen Datensatz zu sammeln, um ein Modell zu trainieren.
-
Iteration von Modellen: Jetzt, wo du einen Datensatz hast, kannst du ein Modell trainieren und seine Unzulänglichkeiten bewerten. Das Ziel dieser Phase ist es, immer wieder zwischen Fehleranalyse und Implementierung abzuwechseln. Die Geschwindigkeit, mit der diese Iterationsschleife abläuft, ist der beste Weg, um die ML-Entwicklungsgeschwindigkeit zu erhöhen.
-
Einsatz und Überwachung: Sobald ein Modell eine gute Leistung zeigt, solltest du eine geeignete Einsatzoption wählen. Einmal eingesetzt, schlagen Modelle oft auf unerwartete Weise fehl. In den letzten beiden Kapiteln dieses Buches geht es um Methoden zur Eindämmung und Überwachung von Modellfehlern.
Es gibt viel zu berichten, also lass uns gleich mit Kapitel 1 beginnen!
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.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
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 weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Ergänzende Code-Beispiele für dieses Buch stehen unter https://oreil.ly/ml-powered-applications zum Download bereit .
Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an bookquestions@oreilly.com.
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. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. 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 Genehmigung erforderlich .
Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: Building Machine Learning Powered Applications von Emmanuel Ameisen (O'Reilly). Copyright 2020 Emmanuel Ameisen, 978-1-492-04511-3."
Wenn du der Meinung bist, dass deine Verwendung von Codebeispielen nicht unter die Fair-Use-Regelung oder die hier erteilte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Online Learning
Hinweis
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel, Konferenzen und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen findest du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte wende dich mit Kommentaren 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)
Du kannst die Webseite zu diesem Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten, unter https://oreil.ly/Building_ML_Powered_Applications aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
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
Danksagungen
Das Projekt, dieses Buch zu schreiben, entstand aus meiner Arbeit als Mentor für die Fellows und als Betreuer von ML-Projekten bei Insight Data Science. Ich möchte Jake Klamka und Jeremy Karnowski dafür danken, dass sie mir die Möglichkeit gegeben haben, dieses Programm zu leiten und mich ermutigt haben, über die dabei gemachten Erfahrungen zu schreiben. Ich danke auch den Hunderten von Fellows, mit denen ich bei Insight zusammengearbeitet habe, dass ich ihnen helfen konnte, die Grenzen eines ML-Projekts zu erweitern.
Ein Buch zu schreiben ist eine gewaltige Aufgabe, und die Mitarbeiter von O'Reilly haben mir bei jedem Schritt geholfen, sie zu bewältigen. Insbesondere möchte ich mich bei meiner Lektorin Melissa Potter bedanken, die mich unermüdlich mit Ratschlägen, Vorschlägen und moralischer Unterstützung auf dem Weg zum Buch unterstützt hat. Mike Loukides danke ich dafür, dass er mich irgendwie davon überzeugt hat, dass das Schreiben eines Buches ein vernünftiges Unterfangen ist.
Vielen Dank an die technischen Prüfer, die frühe Entwürfe dieses Buches durchforstet, auf Fehler hingewiesen und Verbesserungsvorschläge gemacht haben. Vielen Dank an Alex Gude, Jon Krohn, Kristen McIntyre und Douwe Osinga, die sich trotz ihres vollen Terminkalenders die Zeit genommen haben, um dieses Buch so gut wie möglich zu machen. Den Datenpraktikern, die ich nach den Herausforderungen der ML-Praxis gefragt habe, die ihrer Meinung nach am meisten Aufmerksamkeit benötigen, danke ich für ihre Zeit und ihre Einsichten und hoffe, dass sie in diesem Buch angemessen berücksichtigt werden.
Und schließlich möchte ich mich bei meiner unerschütterlichen Partnerin Mari, meinem sarkastischen Kumpel Eliott, meiner klugen und geduldigen Familie und meinen Freunden, die mich nicht als vermisst gemeldet haben, für ihre unerschütterliche Unterstützung während der vielen arbeitsreichen Wochenenden und langen Nächte, die das Schreiben dieses Buches mit sich brachte, bedanken. Ihr habt dieses Buch Wirklichkeit werden lassen.
Get Aufbau von Anwendungen mit maschinellem Lernen 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.