werden. Hier werden die grundlegenden Konzepte definiert, die wir in den folgenden Kapiteln dann genauer untersuchen werden. Die Kapitel dieses Buches bauen aufeinander auf; dieses ist das Grundgerüst.
Der Ausgangspunkt dafür ist logischerweise zu definieren, was maschinelles Lernen eigentlich ist.
Meine einfache Definition lautet wie folgt: Durch maschinelles Lernen kann ein Computer aus Erfahrungen lernen.
Das mag auf den ersten Blick trivial klingen, aber wenn man diese Definition genauer betrachtet, dann hat sie weitreichende Auswirkungen. Bevor es maschinelles Lernen gab, konnten Computer nicht aus Erfahrung lernen, sondern der Computer tat einfach nur genau das, was der ihm der Code vorschrieb.
Bei maschinellem Lernen kann der Computer – einfach gesagt – seine Antworten dadurch verändern, dass eine „Feedback“(Rückkopplungs)-Schleife für gute und schlechte Antworten eingeführt wird. Das bedeutet, dass sich Algorithmen für maschinelles Lernen grundlegend von den bisher verwendeten Computerprogrammen unterscheiden.
Der erste Schritt, um zu erkennen, wie maschinelles Lernen die Informatik grundlegend verändert, ist es zu verstehen, was der Unterschied zwischen expliziter Programmierung und Algorithmus-Training ist.
Explizite Programmierung vs. Algorithmustraining
Mit wenigen Ausnahmen wurde fast jede Software, die Sie bisher in Ihrem Leben verwendet haben, explizit programmiert. Das bedeutet, dass ein Mensch eine Abfolge von Regeln und Anweisungen geschrieben hat, die vom Computer ausgeführt werden soll. Alles, vom Betriebssystem Ihres Computers über das Internet bis hin zu den Apps auf Ihrem Smartphone, besteht aus Code, den ein Mensch geschrieben hat. Ohne Menschen, die einem Computer eine Reihe von Anweisungen zum Ausführen geben, wäre der Computer nicht in der Lage, irgendetwas zu tun.
Explizite Programmierung ist großartig, sie ist das Rückgrat für alles, was wir derzeit mit Computern tun. Explizite Programmierung ist optimal, wenn der Computer Daten verwalten soll, einen Wert berechnen oder Beziehungen für Sie verfolgen soll. Explizite Programmierung ist sehr mächtig, hat aber einen Flaschenhals: den Menschen.
Das wird dann problematisch, wenn der Computer komplexe Dinge erledigen soll, z. B. eine Katze auf einem Foto erkennen. Wenn wir einem Computer mithilfe expliziter Programmierung beibringen wollten, wonach bei einer Katze zu suchen ist, würden wir Jahre damit verbringen, Code für jede erdenkliche Eventualität zu schreiben. Was z. B. wäre, wenn man nicht alle vier Beine der Katze auf dem Foto sehen könnte? Was, wenn die Katze eine andere Farbe hat? Könnte der Computer eine schwarze Katze auf schwarzem Hintergrund oder eine weiße Katze im Schnee erkennen?
Das sind alles Dinge, die wir Menschen für selbstverständlich halten. Unser Gehirn erkennt Dinge in vielen Zusammenhängen schnell und einfach. Computer können das nicht so gut. Es würde Millionen von Zeilen expliziten Codes erfordern, um einem Computer zu sagen, wie er eine Katze identifizieren kann. Tatsächlich ist es vermutlich überhaupt nicht möglich, einen Computer explizit so zu programmieren, dass er Katzen zu 100 % genau identifizieren kann, weil sich der Kontext immer ändern und den Code durcheinanderbringen kann.
Hier kommen Algorithmen ins Spiel. Bei expliziter Programmierung versuchen wir, dem Computer zu sagen, was eine Katze ist, und alle Eventualitäten dafür in unserem Code zu berücksichtigen. Im Gegensatz dazu ermöglichen maschinelle Lernalgorithmen dem Computer, selbst herauszufinden, was eine Katze ist.
Am Anfang enthält der Algorithmus nur ein paar wesentliche Funktionen. Zum Beispiel könnten wir den Computer anweisen, nach vier Beinen und einem Schwanz zu suchen. Dann füttern wir diesen Algorithmus mit ganz vielen Bildern. Einige dieser Bilder sind Katzen, aber andere sind vielleicht Hunde, Bäume oder irgendwelche zufälligen Objekte. Wenn der Algorithmus eine Vermutung darüber anstellt, was er erkennt, dann geben wir positives Feedback für richtige Vermutungen und negatives Feedback für falsche Vermutungen.
Im Laufe der Zeit wird der Computer den Algorithmus dazu verwenden, sich ein eigenes Modell zu erstellen, wonach er suchen muss, um eine Katze korrekt zu identifizieren. Die Bestandteile im Computermodell sind möglicherweise Dinge, an die wir anfangs gar nicht gedacht haben. Mit mehr Feedback und Tausenden von Bildern zum Lernen wird der Algorithmus allmählich immer besser darin, Katzen zu identifizieren. Der Algorithmus wird dabei möglicherweise nie eine 100%ige Trefferquote erreichen, aber er wird präzise genug sein, um einen menschlichen „Katzenerkenner“ zu ersetzen, da der Lernalgorithmus viel schneller und effizienter ist.
Diese Algorithmen sind Richtlinien, aber keine expliziten Regeln. Sie sind eine neue Methode, um einem Computer zu erklären, wie er an eine Aufgabe herangehen soll. Algorithmen beinhalten Feedbackschleifen, die sich im Verlauf von Hunderten oder gar Tausenden von Versuchen selbst korrigieren.
Definition: Künstliche Intelligenz vs. maschinelles lernen vs. neuronale netze
In diesem Buch geht es zwar um maschinelles Lernen, aber dieser Begriff ist in einem größeren Zusammenhang zu sehen. Da maschinelles Lernen immer beliebter wird, wird auch viel darüber berichtet. In solchen Beiträgen verwenden die Journalisten oft die Begriffe künstliche Intelligenz, maschinelles Lernen und neuronale Netze synonym. Es gibt aber Unterschiede zwischen diesen drei Begriffen.
Künstliche Intelligenz ist der älteste und umfassendste dieser drei Begriffe. Er wurde in der Mitte des 20. Jahrhunderts geprägt und bezieht sich auf alles, wo eine Maschine seine Umgebung beobachtet und entsprechend reagiert. Künstliche Intelligenz steht im Gegensatz zu der natürlichen Intelligenz von Menschen und Tieren. Mit der Zeit hat sich der Aufgabenbereich der künstlichen Intelligenz allerdings verändert. Zum Beispiel war die Zeichenerkennung früher eine große Herausforderung. Mittlerweile ist das jedoch schon zum Standard geworden und wird daher heute nicht mehr zur KI gerechnet. Immer wenn wir neue Anwendungsmöglichkeiten für die KI gefunden haben, integrieren wir sie in das, was für uns „normal“ ist, und erweitern die KI auf das, was dann jeweils gerade neu ist.
Maschinelles Lernen ist eine bestimmte Teilmenge der KI. Wir haben uns in diesem Kapitel bereits mit der Definition von maschinellem Lernen beschäftigt, aber es geht darum, einer Maschine eine Feedback-Schleife zu geben, die es ihr ermöglicht, aus Erfahrungen zu lernen. Den Begriff gibt es seit den 1980er Jahren, aber erst in den letzten 10 bis 15 Jahren hatten wir die Rechen- und Speicherkapazitäten, um wirklich mit der Implementierung von maschinellem Lernen in großem Maßstab zu beginnen.
Neuronale Netze sind eine Teilmenge des maschinellen Lernens, sie sind derzeit der heißeste Trend in der Branche. Ein neuronales Netzwerk besteht aus vielen Neuronen (oder auch „Knoten“), die zusammenarbeiten, um gemeinsam eine Antwort zu finden. Jedes der untersten Neuronen hat eine bestimmte Funktion. Beispielsweise können die untersten Neuronen bei der Bilderkennung bestimmte Farben oder Linien erkennen. Darüber liegende Neuronen können dann die Linien in Formen zusammenfassen, Abstände messen oder die Farbdichte untersuchen. Jedes dieser Neuronen wird am Ende in Bezug auf seine Auswirkungen auf die endgültige Antwort gewichtet. Am Anfang wird das neuronale Netz noch viele Fehler machen, aber im Verlauf zahlreicher Versuche wird das neuronale Netz die Gewichtung aller Neuronen immer wieder anpassen, um besser darin zu werden, die korrekte Antwort zu finden.
Wenn Sie einen Artikel über künstliche Intelligenz, maschinelles Lernen und neuronale Netze lesen, dann verstehen Sie jetzt den Unterschied. Entscheidend dabei ist, dass neuronale Netze nur eine Teilmenge des maschinellen Lernens sind und dieses wiederum nur eine Teilmenge der künstlichen Intelligenz.
Grundlegende Konzepte
Maschinelles Lernen lässt sich für viele Aufgabenstellungen einsetzen. Wann immer es eine große Datenmenge zu analysieren gilt, kann der Einsatz von maschinellem Lernen hilfreich sein, um eine sinnvolle Aussage zu erzielen. Jedes Projekt für maschinelles Lernen ist anders, aber es gibt fünf Kernpunkte, die in jeder Anwendung gleich sind:
Maschinelles Lernen ist immer dann sinnvoll, wenn es darum geht, Muster zu erkennen