E-Book, Deutsch, 278 Seiten
Reihe: kurz & gut
Zeigermann / Nguyen Machine Learning – kurz & gut
3. Auflage 2024
ISBN: 978-3-96010-857-3
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Eine Einführung mit Python, Scikit-Learn und TensorFlow
E-Book, Deutsch, 278 Seiten
Reihe: kurz & gut
ISBN: 978-3-96010-857-3
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark
Der kompakte Schnelleinstieg in Machine Learning und Deep Learning
- Die 3. Auflage des Bestsellers wurde ergänzt durch Kapitel zu Large Language Models wie ChatGPT und zu MLOps
- Anhand konkreter Datensätze lernst du einen typischen Workflow kennen: vom Datenimport über Datenbereinigung, Datenanalyse bis hin zur Datenvisualisierung
- Nicht nur für zukünftige Data Scientists und ML-Profis geeignet, sondern durch seine durchdachte Didaktik auch für Interessierte, die nur am Rande mit ML zu tun haben, wie z.B. Softwareentwickler*innenMachine Learning beeinflusst heute beinahe alle Bereiche der Technik und der Gesellschaft. Dieses Buch bietet Interessierten, die einen technischen Hintergrund haben, die schnellstmögliche Einführung in das umfangreiche Themengebiet des maschinellen Lernens und der statistischen Datenanalyse. Dabei werden folgende Themen behandelt und mit praktischen Beispielen veranschaulicht:
- Datenvorbereitung, Feature-Auswahl, Modellvalidierung
- Supervised und Unsupervised Learning
- Neuronale Netze und Deep Learning
- Reinforcement Learning
- LLMs – moderne Sprachmodelle
- MLOps – Machine Learning für die PraxisAnhand von Beispieldatensätzen lernst du einen typischen Workflow kennen: vom Datenimport über Datenbereinigung, Datenanalyse bis hin zur Datenvisualisierung. Mit den Codebeispielen kannst du in Jupyter Notebooks experimentieren. Sie basieren auf Python und den Bibliotheken Scikit-Learn, Pandas, NumPy, TensorFlow und Keras.
Nach der Lektüre dieses Buchs hast du einen Überblick über das gesamte Thema und kannst Ansätze einordnen und bewerten. Das Buch vermittelt dir eine solide Grundlage, um erste eigene Machine-Learning-Modelle zu trainieren und vertiefende Literatur zu verstehen.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
KAPITEL 1
Einführung
Im Machine Learning wird ein Modell anhand von Daten trainiert und für ähnliche Daten genutzt oder darauf angewandt. Dafür stehen unterschiedliche Ansätze von einfachen linearen Modellen bis hin zu großen Sprachmodellen zur Verfügung. Da das erlernte Modell häufig nicht mehr komplett von uns Menschen verstanden werden kann, sind zudem Methoden notwendig, ein Modell als Blackbox zu validieren. Was man mit Machine Learning machen kann und wie ein solches Training und die Validierung im Detail funktionieren, ist Gegenstand dieses Buchs. Dies ist ein praxisorientiertes Buch mit lauffähigem Code. Alle Codebeispiele werden 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. 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. 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 Kapitel 4, Supervised Learning, komplett lesen. Diese Kapitel enthalten die Kernthemen dieses Buchs. Das Buch ist in zwei Teile aufgeteilt. Die Kapitel 1 bis Kapitel 6 des ersten Teils liefern einen strukturierten Aufbau der Grundlagen. Im zweiten Teil, bestehend aus Kapitel 7 bis Kapitel 11, lernst du anhand von Anwendungsbeispielen fortgeschrittene Techniken kennen, wie neuronale Netze, Autoencoder, Deep Reinforcement Learning, MLOps und große Sprachmodelle. In Kapitel 2, Quick-Start, findest du einen Schnelldurchlauf durch alle Stationen 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. Die Kapitel 5, Feature-Auswahl und Kapitel 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. Gute Daten sind 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 handelt von Deep Learning mit neuronalen Netzen. Dies ist ebenfalls eine Strategie des Supervised Learning, ist aber in vielen Punkten anders als die zuvor in Kapitel 4 behandelten Strategien. Wir wenden 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, verfolgen wir den Pfad der neuronalen Netze weiter, und du erfährst, wie man diese für unüberwachtes und verstärkendes Lernen einsetzen kann. In Kapitel 10, LLMs – moderne Sprachmodelle, beschäftigen wir uns mit Large Language Models und was diese für den Bereich des Machine Learning bedeuten. Neben den großen Sprachmodellen wie GPT und deren bekannter Anwendung ChatGPT widmen wir uns auch den spezialisierten Transformer-Modellen. Dabei bringen wir Ordnung in den Zoo der Sprachmodelle. Zum Abschluss des Buchs werden wir in Kapitel 11, MLOps – Machine Learning für die Praxis, mit dem Thema »Machine Learning Operations« (MLOPs) konzeptioneller. Hier steht weniger der Code oder ein spezielles Werkzeug im Vordergrund als die Idee davon, wie ein Machine-Learning-Projekt abläuft, was man beachten muss, wenn es in Betrieb gehen soll, und wie man es dort hält. 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 deren das System entscheidet, ob es einen Hund gibt oder eben nicht. So ein System ist jedoch nur schwer zu entwickeln, es wird wahrscheinlich viele Hunde 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 anhand zueinander passender Datensätze trainieren. Abbildung 1-1: Maschinelles Lernen vs. klassische Programmierung Supervised Learning Man kann den Bereich Machine Learning anhand unterschiedlicher Ansätze aufgliedern. 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 das System in dieser Testphase alle Bilder richtig zuordnen. Die Grenzen solcher Systeme gerade im Bereich der Bilderkennung und was du machen kannst, falls das System nicht richtig lernt, thematisieren wir in einem praktischen Beispiel in Kapitel 7, Neuronale Netze und Deep Learning. Klassifikation und Regression So ein Beispiel nennt man auch eine Klassifikation. Das System lernt, Bilder in die beiden Klassen »Bild mit Hund« und »Bild ohne Hund« einzusortieren. Oft gibt es bei einer Klassifikation nur zwei Klassen, z.B. ob ein selbstfahrendes Auto in einer bestimmten Situation bremsen sollte oder nicht oder ob auf einem Ultraschallbild Krebs vermutet wird oder nicht. Häufig wird sich in einem solchen Fall nicht strikt für Ja oder Nein entschieden, stattdessen wird die Vorhersage mit einer Gewissheit versehen, meist einer Zahl zwischen 0 und 1. Es gibt auch Klassifikationen, die zwischen einer ganzen Reihe von Klassen entscheiden, z.B. bei einer Handschriftenerkennung der Ziffern 0 bis 9, die bei Postsendungen zum Einsatz kommt. Hier haben wir zehn Klassen, nämlich für jede Ziffer von 0 bis 9 eine. Auch hier bekommen wir Wahrscheinlichkeiten pro Ziffer. Der zweite Problembereich des Supervised Learning ist die Regression – also das Erlernen einer kontinuierlichen Funktion – anhand von Werten, die auf dieser Funktion liegen. Das wäre z.B. der Fall, wenn wir das Gewicht eines Hundes auf Basis bestimmter Parameter oder sogar eines Bilds des Tieres vorhersagen wollten. Manchmal ist es gar nicht so einfach, den richtigen Ansatz für ein bestehendes Problem zu finden. Wenn die Ausgabe diskrete Werte sind (z.B. die Ziffern 0 bis 9), ist es wahrscheinlich ein Klassifikationsproblem. Hat man kontinuierliche Werte, wie bei dem Gewicht eines Hundes, ist es ein Regressionsproblem. Unsupervised Learning Beim Ansatz des Unsupervised Learning (des unüberwachten Lernens) sind keine Labels, also keine Vorgaben der richtigen Lösungen notwendig. Clustering Ein Beispiel sind sogenannte Clustering-Verfahren: Sie nehmen eine...