Machine Learning kompakt - Andriy Burkov - E-Book

Machine Learning kompakt E-Book

Andriy Burkov

0,0

Beschreibung

Alles, was Sie über Machine Learning wissen müssen, auf nur 200 Seiten Von Support Vector Machines über Gradient Boosting und tiefe neuronale Netze bis hin zu unüberwachten Lernmethoden Zahlreiche Tipps und Empfehlungen für den praktischen Einsatz Sie möchten Machine Learning verstehen und dafür nicht unendlich viel Zeit aufwenden und Hunderte von Seiten lesen? Dann ist dieses Buch das richtige für Sie. Auf 200 Seiten bringt Andriy Burkov die wichtigsten Begriffe, Konzepte und Algorithmen des Machine Learnings auf den Punkt. Dabei vermittelt er nicht nur alle notwendigen theoretischen Grundlagen, sondern geht auch auf die praktische Anwendung der einzelnen Verfahren ein, ohne dabei die zugrundeliegenden mathematischen Gleichungen außer Acht zu lassen. Dieses Buch bietet einen leicht zugänglichen, programmiersprachenunabhängigen und trotz seiner Kürze umfassenden Einstieg ins Machine Learning. Aus dem Inhalt: Notation und mathematische Grundlagen Überwachtes, teilüberwachtes und unüberwachtes Lernen Grundlegende Lernalgorithmen: Lineare und logistische Regression Entscheidungsbäume Support Vector Machines k-Nearest-Neighbors Optimierung mittels Gradientenabstieg Merkmalserstellung und Handhabung fehlender Merkmale Auswahl des passenden Lernalgorithmus Bias, Varianz und das Problem der Unter- und Überanpassung Regularisierung, Bewertung eines Modells und Abstimmung der Hyperparameter Deep Learning mit CNNs, RNNs und Autoencodern Multi-Class-, One-Class- und Multi-Label-Klassifikation Ensemble Learning Clustering, Dimensionsreduktion und Erkennen von Ausreißern Selbstüberwachtes Lernen Wort-Embeddings, One-Shot und Zero-Shot Learning Stimmen zum Buch: »Burkov hat sich der äußerst nützlichen, aber unglaublich schwierigen Aufgabe angenommen, fast das gesamte Machine Learning auf 200 Seiten zusammenzufassen. Die Auswahl der Themen aus Theorie und Praxis ist gelungen und wird sich für Praktiker als nützlich erweisen. Das Buch bietet Lesern eine solide Einführung in das Fachgebiet.« — Peter Norvig, Forschungsdirektor bei Google »Der Umfang der Themen, die das Buch auf 200 Seiten behandelt, ist verblüffend. […] Wie der Autor die Kernkonzepte mit einigen wenigen Worten erklärt, gefällt mir ausnehmend gut. Das Buch wird nicht nur für Einsteiger sehr nützlich sein, sondern auch für alte Hasen, die von einer so breiten Sicht auf das Fachgebiet nur profitieren können.« — Aurélien Géron, Senior Artificial Intelligence Engineer »Ich wünschte, es hätte ein solches Buch gegeben, als ich mich als Student der Statistik mit Machine Learning beschäftigt habe.« — Chao Han, Vizepräsident, Leiter Forschung und Entwicklung bei Lucidworks

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 227

Veröffentlichungsjahr: 2019

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Machine Learning kompakt

Inhaltsverzeichnis

Vorwort zur deutschen Ausgabe

Vorwort

Einleitung

Wer sollte dieses Buch lesen?

Verwendung des Buchs

1 Einführung

1.1 Was ist Machine Learning?

1.2 Arten des Lernens

1.2.1 Überwachtes Lernen

1.2.2 Unüberwachtes Lernen

1.2.3 Teilüberwachtes Lernen

1.2.4 Reinforcement Learning

1.3 Funktionsweise des überwachten Lernens

1.4 Weshalb das Modell mit neuen Daten umgehen kann

2 Notation und Definitionen

2.1 Notation

2.1.1 Datenstrukturen

2.1.2 Summenschreibweise

2.1.3 Produktschreibweise

2.1.4 Mengenoperationen

2.1.5 Vektoroperationen

2.1.6 Funktionen

2.1.7 Max und Arg Max

2.1.8 Zuweisungsoperator

2.1.9 Ableitung und Gradient

2.2 Zufallsvariable

2.3 Erwartungstreue Schätzer

2.4 Satz von Bayes

2.5 Parameterschätzung

2.6 Parameter und Hyperparameter

2.7 Klassifikation und Regression

2.8 Modellbasiertes und instanzbasiertes Lernen

2.9 Shallow Learning und Deep Learning

3 Grundlegende Algorithmen

3.1 Lineare Regression

3.1.1 Problemstellung

3.1.2 Lösung

3.2 Logistische Regression

3.2.1 Problemstellung

3.2.2 Lösung

3.3 Entscheidungsbaum-Lernen

3.3.1 Problemstellung

3.3.2 Lösung

3.4 Support Vector Machine

3.4.1 Handhabung von Rauschen

3.4.2 Handhabung inhärenter Nichtlinearität

3.5 k-Nearest-Neighbors

4 Aufbau eines Lernalgorithmus

4.1 Bausteine eines Lernalgorithmus

4.2 Gradientenabstieg

4.3 Wie Machine-Learning-Entwickler vorgehen

