Machine Learning für Softwareentwickler (eBook)

Von der Python-Codezeile zur Deep-Learning-Anwendung
eBook Download: EPUB
2020 | 1. Auflage
396 Seiten
dpunkt (Verlag)
978-3-96910-026-4 (ISBN)

Lese- und Medienproben

Machine Learning für Softwareentwickler -  Paolo Perrotta
Systemvoraussetzungen
34,90 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

  • Eine Einführung in das maschinelle Lernen für Entwickler
  • Alle wesentlichen Ideen, Werkzeuge und Konzepte des supervised Learning, von neuronalen Netzen und des Deep Learning werden präsentiert
  • Der gesamte Programmcode ist in Python geschrieben



Paolo Perrotta ist ein reisender Software-Mentor. Er schrieb das Buch 'Metaprogramming Ruby' für die Pragmatic Programmers und produzierte die beliebte Schulung 'Wie Git funktioniert' für Pluralsight. Er spricht häufig - auf Konferenzen und, laut seinen Freunden und seiner Familie, so ziemlich überall sonst.

Paolo Perrotta ist ein reisender Software-Mentor. Er schrieb das Buch "Metaprogramming Ruby" für die Pragmatic Programmers und produzierte die beliebte Schulung "Wie Git funktioniert" für Pluralsight. Er spricht häufig – auf Konferenzen und, laut seinen Freunden und seiner Familie, so ziemlich überall sonst.

Wie um alles in der Welt ist so etwas möglich?

Machine Learning kann wie Zauberei wirken. Wie kann ein Computer die Objekte in einem Bild erkennen? Wie kann ein Auto selbstständig fahren?

Diese Leistungen sind nicht nur für Laien verblüffend, sondern auch für viele Softwareentwickler wie Sie und mich. Obwohl ich schon viele Jahre lang Code schrieb, war es mir völlig unklar, wie Machine Learning überhaupt funktionieren konnte. Während ich ein bisschen mit den neuesten Web-Frameworks herumbastelte, schrieben andere Leute faszinierende Software, die wie Science-Fiction wirkte und die ich einfach nicht fassen konnte.

Ich wollte mitmachen. Ich wollte selbst in der Lage sein, solche Dinge zu tun.

Da ich schon wusste, wie man Software schreibt, glaubte ich, ich könnte Machine Learning schnell begreifen. Wie schwer konnte das auch schon sein? Also setzte ich ein zuversichtliches Lächeln auf und widmete mich dem Studium dieses Themas. Mein zuversichtliches Lächeln gefror, als ich gegen ganze Batterien von Wänden anrannte.

Für Entwickler wie mich fühlt sich Machine Learning fremdartig an. Diese Disziplin quillt über von mathematischer Terminologie, akademischen Konventionen und, mal ganz ehrlich gesagt, schlechtem Code. Anstatt auf Tutorials werden Sie auf Vorträge und Forschungsberichte verwiesen. Für viele von uns ist Machine Learning ebenso einschüchternd wie faszinierend.

Dieses Buch ist das, was ich selbst gut hätte gebrauchen können, als ich mich mit Machine Learning zu befassen begann: eine Einführung, die sich an Entwickler richtet und in unserer Sprache geschrieben ist. Nach der Lektüre werden Sie mit den Grundlagen vertraut und in der Lage sein, Machine-Learning-Programme zu schreiben. Höchstwahrscheinlich werden Sie dann zwar immer noch nicht ihr eigenes selbstfahrendes Auto konstruieren können, aber zumindest werden Sie wissen, wie um alles in der Welt so etwas möglich ist.

Über dieses Buch

Dies ist ein Buch für Entwicklerinnen und Programmierer, die Machine Learning von der Pike auf lernen wollen.

