9
Ein Algorithmus ist eine feste Abfolge von Anweisungen zur Ausführung einer Aufgabe. Er zerlegt die Aufgabe in einfache, verwirrungsfreie Schritte – wie ein gut geschriebenes Rezept.
Programmiersprachen sind Sprachen, die ein Computer befolgen und ausführen kann. Sie dienen als Brücke zwischen dem, was wir verstehen, und dem, was eine Maschine kann – letztlich Schalter, die man ein- und ausschalten kann. Für einen Computer sind Bilder, Videos und Anleitungen nichts anderes als Einsen (“Schalter ist an”) und Nullen (“Schalter ist aus”).
In einer Programmiersprache geschrieben, wird ein Algorithmus zu einem Programm. Anwendungen sind Programme, die für Endnutzende geschrieben werden.
Herkömmliche Programme nehmen Daten auf und folgen den Anweisungen, um eine Ausgabe zu erzeugen. Viele frühe KI-Programme waren konventionell. Da sich die Anweisungen nicht an die Daten anpassen können, waren diese Programme nicht sehr gut darin, Vorhersagen auf der Grundlage unvollständiger Informationen zu treffen und natürliche Sprache zu verarbeiten (Natural Language Processing, NLP).
Eine Suchmaschine wird sowohl von herkömmlichen als auch von maschinellen (ML) Lernalgorithmen angetrieben. Im Gegensatz zu herkömmlichen Programmen analysieren ML-Algorithmen Daten auf Muster und verwenden diese Muster oder Regeln, um zukünftige Entscheidungen oder Vorhersagen zu treffen. Das heißt, auf der Grundlage von Daten – guten und schlechten Beispielen – finden sie ihr eigenes “Rezept”.
Diese Algorithmen eignen sich gut für Situationen mit hoher Komplexität und fehlenden Daten. Sie können auch ihre eigenen Leistung überwachen und dieses Feedback nutzen, um sich mit der Zeit zu verbessern.
Das System funktioniert auf ähnliche Weise wie beim Menschen, insbesondere bei Babys, die sich Fähigkeiten außerhalb des traditionellen Bildungssystems aneignen. Babys beobachten, wiederholen, lernen, testen und verbessern sich. Wenn nötig, improvisieren sie.
Aber die Ähnlichkeit zwischen Maschinen und Menschen ist sehr oberflächlich. „Lernen” aus menschlicher Sicht ist etwas ganz anderes und viel nuancierter und komplexer als „Lernen” für die Maschine.
Ein Klassifizierungsproblem
Eine häufige Aufgabe, für die eine ML-Anwendung eingesetzt wird, ist die Klassifizierung: Handelt es sich um das Foto eines Hundes oder einer Katze? Hat der Lernende Schwierigkeiten oder hat er/sie die Prüfung bestanden? Es gibt zwei oder mehr Kategorien und die Anwendung muss neue Daten in eine dieser Gruppen einordnen.
Nehmen wir das Beispiel von Spielkarten, die nach einem bestimmten Muster in zwei Stapel – Gruppe A und Gruppe B – unterteilt werden. Wir sollen eine neue Karte, das Karo-Ass, der Gruppe A oder der Gruppe B zuordnen.
Zunächst müssen wir verstehen, wie die Gruppen aufgeteilt sind – wir brauchen Beispiele. Ziehen wir vier Karten aus Gruppe A und vier aus Gruppe B. Diese 8 Beispielfälle bilden unsere Trainingsmenge, d.h. Daten, die uns helfen, das Muster zu erkennen. Wir „trainieren”, das Ergebnis zu sehen.
Sobald uns die Anordnung auf der rechten Seite gezeigt wird, würden die meisten von uns erraten, dass das Karo-Ass zu Gruppe B gehört. Wir brauchen keine Anweisungen, das menschliche Gehirn ist ein Wunderwerk der Musterfindung. Wie würde eine Maschine dies tun?
Die Algorithmen des maschinellen Lernens beruhen auf leistungsstarken statistischen Theorien. Die verschiedenen Algorithmen beruhen auf unterschiedlichen mathematischen Gleichungen, die sorgfältig ausgewählt werden müssen, um der jeweiligen Aufgabe gerecht zu werden. Es ist die Aufgabe des Programmierenden, die Daten auszuwählen, zu analysieren und zu entscheiden, welche Merkmale der Daten für das jeweilige Problem relevant sind sowie den richtigen Algorithmus auszuwählen.
Die Wichtigkeit von Daten
Die obige Ziehung hätte auf verschiedene Weise fehlschlagen können. Bitte sehen Sie sich das nebenstehende Bild an: 1 hat zu wenige Karten, eine Vermutung wäre nicht möglich. 2 hat mehr Karten, aber alle in der gleichen Farbe, daher gibt es keine Anhaltspunkte, wohin Karo kommen würde. Wenn die Gruppen nicht gleich groß sind, könnte 3 sehr wohl bedeuten, dass die Zahlenkarten in Gruppe A und die Bildkarten in Gruppe B sind.
Im Allgemeinen sind die Probleme des maschinellen Lernens offener und umfassen Datensätze, die viel größer sind als ein Kartenspiel. Die Trainingsdatensätze müssen mit Hilfe statistischer Analyseverfahren ausgewählt werden, da sonst Fehler auftreten können. Eine gute Datenauswahl ist entscheidend für eine gute ML-Anwendung, mehr noch als bei anderen Programmtypen. Maschinelles Lernen benötigt eine große Anzahl relevanter Daten. Als absolutes Minimum sollte ein grundlegendes Modell für maschinelles Lernen zehnmal so viele Datenpunkte enthalten wie die Gesamtzahl der Merkmale1. Darüber hinaus ist ML besonders gut geeignet, um mit “verrauschten”, unklaren und widersprüchlichen Daten umzugehen.
Extraktion von Merkmalen
Bei den oben gezeigten Beispielen für Gruppe A und Gruppe B ist Ihnen vielleicht als Erstes die Farbe der Karten aufgefallen, dann die Nummer oder die Buchstaben. Für einen Algorithmus müssen alle diese Merkmale speziell eingegeben werden. Er kann nicht automatisch wissen, was für das Problem wichtig ist.
Bei der Auswahl der Merkmale, die von Interesse sind, müssen sich Programmiernde viele Fragen stellen: Wie viele Merkmale sind zu wenig, um nützlich zu sein? Wie viele Funktionen sind zu viele? Welche Merkmale sind für die Aufgabe relevant? In welchem Verhältnis stehen die ausgewählten Funktionen zueinander – ist eine Funktion von der anderen abhängig? Ist es mit den gewählten Merkmalen möglich, eine genaue Ausgabe zu erzielen?
Der Prozess
Wenn die programmierende Person die Anwendung erstellt, nimmt sie Daten, extrahiert daraus Merkmale, wählt einen geeigneten Algorithmus für maschinelles Lernen (eine mathematische Funktion, die den Prozess definiert) und trainiert ihn mit markierten Daten (in dem Fall, in dem die Ausgabe bekannt ist – wie Gruppe A oder Gruppe B), so dass die Maschine das Muster hinter dem Problem “versteht”.
Für eine Maschine besteht das Verständnis aus einer Reihe von Zahlen – den Gewichten -, die sie jedem Merkmal zuordnet. Durch die richtige Zuordnung der Gewichte kann die Maschine die Wahrscheinlichkeit berechnen, mit der eine neue Karte zur Gruppe A oder zur Gruppe B gehört. In der Regel hilft die programmierende Person der Maschine in der Trainingsphase, indem sie einige Werte manuell ändert – dies wird als Abstimmung (Tuning) der Anwendung bezeichnet.
Nachdem dies geschehen ist, muss das Programm getestet werden, bevor es in Betrieb genommen werden kann. Zu diesem Zweck werden dem Programm die markierten Daten, die nicht für das Training verwendet wurden, zur Verfügung gestellt. Diese Daten werden Testdaten genannt. Dann wird die Leistung des Programms bei der Vorhersage des Outputs gemessen: Sobald das Programm als zufriedenstellend eingestuft wird, kann es eingesetzt werden. Es ist bereit, neue Daten zu verarbeiten und eine Entscheidung oder Vorhersage zu treffen.
Kann ein Modell mit Trainings- und Testdatensätzen unterschiedlich funktionieren? Wie wirkt sich die Anzahl der Merkmale auf die Leistung in beiden Fällen aus? Sehen Sie sich dieses Video an, um es herauszufinden.
Die Echtzeitleistung wird dann kontinuierlich überwacht und verbessert (die Gewichtung der Merkmale wird angepasst, um eine bessere Leistung zu erzielen). Oft liefert Echtzeitleistung andere Ergebnisse, als wenn maschinelles Lernen mit vorhandenen Daten getestet wird. Da das Experimentieren mit realen Nutzenden teuer, zeitaufwändig und oft riskant ist, werden Algorithmen immer mit historischen Nutzerdaten getestet, die möglicherweise nicht in der Lage sind, die Auswirkungen auf das Nutzerverhalten zu ermitteln1. Daher ist es wichtig, Anwendungen des maschinellen Lernens umfassend zu evaluieren, sobald sie in Betrieb genommen werden:
Haben Sie Lust, Machine Learning auszuprobieren? Versuchen Sie diese Aktivität.
1 Theobald, O. Machine Learning For Absolute Beginners: A Plain English Introduction (Second Edition) (Machine Learning From Scratch Book 1) (p. 24). Scatterplot Press. Kindle Edition.
2 Konstan, J., Terveen, L., Human-centered recommender systems: Origins, advances, challenges, and opportunities, AI Magazine, 42(3), 31-42, 2021.