4.4 Besonderheiten von Lernalgorithmen

5 Grundlegende Techniken

5.1 Merkmalserstellung

5.1.1 One-hot-Codierung

5.1.2 Binning

5.1.3 Normalisierung

5.1.4 Standardisierung

5.1.5 Handhabung fehlender Merkmale

5.1.6 Datenimputationsverfahren

5.2 Auswahl von Lernalgorithmen

5.3 Drei Mengen

5.4 Unteranpassung und Überanpassung

5.5 Regularisierung

5.6 Beurteilung der Leistung eines Modells

5.6.1 Wahrheitsmatrix

5.6.2 Genauigkeit und Trefferquote

5.6.3 Korrektklassifikationsrate

5.6.4 Kostensensitive Korrektklassifikationsrate

5.6.5 Fläche unter der ROC-Kurve

5.7 Abstimmung der Hyperparameter

5.7.1 Kreuzvalidierung

6 Neuronale Netze und Deep Learning

6.1 Neuronale Netze

6.1.1 Beispiel: mehrschichtiges Perzeptron

6.1.2 Neuronale Feedforward-Netzarchitektur

6.2 Deep Learning

6.2.1 Convolutional Neural Networks (CNNs)

6.2.2 Rekurrente neuronale Netze (RNNs)

7 Aufgaben und Lösungen

7.1 Kernel-Regression

7.2 Multi-Class-Klassifikation

7.3 One-Class-Klassifikation

7.4 Multi-Label-Klassifikation

7.5 Ensemble Learning

7.5.1 Boosting und Bagging

7.5.2 Random Forest

7.5.3 Gradient Boosting

7.6 Kennzeichnung von Sequenzen erlernen

7.7 Sequenz-zu-Sequenz-Lernen

7.8 Aktives Lernen

7.9 Teilüberwachtes Lernen

7.10 One-Shot Learning

7.11 Zero-Shot Learning

8 Fortgeschrittene Techniken

8.1 Handhabung unausgewogener Datenmengen

8.2 Modelle kombinieren

8.3 Trainieren neuronaler Netze

8.4 Erweiterte Regularisierung

8.5 Handhabung mehrerer Eingaben

8.6 Handhabung mehrerer Ausgaben

8.7 Transfer Learning

8.8 Effizienz von Algorithmen

9 Unüberwachtes Lernen

9.1 Dichteschätzung

9.2 Clustering

9.2.1 k-Means-Clustering

9.2.2 DBSCAN und HDBSCAN

9.2.3 Anzahl der Cluster festlegen

9.2.4 Weitere Clustering-Algorithmen

9.3 Dimensionsreduktion

9.3.1 Hauptkomponentenanalyse

9.3.2 UMAP

9.4 Erkennung von Ausreißern

10 Weitere Formen des Lernens

10.1 Metric Learning

10.2 Ranking

10.3 Empfehlungen

10.3.1 Faktorisierungsmaschinen

10.3.2 Denoising Autoencoder

10.4 Selbstüberwachtes Lernen: Wort-Embeddings

11 Schlussbemerkungen

11.1 Was nicht behandelt wurde

11.1.1 Topic Modeling

11.1.2 Gaußprozesse

11.1.3 Generalisierte lineare Modelle

11.1.4 Probabilistische grafische Modelle

11.1.5 Markow-Ketten-Monte-Carlo-Algorithmen

11.1.6 Generative Adversarial Networks

11.1.7 Genetische Algorithmen

11.1.8 Reinforcement Learning

11.2 Danksagungen

Landmarks

Cover

„Eine tolle Einführung in Machine Learning von einem erstklassigen Fachmann.“

      —Karolis Urbonas, Leiter Data Science bei Amazon

„Ich wünschte, es hätte ein solches Buch gegeben, als ich mich als Student der Statistik mit Machine Learning beschäftigt habe.“

      —Chao Han, Vizepräsident, Leiter Forschung und Entwicklung bei Lucidworks

„Andriys Buch gibt von der ersten Seite an Gas und kommt sofort zum Wesentlichen.“

      —Sujeet Varakhedi, technischer Leiter bei eBay

„Ein tolles Buch für Entwickler, die in der alltäglichen Arbeit Machine Learning einsetzen wollen, ohne sich ewig damit beschäftigen zu müssen.“

      —Deepak Agarwal, Vizepräsident KI-Abteilung bei LinkedIn

„Ein ausgezeichneter Einstieg in Machine Learning.“

      —Vincent Pollet, Forschungsleiter bei Nuance

 

Für meine ElternTatiana und Valeriyund für meine TöchterCatherine und Evaund meinen Bruder Dmitriy

Machine Learning kompakt

Alles, was Sie wissen müssen
Andriy Burkov

Übersetzung aus dem Amerikanischenvon Knut Lorenzen

Bibliografische Information der Deutschen NationalbibliothekDie Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie. Detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.

Bei der Herstellung des Werkes haben wir uns zukunftsbewusst für umweltverträgliche und wiederverwertbare Materialien entschieden.Der Inhalt ist auf elementar chlorfreiem Papier gedruckt.

ISBN 978-3-95845-997-7

1. Auflage 2019

www.mitp.deE-Mail: [email protected]: +49 7953 / 7189 - 079Telefax: +49 7953 / 7189 - 082