Machine Learning ist ein sehr breit gefächertes Gebiet, das sich in einem einzelnen Buch nicht vollständig abhandeln lässt. Der Schwerpunkt liegt hier daher auf den drei Aspekten des Machine Learning, die heutzutage als die wichtigsten gelten: auf überwachtem Lernen, neuronalen Netzen und Deep Learning. Was es mit diesen Begriffen auf sich hat, werden wir uns im Verlauf dieses Buchs noch ansehen, aber für den Anfang finden Sie hier schon einmal eine Skizze sowie einige Definitionen in Kurzfassung:

  • Überwachtes Lernen ist die heutzutage am weitesten verbreitete Spielart des Machine Learning. Teil I dieses Buchs, »Von null auf Bilderkennung«, gibt eine praktische Einführung in überwachtes Lernen. Schon im zweiten Kapitel werden wir ein minimales ML-Programm schreiben, das wir anschließend Schritt für Schritt erweitern und in ein als Perzeptron bezeichnetes Machine-Learning-System verwandeln. Unser Perzeptron ist dabei ein echtes Programm für maschinelles Sehen, das leistungsfähig genug ist, um handgeschriebene Zeichen zu erkennen. Wir gestalten es komplett selbst, ohne dazu ML-Bibliotheken zu Hilfe zu nehmen, damit Sie jede einzelne Zeile des Codes genau verstehen.
  • Es gibt viele verschiedene Möglichkeiten, um ein System für überwachtes Lernen zu implementieren. Am häufigsten werden dazu neuronale Netze verwendet. Dabei handelt es sich um einen brillanten Algorithmus, der sich an die Verknüpfung der Neuronen in unserem Gehirn anlehnt. Teil II dieses Buchs ist diesen Netzen gewidmet. Hier bauen wir das Programm aus Teil I zu einem richtiggehenden neuronalen Netz aus. Dazu müssen wir einige Probleme überwinden, aber die Mühe zahlt sich aus: Am Ende haben wir ein neuronales Netz, das weit leistungsfähiger ist als unser ursprüngliches Programm. Auch hier schreiben wir den Code wieder Zeile für Zeile selbst, sodass Sie selbst mit den internen Mechanismen experimentieren können.
  • In den letzten Jahren wurden bei neuronalen Netzen erhebliche Fortschritte erzielt, als Forscher bahnbrechende Techniken zu ihrer Konstruktion und Verwendung erfanden. Diese moderne Technologie ist weit leistungsfähiger als die früheren einfachen neuronalen Netze, weshalb sie auch einen eigenen Namen erhalten hat: Deep Learning. Das ist auch der Titel von Teil III. Darin schreiben wir unser neuronales Netz mithilfe einer modernen ML-Bibliothek um. Der resultierende Code dient uns dann als Ausgangspunkt zur weiteren Erörterung von Deep Learning. Am Ende schauen wir uns noch einige anspruchsvolle Deep-Learning-Techniken an, womit wir auch die Grundlagen für Ihre weitere Beschäftigung mit diesem Thema legen.

Die Wirklichkeit ist natürlich nicht so sauber geordnet, wie unser Bild anzudeuten scheint. Beispielsweise kommen neuronale Netze nicht nur beim überwachten Lernen, sondern auch auf anderen Gebieten des Machine Learning zum Einsatz. Allerdings bildet dieses Diagramm einen guten Ausgangspunkt, um ein Gefühl für die einzelnen Themen in diesem Buch und ihre Beziehungen zueinander zu gewinnen.

Bevor wir beginnen

Dieses Buch macht Sie nicht über Nacht zu einem Machine-Learning-Profi, aber es kann Ihnen ein anschauliches, praktisches Verständnis dafür vermitteln, wie Machine Learning funktioniert. Ich will Ihnen einen Blick hinter die Kulissen dieser Disziplin gewähren, Ihnen die verborgenen Mechanismen zeigen und den Schleier des Geheimnisvollen lüften. Wenn Sie erst einmal die Grundprinzipien des Machine Learning kennen, ist es für Sie einfacher, selbst weiter nachzuforschen, diese Techniken in Ihre Berufspraxis einfließen zu ließen und vielleicht sogar eine Karriere als ML-Ingenieur einzuschlagen.

