Machine Learning – kurz & gut. Oliver Zeigermann
Чтение книги онлайн.
Читать онлайн книгу Machine Learning – kurz & gut - Oliver Zeigermann страница 3
Alle Codebeispiele werden wir in Python 3 angegeben – Python-Kenntnisse sind jedoch nicht zwingend erforderlich, denn wir werden die notwendigen Grundlagen Stück für Stück in entsprechend gekennzeichneten Kästen vermitteln. Diese kannst du überspringen, falls du Python bereits beherrschst. Wenn du dir nur einen generellen Überblick verschaffen willst, ist es auch möglich, die Programmierbeispiele komplett zu überspringen, einen tieferen Einblick bekommst du aber nur mit ihrer Hilfe. Um den Programmierbeispielen folgen zu können, solltest du eine Programmiersprache mit objektorientierten Eigenschaften beherrschen – welche, ist egal.
Wie du dieses Buch lesen kannst
Dieses Buch ist kein Nachschlagewerk. Du kannst es gut von vorn bis hinten durchlesen. Dann dient es dir als Einführung in das Thema Machine Learning.
Das Buch ist in drei Teile aufgeteilt. Teil 1 bildet mit den Kapiteln 1 bis 3 die Einleitung in das Thema. Die Kapitel 4 bis 6 liefern als Teil 2 einen strukturierten Aufbau der Grundlagen. Im dritten Teil mit den Kapiteln 7 bis 9 lernst du anhand von Anwendungsbeispielen fortgeschrittene Techniken wie neuronale Netze, Autoencoder und Deep Reinforcement Learning kennen.
Du kannst alle Codebeispiele direkt nachvollziehen und brauchst dann dementsprechend länger. Du kannst aber auch bestimmte Kapitel auslassen, wenn du dich nicht so sehr für das darin behandelte Thema interessierst. In jedem Fall solltest du den Schnelldurchlauf in Kapitel 2, Quick-Start, und das Kapitel 4, Supervised Learning, komplett lesen. Diese Kapitel enthalten die Kernthemen dieses Buchs.
In Kapitel 4 werden wir uns durch die einzelnen klassischen Strategien des Supervised Learning hindurcharbeiten und dabei deren Unterschiede, Stärken und Schwächen kennenlernen. In Kapitel 2 findest du einen Schnelldurchlauf durch alle Stationen dieses Buchs.
Die beiden Kapitel 5, Feature-Auswahl, und 6, Modellvalidierung, gehen etwas mehr in die Tiefe und beantworten Fragen, die eventuell in Kapitel 4 offengeblieben sind. Sie enthalten Formeln und erfordern ein wenig mathematisches Interesse und Verständnis.
Kapitel 3, Datenimport und -vorbereitung, liegt uns persönlich besonders am Herzen. Oft fehlt dieser Teil in einführenden Büchern, da er als etwas mühsam und spaßfrei angesehen wird. Wir glauben, dass sogar die Vorbereitung der Daten spannend sein kann. Zudem sind gute Daten in der Regel die Voraussetzung für einen erfolgreichen Machine-Learning-Prozess. In diesem Kapitel schaffen wir zudem die technischen Grundlagen für den Umgang mit Python und seinen Bibliotheken.
Kapitel 7, Neuronale Netze und Deep Learning, handelt vom Deep Learning mit neuronalen Netzen, dem zurzeit heißesten Thema im Bereich Machine Learning. Dies ist ebenso eine Strategie des Supervised Learning, ist aber in vielen Punkten anders als die zuvor in Kapitel 4 behandelten Strategien. Daher haben wir diesem Thema ein eigenes Kapitel spendiert. Hier wenden wir auch alles bisher Gelernte in einer praktischen Anwendung an, indem wir versuchen, Geschwindigkeitsbeschränkungen auf Verkehrsschildern zu erkennen.
In Kapitel 8, Unsupervised Learning mit Autoencodern und Kapitel 9, Deep Reinforcement Learning gehen wir weiter auf dem Pfad der neuronalen Netze, und du erfährst, wie man diese für unüberwachtes und verstärkendes Lernen einsetzen kann.
Arten von Machine Learning – ein Überblick
Stell dir ein System vor, das sagen soll, ob auf einem Bild ein Hund zu sehen ist oder nicht. So etwas könntest du programmatisch mit Methoden der Bildverarbeitung umsetzen. Dazu könntest du einen Satz von Regeln anlegen, anhand derer das System entscheidet, ob es einen Hund gibt oder eben nicht. Solche Systeme sind nicht nur schwer zu entwickeln, es wird wahrscheinlich viele Hunde auch gar nicht erkennen oder in manchen Bildern fälschlicherweise Hunde vermuten. Was macht man da? Man fügt neue Regeln hinzu, und andere verfeinert man manuell.
Mit einem Machine-Learning-Ansatz würde das ganz anders laufen. Du müsstest ein System konfigurieren und mit entsprechenden Hundebildern (und Bildern ohne Hund) in einer Lernphase trainieren. Das System lernt dann im Idealfall selbst die Regeln, die du sonst als Programmierer hättest explizit aufzählen müssen.
Von Machine Learning spricht man, wenn man einen Computer nicht direkt programmiert, sondern wenn diese Maschine bestimmte Fähigkeiten erlernt. In der klassischen Programmierung bringen wir ein Modell in ein Stück Code, mit dem wir eine Eingabe in eine Ausgabe wandeln. Im Machine Learning drehen wir das um und lassen die Maschine das Modell aus passenden Sätzen von Ein- und Ausgaben erlernen. Dies illustriert Abbildung 1-1. Ein solches Vorgehen nennt man auch Supervised Learning (überwachtes Lernen), da wir unser System aktiv durch zueinander passende Datensätze trainieren.
Abbildung 1-1: Maschinelles Lernen vs. klassische Programmierung
Supervised Learning
Man kann den Bereich Machine Learning anhand unterschiedlicher Ansätze unterteilen. Beim Supervised Learning (dem überwachten Lernen) trainierst du ein System mit Datensätzen aus Eingabe und erwarteter Ausgabe.
Für das Beispiel mit den Hundebildern musst du einen Satz von Bildern mit Hunden und ohne Hunde heraussuchen. Um den Trainingserfolg zu überprüfen, nimmst du einen anderen, bisher dem System nicht bekannten Teil der Bilder und lässt das System entscheiden, ob das Bild einen Hund enthält oder nicht. Da du für diese Bilder ja schon das richtige Ergebnis kennst, kannst du sehen, wie gut das System gelernt hat. Im Idealfall kann