Authorized German translation from the English language edition, entitledTHE HUNDRED-PAGE MACHINE LEARNING BOOK, ISBN 978-1-9995795-0-0Copyright©2019 by Andriy BurkovOriginal English language edition published by Andriy Burkov.All rights reserved.

©2019 mitp Verlags GmbH & Co. KG, Frechen

Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz- Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.

Lektorat: Sabine Schulz, Janina Bahlmann, Lisa KresseSprachkorrektorat: Anna UeltgesforthFachkorrektur: Stefan Niedergriese, Alexander Loth (Autor des BuchesDatenvisualisierung mit Tableau/ mitp)Covergestaltung: Andriy Burkov / Canva.comSatz: Dr. Joachim Schlosser,www.schlosser.info

Inhaltsverzeichnis

Vorwort zur deutschen AusgabeVorwortEinleitungWer sollte dieses Buch lesen?Verwendung des Buchs1 Einführung1.1 Was ist Machine Learning?1.2 Arten des Lernens1.2.1 Überwachtes Lernen1.2.2 Unüberwachtes Lernen1.2.3 Teilüberwachtes Lernen1.2.4 Reinforcement Learning1.3 Funktionsweise des überwachten Lernens1.4 Weshalb das Modell mit neuen Daten umgehen kann2 Notation und Definitionen2.1 Notation2.1.1 Datenstrukturen2.1.2Summenschreibweise2.1.3 Produktschreibweise2.1.4 Mengenoperationen2.1.5 Vektoroperationen2.1.6 Funktionen2.1.7 Max und Arg Max2.1.8Zuweisungsoperator2.1.9 Ableitung und Gradient2.2 Zufallsvariable2.3Erwartungstreue Schätzer2.4 Satz von Bayes2.5 Parameterschätzung2.6 Parameter und Hyperparameter2.7 Klassifikation und Regression2.8Modellbasiertes und instanzbasiertes Lernen2.9 Shallow Learning und Deep Learning3 Grundlegende Algorithmen3.1 Lineare Regression3.1.1Problemstellung3.1.2 Lösung3.2 Logistische Regression3.2.1 Problemstellung3.2.2 Lösung3.3 Entscheidungsbaum-Lernen3.3.1 Problemstellung3.3.2Lösung3.4 Support Vector Machine3.4.1 Handhabung von Rauschen3.4.2Handhabung inhärenter Nichtlinearität3.5 k-Nearest-Neighbors4 Aufbau eines Lernalgorithmus4.1 Bausteine eines Lernalgorithmus4.2 Gradientenabstieg4.3 Wie Machine-Learning-Entwickler vorgehen4.4 Besonderheiten von Lernalgorithmen5Grundlegende Techniken5.1 Merkmalserstellung 5.1.1 One-hot-Codierung5.1.2Binning5.1.3 Normalisierung5.1.4 Standardisierung5.1.5 Handhabung fehlender Merkmale5.1.6 Datenimputationsverfahren5.2 Auswahl von Lernalgorithmen5.3 Drei Mengen5.4 Unteranpassung und Überanpassung5.5 Regularisierung5.6 Beurteilung der Leistung eines Modells5.6.1 Wahrheitsmatrix5.6.2Genauigkeit und Trefferquote5.6.3 Korrektklassifikationsrate5.6.4 Kostensensitive Korrektklassifikationsrate5.6.5 Fläche unter der ROC-Kurve5.7 Abstimmung der Hyperparameter5.7.1 Kreuzvalidierung6 Neuronale Netze und Deep Learning6.1 Neuronale Netze6.1.1 Beispiel: mehrschichtiges Perzeptron6.1.2Neuronale Feedforward-Netzarchitektur6.2 Deep Learning6.2.1 Convolutional Neural Networks (CNNs)6.2.2 Rekurrente neuronale Netze (RNNs)7 Aufgaben und Lösungen7.1 Kernel-Regression7.2 Multi-Class-Klassifikation7.3One-Class-Klassifikation7.4 Multi-Label-Klassifikation7.5 Ensemble Learning7.5.1 Boosting und Bagging7.5.2 Random Forest7.5.3 Gradient Boosting7.6 Kennzeichnung von Sequenzen erlernen7.7 Sequenz-zu-Sequenz-Lernen7.8 Aktives Lernen7.9 Teilüberwachtes Lernen7.10 One-Shot Learning7.11 Zero-Shot Learning8 Fortgeschrittene Techniken8.1 Handhabung unausgewogener Datenmengen8.2 Modelle kombinieren8.3 Trainieren neuronaler Netze8.4 Erweiterte Regularisierung8.5 Handhabung mehrerer Eingaben8.6 Handhabung mehrerer Ausgaben8.7 Transfer Learning8.8 Effizienz von Algorithmen9 Unüberwachtes Lernen9.1 Dichteschätzung9.2 Clustering9.2.1 k-Means-Clustering9.2.2 DBSCAN und HDBSCAN9.2.3 Anzahl der Cluster festlegen9.2.4 Weitere Clustering-Algorithmen9.3 Dimensionsreduktion9.3.1 Hauptkomponentenanalyse9.3.2 UMAP9.4 Erkennung von Ausreißern10 Weitere Formen des Lernens10.1 Metric Learning10.2 Ranking10.3Empfehlungen10.3.1 Faktorisierungsmaschinen10.3.2 Denoising Autoencoder10.4 Selbstüberwachtes Lernen: Wort-Embeddings11 Schlussbemerkungen11.1Was nicht behandelt wurde11.1.1 Topic Modeling11.1.2 Gaußprozesse11.1.3Generalisierte lineare Modelle11.1.4 Probabilistische grafische Modelle11.1.5Markow-Ketten-Monte-Carlo-Algorithmen11.1.6 Generative Adversarial Networks11.1.7 Genetische Algorithmen11.1.8 Reinforcement Learning11.2 Danksagungen