Sie müssen kein erfahrener Entwickler sein, um dieses Buch verstehen zu können. Allerdings sollten Sie schon damit vertraut sein, kurze Programme zu schreiben. Wenn Sie Python kennen, dann umso besser, denn das ist die Sprache, die ich hier durchgängig verwende. Wenn nicht, ist das jedoch auch kein Beinbruch. Die Sprache ist sehr benutzerfreundlich, und der Code in diesem Buch ist nicht kompliziert. Zur Einführung können Sie Anhang A, »Grundlagen von Python«, lesen, und wenn Sie nicht mehr weiterwissen, finden Sie im Internet weitere Informationen.

Mit Machine Learning ist eine Menge Mathematik verbunden. Ich werde sie nicht vereinfachen, aber so anschaulich darstellen wie möglich. Für das Verständnis dieses Buchs brauchen Sie schon etwas Oberstufenmathematik. Ich gehe davon aus, dass Sie mit kartesischen Koordinatensystemen vertraut sind, wissen, was Achsen und ein Ursprung sind, und etwas mit einem Funktionsgraphen anfangen können. Darüber hinaus brauchen Sie nicht viel mathematisches Fachwissen. Sie können auch versuchen, das Buch zu lesen, wenn Sie glauben, ganz furchtbar schlecht in Mathe zu sein – aber bereiten Sie sich in diesem Fall schon einmal darauf vor, dass es vielleicht doch nicht möglich ist.

Wenn Sie sich dagegen mit linearer Algebra und Analysis gut auskennen, werden Ihnen einige der mathematischen Aspekte wahrscheinlich selbstverständlich erscheinen. In diesem Fall können Sie die Erklärungen, die Sie nicht brauchen, natürlich auch gern überspringen.

Mathematischer Hintergrund

Eine anschauliche Darstellung von mathematischen Dingen ist immer sehr hilfreich, aber manchmal sind auch formalere Erklärungen sinnvoll. Wenn Sie bei der einen oder anderen Formel den Faden verlieren oder wenn Ihnen Mathematik liegt und Sie gern mehr über ein Thema erfahren wollen, dann schauen Sie sich die Kästen mit dem Titel »Mathematischer Hintergrund« an. Darin weise ich Sie auf die Mathematiklektionen der hervorragenden Khan Academy1 hin. Dort werden Sie etwas Passendes für sich finden, wie gut oder schlecht Ihre Vorkenntnisse in Mathematik auch immer sein mögen.

Um es ganz klar zu sagen: Diese zusätzlichen Lektionen sind optional. Es ist nicht erforderlich, sie sich anzusehen, um dieses Buch verstehen zu können. Sie dienen lediglich dazu, Ihre Kenntnisse über die Mathematik des Machine Learning zu vertiefen.

Machine Learning bringt seine eigene umfangreiche und besondere Terminologie mit. Sie werden daher wahrscheinlich auf neue Wörter und auf neue Bedeutungen bekannter Wörter stoßen. Gehen Sie es ruhig an. Sie müssen sich nicht sofort alles merken. Im Zweifelsfall können Sie immer in Anhang B, »Wörterbuch des Machine Learning«, nachschlagen.

Viele der Datenmengen, die ich als Beispiele verwende, bestehen aus Bildern. Mit Machine Learning können Sie jedoch mehr tun, als nur Bilder zu erkennen: Sie können Text analysieren, Musik generieren und sogar Unterhaltungen führen. Allerdings eignet sich gerade die Bilderkennung für...

Erscheint lt. Verlag 1.9.2020
Übersetzer Volkmar Gronau
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte AI • Algorithmen • Artificial Intelligence • Data Science • KI • Künstliche Intelligenz • machine learning • Maschinelles Lernen • Neural networks • Neuronale Netze • Python • PyTorch • supervised learning • überwachtes Lernen • Unsupervised Learning
ISBN-10 3-96910-026-7 / 3969100267
ISBN-13 978-3-96910-026-4 / 9783969100264
Haben Sie eine Frage zum Produkt?
EPUBEPUB (Wasserzeichen)
Größe: 14,1 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
39,99
Das umfassende Handbuch

von Johannes Ernesti; Peter Kaiser

eBook Download (2023)
Rheinwerk Computing (Verlag)
44,90
Mit über 150 Workouts in Java und Python

von Luigi Lo Iacono; Stephan Wiefling; Michael Schneider

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
29,99