Vorwort zur deutschen Ausgabe

Im Laufe des letzten Jahrhunderts haben wir die Kunst der Computerprogrammierung entwickelt und perfektioniert, um alltägliche Aufgaben zu automatisieren. Herkömmliche Programme basieren jedoch immer noch auf handgefertigten Regeln, sodass die Programmierung selbst zu einer komplizierten und langwierigen Aufgabe wird. Angenommen Sie möchten einen E-Mail-Spam-Filter entwickeln: Bei der herkömmlichen Programmierung müssten Sie Millionen von E-Mails durchlesen, um Regeln abzuleiten, die lästige Junkmails mehr oder weniger zuverlässig herausfiltern. Sicherlich muss es einen effizienteren Weg geben, und darum geht es beim maschinellen Lernen. Im Wesentlichen handelt es sich bei Machine Learning um eine Reihe von Techniken, mit deren Hilfe Computer lernen, aus Daten Vorhersageregeln abzuleiten, und diese automatisch in Programme umwandeln.

Nun leben wir in einem Zeitalter, in dem Machine Learning nicht mehr aus dem Alltag wegzudenken ist. Sei es Gesichtserkennung auf dem iPhone, optische Zeichenerkennung bei der Post, Internetsuchmaschinen, Empfehlungsdienste von digitalen Verkaufsstellen oder der klassische E-Mail-Spamfilter. Während es leichtfällt, diese Liste unendlich weiterzuführen, fällt es mir schwer, an eine moderne Technologie zu denken, welche nicht in irgendeiner Weise Machine Learning integriert.

Für die weitere Integration von Machine Learning in Produkte unseres Alltags ist Machine-Learning-Talent gefragt wie nie zu vor. Die schiere Menge an neuen Jobausschreibungen, die nach Data Scientists oder Machine-Learning-Wissenschaftlern oder -Ingenieuren suchen, ist enorm. Aber auch in verwandten Berufen wie Softwareentwickler oder Informatiker sind Machine-Learning-Kenntnisse mehr und mehr gefragt. Diese sind vor allem für Entwickler wichtig, um erkennen zu können, wo und wann es Sinn macht, Machine Learning in einem Produkt zu verwenden. Aber auch für Nutzer von Produkten, die auf Machine Learning basieren, wird es zunehmend wichtiger, sich mit dieser Technologie auszukennen, um auch ihre Limitierungen zu kennen, und um die eigenen Verhaltensweisen und Erwartungen gegebenenfalls an diese neuen Technologien anzupassen. Daher halte ich es für unerlässlich, Ressourcen zu schaffen, die diese Technologien einer breiten Zielgruppe zugänglich machen.

Als Andriy mir von seinem Plan erzählte, ein klar strukturiertes, aber absichtlich relativ kurz gehaltenes Buch als Einführung in das Thema Machine Learning zu verfassen, war ich zunächst skeptisch. Ich fragte mich, ob es tatsächlich möglich sei, alle essentiellen Grundkenntnisse in einer brauchbaren Weise auf weniger als 200 Seiten zu kommunizieren. Als ich einige Zeit später eine Kopie dieses Werks in meinen Händen hielt, musste ich zugeben, dass Andriy dieses Kunststück mit großer Bravour gelungen ist.

Als ich vor ungefähr 4 Jahren das Buch Machine Learning mit Python verfasst habe, war es mitunter das erste, das nicht auf purer akademischer Theorie basierte, sondern auch praktische Code-Beispiele beinhaltete, aber zugleich auch mehr theoretische Tiefe hatte als die herkömmlichen, fast ausschließlich aus Code-Beispielen bestehenden Lehrbücher. Ich habe dieses Lehrbuch mit keinerlei großen Erwartungen geschrieben und war positiv überrascht, dass dieser Spagat aus Theorie und Praxis eine so große Leserbasis mit weltweit über 60.000 verkauften Exemplaren erreicht hat. Obwohl Machine Learning mit Python in der Hinsicht ein großer Erfolg war, Machine Learning einer breiten Zielgruppe zugänglich zu machen, hat es meiner Ansicht nach zwei Schwachpunkte: Mit mehr als 500 Seiten stellt es den Lesern eine hohe Einstiegshürde, und außerdem ist Python nicht für jedermann, da es Dutzende anderer Programmiersprachen gibt, die je nach Anwendungsbereich bevorzugt werden.

Meiner Ansicht nach stellt der bewusste Verzicht von expliziten Code-Beispielen in Andriys Buch einen absoluten Pluspunkt dar. Diese Herangehensweise macht dieses Buch nicht nur zu einer zeitlosen Ressource, da sich evolvierende Code-Bibliotheken stetig verändern und schnell nicht mehr aktuell sind, sondern es hilft auch dabei, sich zunächst auf das Wesentliche zu konzentrieren, bevor Sie sich an praktischen Beispielen in Ihrer bevorzugten Programmiersprache versuchen.

Um mich im Sinne dieses Buches kurz zu halten, möchte ich Sie nicht weiter von Ihrer bevorstehenden und aufregenden Reise in den Bereich des Machine Learnings abhalten. Ich hoffe, Ihnen gefällt dieses Buch mindestens genauso gut wie mir, und ich wünsche Ihnen ein erfreuliches und angenehmes Lernen!

Dr. Sebastian RaschkaAsst. Professor of Statistics, University of Wisconsin-Madison, Autor des BestsellersMachine Learning mit Python(mitp-Verlag, deutsche Ausgabe des BuchesPython Machine Learning)

Vorwort

In den letzten zwanzig Jahren sind die verfügbaren Datenmengen explosionsartig gewachsen, und dementsprechend hat auch das Interesse an statistischen und Machine-Learning-Anwendungen zugenommen. Das hatte tiefgreifende Auswirkungen. Vor zehn Jahren waren meine Kollegen erstaunt, dass mein Wahlfachkurs Statistik für Studenten der Wirtschaftswissenschaften voll belegt war, denn die meisten Wahlveranstaltungen waren schlecht besucht. Heute bieten wir dafür einen Masterstudiengang an, den größten spezialisierten Studiengang der Universität, und die Zahl der Anmeldungen kann sich mit derjenigen für Betriebswirtschaftslehre messen. Das Studienangebot wurde drastisch erhöht, dennoch beklagen sich die Studenten, dass die Kurse überfüllt sind. Aber auch Data-Science- und Machine-Learning-Kurse erfreuen sich außerordentlicher Beliebtheit, denn die Nachfrage nach auf diesen Gebieten ausgebildeten Absolventen hat stark zugenommen.

Dieser Nachfrage liegt eine einfache, aber unbestreitbare Tatsache zugrunde. Machine-Learning-Ansätze haben in den verschiedensten Bereichen für neue Erkenntnisse gesorgt, wie etwa in den Sozialwissenschaften, in der Wirtschaft, in der Biologie und in der Medizin, um nur einige zu nennen. Das hat zu einer enormen Nachfrage nach entsprechend qualifizierten Absolventen geführt. Die Ausbildung der Studenten war dennoch eine Herausforderung, weil der Großteil der verfügbaren Literatur für Akademiker gedacht war und sich auf statistische und theoretische Eigenschaften der Anpassungsalgorithmen oder der resultierenden Schätzer konzentrierte. Forscher und Praktiker, die bei der Implementierung eines vorgegebenen Verfahrens oder bei praktischen Aufgaben nach Unterstützung suchten, wurden kaum berücksichtigt. Die Betroffenen mussten wissen, welche Verfahren auf eine Aufgabe anwendbar sind, und ihre Stärken und Schwächen sowie die erforderlichen Voraussetzungen kennen. Die theoretischen Merkmale oder detaillierte Informationen über den Anpassungsalgorithmus waren von viel geringerer Bedeutung. Beim Verfassen des Buchs „An Introduction to Statistical Learning with R“ (ISLR) hatten wir diese Gruppe im Sinn. Die Begeisterung, mit der es aufgenommen wurde, zeigt, wie groß der Bedarf dafür war.

„Machine Learning kompakt“ folgt einem ähnlichem Paradigma. Ebenso wie ISLR verzichtet das Buch auf theoretische Herleitungen und bietet dem Leser stattdessen die wichtigsten Informationen bei der Implementierung der verschiedenen Ansätze. Es ist ein kompaktes Handbuch zum Thema Data Science und ich sage vorher, dass es sowohl für Theoretiker als auch für Praktiker zu einer unverzichtbaren Ressource wird. Die englische Ausgabe ist mit rund 150 Seiten kurz genug, um sie am Stück zu lesen. Aber trotz der Kürze werden alle wichtigen Machine-Learning-Ansätze behandelt: klassische lineare und logistische Regression, moderne Support Vector Machines, Deep Learning, Boosting und Random Forests. Es mangelt auch nicht an Details zu den verschiedenen Ansätzen, und der interessierte Leser kann im Wiki zum Buch weitere Einzelheiten zu einem bestimmten Verfahren finden. Das Buch setzt weder spezielle mathematische oder statistische Kenntnisse noch Programmiererfahrung voraus und sollte somit jedem zugänglich sein, der bereit ist, etwas Zeit in das Erlernen dieser Verfahren zu investieren. Für angehende Doktoranden sollte es Pflichtlektüre sein, denn es wird beim weiteren Lernen als nützliche Referenz dienen. Einige der Algorithmen werden mithilfe von Code-Beispielen in Python veranschaulicht, einer der verbreitetsten Programmiersprachen beim Machine Learning. Ich kann das Buch sowohl Einsteigern, die mehr über Machine Learning erfahren möchten, als auch erfahrenen Praktikern, die ihr Wissen erweitern möchten, nur wärmstens empfehlen.

Gareth JamesProfessor für Data Science an der University of Southern California, Koautor (mit Witten, Hastie und Tibshirani) des BestsellersAn Introduction to Statistical Learning, with Applications in R

Einleitung

Beginnen wir mit den Fakten: Maschinen lernen nicht. Eine typische „lernende Maschine“ sucht nach einer mathematischen Formel, die die gewünschten Ergebnisse liefert, wenn sie auf eine Sammlung von Eingaben, die sogenannten „Trainingsdaten“, angewendet wird. Diese Formel liefert auch für die meisten anderen Eingaben (die sich von den Trainingsdaten unterscheiden) die richtigen Ergebnisse, vorausgesetzt sie entstammen derselben oder einer ähnlichen statistischen Verteilung, der die Trainingsdaten entnommen wurden.

Weshalb ist das kein Lernen? Weil die Ausgabe sehr wahrscheinlich völlig falsch ist, wenn man die Eingabe leicht verändert. So funktioniert das Lernen bei Lebewesen nicht. Wenn man das Spielen eines Videospiels erlernt hat, ist man noch immer ein guter Spieler, wenn der Bildschirm ein klein wenig gedreht wird. Ein Machine-Learning-Algorithmus, der mit geradem Blick auf den Bildschirm trainiert wurde, ist nicht mehr in der Lage, das Spiel auf dem gedrehten Bildschirm zu spielen – es sei denn, er wurde auch darauf trainiert, den gedrehten Bildschirm zu erkennen.

Und wieso heißt es dann „Machine Learning“? Der Grund dafür ist, wie so oft, Marketing: Der Ausdruck wurde 1959 von Arthur Samuel geprägt, einem Vorreiter im Bereich der Computerspiele und der künstlichen Intelligenz, während er bei IBM tätig war. In den 2010er-Jahren versuchte IBM, den Begriff „cognitive computing“ zu vermarkten, um sich von der Konkurrenz abzusetzen. Auf ähnliche Weise versuchte IBM in den 1960er-Jahren, den coolen neuen Begriff „Machine Learning“ zu nutzen, um sowohl Kunden als auch auch begabte Angestellte anzulocken.

Wie Sie sehen, ist künstliche Intelligenz keine Intelligenz und Machine Learning ist kein Lernen. Machine Learning ist jedoch eine allgemein anerkannte Bezeichnung, die sich auf die Wissenschaft und die Entwicklung von Maschinen bezieht, die in der Lage sind, verschiedene nützliche Aufgaben zu erledigen, ohne dass man sie explizit dafür programmieren muss. Das Wort „Learning“ bzw. „Lernen“ ist also nicht buchstäblich zu verstehen, sondern eine Analogie zum Lernen von Lebewesen.

Wer sollte dieses Buch lesen?

Das Buch enthält nur diejenigen Teile des seit Ende der 1960-er Jahre entwickelten umfassenden Materials über Machine Learning, das von praktischen Wert ist. Ein Einsteiger ins Machine Learning findet gerade genug Informationen, um ein ausreichendes Verständnis zu erlangen, das es ermöglicht, die richtigen Fragen zu stellen.

Alle, die Machine Learning bereits in der Praxis einsetzen, können das Buch als Sammlung von Handlungsanweisungen nutzen. Das Buch erweist sich ebenfalls als nützlich, wenn man am Anfang eines neuen Projekts Gedanken austauscht und sich die Frage stellt, ob Machine Learning zur Lösung einer gegebenen technischen oder geschäftlichen Aufgabe geeignet ist, und wenn ja, welches Verfahren sich zur Lösung anbietet.

Verwendung des Buchs

Wenn Sie ein Einsteiger ins Machine Learning sind, sollten Sie das Buch von Anfang bis Ende durchlesen. (Es sind nur rund 180 Seiten, das ist also kein großer Aufwand.) Wenn Sie an einem bestimmten Thema, das im Buch behandelt wird, besonders interessiert sind und mehr darüber erfahren möchten, finden Sie in den meisten Abschnitten einen QR-Code.

Wenn Sie einen der QR-Codes mit Ihrem Smartphone scannen, wird Ihnen ein Link zu einer Webseite des englischsprachigen Wikis angezeigt (theMLbook.com), das dieses Buch ergänzt. Sie enthält zusätzliches Material: empfohlene Lektüre, Videos, Fragen und Antworten, Codeschnipsel, Tutorials und vieles mehr. Das Wiki wird kontinuierlich durch Beiträge des Autors und anderer Interessierter ergänzt. Dieses Buch wird also, wie ein guter Wein, immer besser, nachdem Sie es gekauft haben. Scannen Sie den QR-Code, um zum Wiki des Buchs zu gelangen. Für einige Abschnitten gibt es zwar keinen QR-Code, aber dennoch eine dazugehörige Wiki-Seite. Geben Sie in das Suchfeld des Wikis einen Suchbegriff ein, um sie anzuzeigen.

Darüber hinaus können Sie unterwww.mitp.de/995alle im Buch verwendeten Diagramme und Abbildungen in Farbe herunterladen.

Viel Spaß beim Lesen!

Andriy Burkov

1  Einführung

1.1  Was ist Machine Learning?

Machine Learning ist ein Teilgebiet der Informatik, das sich mit der Entwicklung von Algorithmen befasst, die eine Sammlung von Beispielen für ein bestimmtes Phänomen benötigen, um nützlich zu sein. Die Beispiele können natürlichen oder menschlichen Ursprungs oder von anderen Algorithmen erzeugt worden sein.

Machine Learning kann auch als das Lösen einer praktischen Aufgabe definiert werden, indem man 1) eine Datenmenge sammelt und 2) anhand dieser Daten mithilfe von Algorithmen ein statistisches Modell entwickelt. Das statistische Modell kann dann zur Lösung der praktischen Aufgabe eingesetzt werden.

1.2  Arten des Lernens

Es gibt überwachtes, teilüberwachtes, unüberwachtes und bestärkendes Lernen (Reinforcement Learning).

1.2.1  Überwachtes Lernen

Beimüberwachten Lernen1besteht dieDatenmengeaus einer Sammlunggekennzeichneter Beispiele. Jedes Elementauswird als einMerkmalsvektorbezeichnet. Ein Merkmalsvektor ist ein Vektor, bei dem jede Dimensioneinen Wert enthält, der das Beispiel in irgendeiner Form beschreibt. Dieser Wert heißtMerkmal(engl.feature) und wird alsnotiert. Wenn beispielsweise jedes Beispielin der Sammlung eine Person repräsentiert, dann könnte das erste Merkmaldie Größe in Zentimetern enthalten, das zweite Merkmalkönnte das Gewicht in Kilogramm angeben, das dritte Merkmalkönnte das Geschlecht bezeichnen und so weiter. Bei allen Beispielen in der Datenmenge enthält das Merkmal an der Positiondes Merkmalsvektors jeweils die gleiche Art Information. Das heißt: Wenneines Beispielsdas Gewicht in Kilogramm enthält, dann enthält auchin allen Beispielen,das Gewicht in Kilogramm. DieKennzeichnung(engl.label)kann entweder ein Element einer endlichen MengevonKlassensein oder eine reellwertige Zahl oder eine komplexere Struktur, wie ein Vektor, eine Matrix oder ein Graph. Sofern nicht anders angegeben, bezeichnetin diesem Buch entweder eine endliche Menge von Klassen oder eine reelle Zahl2. Sie können sich eine Klasse wie eine Kategorie vorstellen, der ein Beispiel zugeordnet wird. Wenn die Beispiele E-Mails sind und die Aufgabe darin besteht, Spam zu erkennen, dann gibt es die beiden Klassen. Das Ziel einesüberwachten Lernalgorithmusbesteht darin, anhand der Datenmenge einModellzu entwickeln, das einen Merkmalsvektorals Eingabe entgegennimmt und Informationen ausgibt, die es ermöglichen, die Kennzeichnung für diesen Merkmalsvektor herzuleiten. Ein Modell, das anhand einer Personendatenmenge erzeugt wurde, könnte beispielsweise einen Merkmalsvektor entgegennehmen, der eine Person beschreibt, und die Wahrscheinlichkeit dafür ausgeben, dass die Person an Krebs leidet.

1Fettgedruckte Begriffe sind im Index am Ende des Buchs zu finden.

2Eine reelle Zahl ist eine Größe, die einen Abstand auf einer Linie angeben kann. Beispiele:,,,.

1.2.2  Unüberwachtes Lernen

Beimunüberwachten Lernenbesteht die Datenmengeaus einer Sammlungungekennzeichneter Beispiele. Hier bezeichnetwieder einen Merkmalsvektor, und das Ziel einesunüberwachten Lernalgorithmusbesteht darin, einModellzu entwickeln, das einen Merkmalsvektorals Eingabe entgegennimmt und ihn entweder in einen anderen Vektor umwandelt oder ein Ergebnis liefert, das zur Lösung einer praktischen Aufgabe eingesetzt werden kann. BeimClusteringgibt das Modell beispielsweise die Cluster-ID der Merkmalsvektoren der Datenmenge zurück. Bei derDimensionsreduktionist die Ausgabe des Modells ein Merkmalsvektor, der weniger Merkmale als die Eingabebesitzt; bei derErkennung von Ausreißernist die Ausgabe eine reelle Zahl, die angibt, wie sehr sichvon einem „typischen“ Beispiel aus der Datenmenge unterscheidet.

1.2.3  Teilüberwachtes Lernen

Beimteilüberwachten Lernenenthält die Datenmenge sowohl gekennzeichnete als auch ungekennzeichnete Beispiele. Für gewöhnlich ist die Anzahl der ungekennzeichneten Beispiel sehr viel größer als die der gekennzeichneten. Das Ziel einesteilüberwachten Lernalgorithmusist das gleiche wie das eines überwachten Lernalgorithmus. Man hofft darauf, dass die Verwendung vieler ungekennzeichneter Beispiele dem Lernalgorithmus hilft, ein besseres Modell zu finden (man könnte auch sagen zu „berechnen“).

Es erscheint nicht gerade einleuchtend, dass das Lernen vom Hinzufügen weiterer ungekennzeichneter Beispiele profitiert. Wir fügen der Aufgabe anscheinend zusätzliche Unsicherheit hinzu. Allerdings bringt das Hinzufügen weiterer ungekennzeichneter Beispiele auch zusätzliche Informationen über die Aufgabe mit sich: Eine größere Stichprobe spiegelt die Wahrscheinlichkeitsverteilung der mit Labeln gekennzeichneten Daten besser wider. Theoretisch sollte ein Lernalgorithmus diese zusätzlichen Informationen nutzen können.

1.2.4  Reinforcement Learning

Reinforcement Learning(bestärkendes Lernen)ist ein Teilgebiet des Machine Learning, bei dem sich die Maschine in einer Umgebung „aufhält“ und in der Lage ist, denZustanddieser Umgebung in Form eines Merkmalsvektors wahrzunehmen. Die Maschine kann in jedem ZustandAktionenausführen. Verschiedene Aktionen ergeben unterschiedlicheBelohnungenund können die Maschine in einen anderen Zustand der Umgebung überführen. Ziel eines bestärkenden Lernalgorithmus ist das Erlernen einerPolicy(Vorschrift).

Eine Policy ist eine Funktion (ähnlich dem Modell beim überwachten Lernen), die den Merkmalsvektor eines Zustands entgegennimmt und eine für diesen Zustand optimale Aktion ausgibt. Die Aktion ist optimal, wenn sie die zu erwartendedurchschnittliche Belohnungmaximiert.

Durch Reinforcement Learning können Aufgaben gelöst werden, bei denen die Entscheidungsfindung sequenziell erfolgt und die ein langfristiges Ziel aufweisen, wie es etwa bei Spielen, Robotik, Ressourcenverwaltung oder Logistik der Fall ist. In diesem Buch konzentriere ich mich auf einzelne Entscheidungsfindungen, bei denen die Eingaben voneinander unabhängig und die Vorhersagen schon vorhanden sind. Auf Reinforcement Learning werde ich also nicht näher eingehen.

1.3  Funktionsweise des überwachten Lernens

In diesem Abschnitt erkläre ich kurz die Funktionsweise des überwachten Lernens, damit Sie den gesamten Vorgang vor Augen haben, bevor wir uns mit den Einzelheiten befassen. Ich verwende als Beispiel überwachtes Lernen, weil es das in der Praxis am häufigsten eingesetzte Machine-Learning-Verfahren ist.

Am Anfang des überwachten Lernens steht das Zusammenstellen der Daten. Die Daten für überwachtes Lernen bestehen aus einer Sammlung von (Eingabe, Ausgabe)-Paaren. Als Eingabe kann praktisch alles dienen, beispielsweise E-Mails, Bilder oder Messdaten eines Sensors. Die Ausgaben sind für gewöhnlich reelle Zahlen oder Kennzeichnungen (wie etwa „Spam“, „Kein_Spam“, „Hund“, „Katze“, „Maus“ usw.). In manchen Fällen sind die Ausgaben Vektoren (z. B. die vier Koordinaten eines Rechtecks um eine Person auf einem Bild), Sequenzen (wie etwa [„Adjektiv“, „Adjektiv“, „Substantiv“] für die Eingabe „großes schickes Auto“) oder besitzen eine andere Struktur.

Nehmen wir an, Sie wollen überwachtes Lernen zur Erkennung von Spam einsetzen. Sie stellen die Daten zusammen, beispielsweise 10.000 E-Mails, die jeweils mit der Kennzeichnung „Spam“ oder „Kein_Spam“ versehen sind. (Sie können diese Kennzeichnung von Hand hinzufügen oder jemanden für die Erledigung dieser Aufgabe einstellen.) Jetzt müssen die E-Mails in Merkmalsvektoren umgewandelt werden.

Der Datenanalytiker weiß aus Erfahrung, wie man Daten aus der Praxis, wie eine E-Mail, in einen Merkmalsvektor konvertiert. Ein gängiges Verfahren ist das Bag-of-words-Modell („Beutel-voller-Wörter“). Man verwendet ein Dictionary, das beispielsweise 20.000 alphabetisch sortierte Wörter enthält, und erstellt nach folgendem Verfahren einen Merkmalsvektor:

Das erste Merkmal ist gleich

, wenn die E-Mail das Wort „A“ enthält, andernfalls ist dieses Merkmal gleich

;

das zweite Merkmal ist gleich

, wenn die E-Mail das Wort „Aaron“ enthält, andernfalls ist dieses Merkmal gleich

;

das Merkmal an Position 20.000 ist gleich

, wenn die E-Mail das Wort „Zulu“ enthält, andernfalls ist dieses Merkmal gleich

.

Dieses Verfahren wird auf alle E-Mails der Datensammlung angewendet. Das ergibt 10.000 Merkmalsvektoren (jeder Vektor besitzt die Dimensionalität 20.000) mit einer Kennzeichnung („Spam“/„Kein_Spam“).

Jetzt sind maschinenlesbare Eingabedaten verfügbar, aber die Ausgabedaten liegen noch immer in Textform vor. Bei manchen Lernalgorithmen ist es erforderlich, die Kennzeichnungen in Zahlen umzuwandeln, beispielsweise in Werte wieoder, um die Kennzeichnung „Kein_Spam“ bzw. „Spam“ zu repräsentieren. Der von mir verwendete Algorithmus wird alsSupport Vector Machine(SVM) bezeichnet. Die positiven Kennzeichnungen (in diesem Fall „Spam“) müssen den numerischen Wert(eins) und die negativen den Wert(minus eins) besitzen.

Jetzt liegen eineDatenmengeund einLernalgorithmusvor, und Sie können den Lernalgorithmus auf die Datenmenge anwenden, um dasModellzu erhalten.

Die SVM betrachtet jeden Merkmalsvektor als einen Punkt in einem hochdimensionalen Raum (der in diesem Fall 20.000-dimensional ist). Der Algorithmus bildet alle Merkmalsvektoren in diesen 20.000-dimensionalen Raum ab und zeichnet eine imaginäre 19.999-dimensionale Linie (eineHyperebene