Wie funktioniert maschinelles Lernen?
Wie lernen Maschinen? Lernen Maschinen wie Menschen? Wieso wollen wir Menschen, das Maschinen lernen?
Lennard Gerdes / 3. April 2023
Wie lernen Maschinen? Lernen Maschinen wie Menschen? Wieso wollen wir Menschen, das Maschinen Lernen? Diese Frage über das maschinelle Lernen möchte ich dir in diesem Blogpost erklären.
Zuerst möchte ich dir die Bestandteile und Schritte erklären, die es braucht, um das Ziel des maschinelles Lernen's zu erreichen.
Algorithmen, die lernen können
Als erstes brauchen wir einen Algorithmus der in der Lage ist zu lernen. Lernen bedeutet, dass Verarbeiten von Informationen mit dem Ziel einen bestimmten Wissenstand zu erreichen. Dieser Wissenstand, kann für eine spezifische Aufgabe genutzt werden. Zum Beispiel soll der Algorithmus lernen, handgeschriebene Zahlen auf einem Bild zu identifizieren. Nicht jede Zahl sieht gleich aus und neue unbekannte Zahlen sollen eindeutig identifiziert werden können. Es braucht einen Algorithmus, der durch das maschinelle Lernen Wissen akkumuliert und dieses Wissen kann folglich auf unbekannte Daten angewendet werden.
(1) Künstliche Intelligenz (2) Maschinelles lernen (3) Tiefes Lernen | Deep Learning
Vorbereitung der Daten / Informationen
Der zweite Teil ist es dem Algorithmus Informationen in Form von Daten bereitgestellt, sodass der Algorithmus aus diesen Informationen extrahieren und lernen kann. Diese Informationen müssen für den Algorithmus von einem Menschen vorbereitet werden. Dieses Vorgehen ist einer der wichtigsten Schritte. In diesem Schritt können Menschen das Wissensziel vorbereiten bzw. definieren. Wenn wir dem Algorithmus handgeschriebene Buchstaben in Form eines Bildes bereitstellen, kann dieser Algorithmus keine handgeschriebenen Zahlen erkennen Der Mensch entscheidet im Vorfeld mit den jeweiligen Informationen, was die Maschine am Ende erlernt und welche Aufgabe vom maschinellen Lernen gelöst werden kann.
Training des maschinellen Lernens
Der dritte Teil ist das Training des Algorithmus. Es ist quasi die Lernphase in dem der Algorithmus des maschinellen Lernens, die vor verarbeiteten Informationen als Eingabe bekommt und daraus den gewünschten Wissenstand generiert. Dieser Schritt kombiniert die ersten Schritte und nachdem Training erhalten wir einen Algorithmus, der einen Wissenstand erreicht hat. Ob dieser Wissenstand reicht, um unbekannte Daten bzw. die Aufgabe zu lösen, muss ausführlich getestete werden.
Anwendung des maschinellen Lernens
Der finale Teil ist das Anwenden des Algorithmus auf unbekannte, nicht gelernte Daten. Der Algorithmus soll seine Wissenstand unter Beweis stellen und Lösungen liefern. Wenn wir ein Blatt Papier eine handgeschriebene "1" schreiben, dieses Bild fotografieren und dem Algorithmus bereitstellen, dann soll der Algorithmus diese Zahl erkennen und die Lösung in Form der Zahl "1" zurückgeben. Sofern der Algorithmus nicht die richtige Zahl erkennt, sollte der Algorithmus wieder in die Lernphase gehen, um sein Wissen zu verbessern.
Maschinelles lernen programmieren vs. klassisches Programmieren
In der Einleitung habe ich von einem Algorithmus gesprochen der aus Informationen lernen kann. Dieser Algorithmus kann mit klassischen Mitteln programmiert werden. Wir haben Eingabe-Daten, die in diesen Algorithmus verarbeitet werden können. Zudem gibt es Ausgabe-Daten, die eine Lösung für eine Aufgabe darstellen. Diese Ausgabe-Daten sind das Ziel, welches wir aus diesem Algorithmus erhalten wollen. Ein Algorithmus ist gleichzusetzen mit einem Backrezept, zum Backen eines Kuchens. Für diesen Kuchen braucht es Zutaten. Diese Zutaten sind Stellvertretend unsere Eingabedaten für den Algorithmus. Zutaten werden in einer bestimmten Reihenfolge und Menge miteinander vermischt bzw. in unserem Algorithmus verarbeitet. Nach einer Reihe von Anweisungen (Mixen, Mischen, Backen, Dekorieren) erhalten wir einen Kuchen. So funktionieren auch Algorithmen. Wir multiplizieren, subtrahieren oder verarbeiten mit Operationen die Eingabedaten in einer bestimmten Reihenfolgen an Anweisungen, um schlussendlich zu einem Ergebnis zu gelangen. Das Ergebnis sind unsere Ausgabe-Daten. Maschinelles lernen setzt eine Algorithmus voraus, der mit klassischen Mitteln programmiert werden kann. Dieser Algorithmus ist lernfähig, aber bekommt nicht das Wissen programmiert. Dieses wird in der Trainingphase selbstständig beigebracht.
Wird der Mensch zur Maschine oder die Maschine zum Menschen?
Maschinelles Lernen vs. Menschliches Lernen
Jeder Mensch lernt unterschiedlich und so ist es auch mit Maschinen bzw. Algorithmen. Es gibt verschiedene maschinelle Lernen-Algorithmen, die sich dahingehend unterscheiden, wie gelernt wird. Zudem gibt es verschiedene Lernstrategien im maschinellen Lernen. Ähnliche Lernstrategien haben auch wir Menschen uns ausgedacht, um Wissen schneller zu erschließen. Es kommt immer auf die Eingabe-Daten an, was für ein Algorithmus benötigt wird. Das ist wiederum übertragbar auf das Rezept und die Zutaten. Wenn Zutaten fehlen, dann ist es nicht möglich das Rezept vollständig durchzuführen. Wenn Eingabe-Daten fehlen, dann ist es nicht möglich einen Wissenstand aufzubauen, der die gewünschten Ausgabe-Daten bringt. Vertauschen wir die Reihenfolge der Anweisungen im Rezept, wird der Kuchen eventuell nicht im Ofen aufgehen. Vertauschen wir die Reihenfolge der Anweisungen im maschinellen Lernen, kann der Algorithmus nichts oder stark eingeschränkt lernen. Es bleibt fraglich, ob der Algorithmus zu unserem erwünschten Ziel gelangt. Wie jemand lernt ist stark abhängig von dem Fakt, was wir erlernen wollen und was für ein Lerntyp man selbst ist. Beim maschinellen lernen entscheiden häufig die Eingabedaten, was für ein Algorithmus benötigt wird. Die Informationen der Eingabedaten müssen von dem Algorithmus extrahiert und erlernt werden, um zu dem erstrebenswerten Wissenstand zu kommen. Ein Mensch kann nur dann lernen, wenn die Bücher in seiner Sprache vorliegen und er dem Author und dessen Aufbereitung der Informationen folgen kann. Wenn die Grundlagen fehlen, dann können darauf aufbauende Konzepte nicht vollständig begriffen bzw. gelernt werden. Das maschinelle Lernen baut sehr stark auf dem Konzept auf, wie wir Menschen lernen. Die Vorgehensweise, wie Menschen lernen wird beim maschinellen Lernen in binäre Operationen (also in Einsen und Nullen) umgewandelt.
Das menschliche Lernen bildet die Grundlage des maschinellen Lernens. Maschinelles Lernen benötigt einen Menschen, der die Daten und Informationen vorbereitet, sodass maschinelles Lernen eine spezifische Aufgabe lösen kann. Die Lösung der Aufgabe ist die Absicht des Menschen und dieser definiert eigenständig das Ziel des maschinellen Lern-Algorithmus. Das grenzt maschinelles lernen von künstlicher Intelligenz ab. Allgemeine künstliche Intelligenz ist nicht begrenzt auf die Lösung einer einzelnen spezifischen Aufgabe. Wir Menschen sind in der Lage mehrere Aufgabe lösen. Maschinelles Lernen ist nur in der Lage einzelne Aufgabe dem Menschen abzunehmen. Maschinelles Lernen wird vom Menschen gemacht, um das Leben der Menschheit zu vereinfachen. Das maschinelles Lernen bildet nur ein Teilbereich der künstliche Intelligenz.
Wie lernt maschinelles Lernen?
Eine Maschine lernt von ihren eignen Fehlern und hat das bestreben sich selbst zu verbessern. Dieses Konzept kann auch beim menschlichen Lernen beobachtet werden. Ein Mensch der auf eine heiße Herdplatte gefasst hat, wird diese Aktion nicht noch ein zweites mal wiederholen. Die Aktion hatte eine negative Reaktion, in Form von Schmerzen und Verbrennungen an der Hand, zufolge. Der Mensch weiß im Nachhinein, dass die Herdplatte so heiß ist und ein Kontakt mit dieser Schmerzen verursacht. Ein maschineller Lern-Algorithmus macht Fehler, um aus diesen Fehlern zu lernen. In der Trainingsphase können Fehler gemacht werden. Gemachte Fehler können mathematisch berechnet werden. Anders gesagt, es kann berechnet werden, wie nah der Algorithmus an seinem Ziel war. Der Fehlerabstand bzw. Abstand zu dem Ziel, soll demnach minimiert werden. Es wird sich dem Ziel angenähert. Dafür braucht es viele teilweise sehr viele Versuche in der Trainingsphase, um den Fehler zu minimieren und schlussendlich zum Ziel zu kommen.
Der Algorithmus verarbeitet die Daten für die Aufgabe und kommt zu einer Lösung. Seine Lösung kann der Algorithmus in der Trainingsphase mit der Lösung des Menschen abgleichen und den Abstand zum Ziel bzw. Fehler berechnen. In der Trainingsphase braucht es folglich nicht nur die vor verarbeiteten Daten des Menschen. Es wird auch eine Lösung zu der definierten Aufgabe benötigt. Um zu dem Beispiel der handgeschriebene Zahlen zurückzukommen, braucht der maschinelle Lern-Algorithmus Bilder mit handgeschriebenen Zahlen und die Information, was für eine Zahl tatsächlich zu sehen ist. Die tatsächliche, auf dem Bild dargestellte, Zahl wird auch als Label bezeichnet. Der Mensch wird folglich dazu benötigt Zahlen per Hand zu schreiben und jede Zahl mit einem richtigen Label zu versehen. Das Label erhält der Algorithmus nur in der Trainingsphase, sodass dieser Fehler macht, berechnet und minimiert. Die Minimierung des Fehler ist die Antwort auf die Frage, wie eine Maschine lernen kann.
Vorteil des maschinellen Lernen
Das klingt schon alles eventuell kompliziert und ich möchte dir jetzt helfen, das gelesen ein wenig besser einzuordnen. Warum wird maschinelles Lernen verwendet? Der Vorteil vom maschinellen Lernen ist das gelernte Wissen, welches im Algorithmus enthalten ist. Klassische Algorithmen haben einen feste Reihenfolge von Anweisungen und einen festen Regelsatz. Dieser wird einmalig von einem Menschen definiert und sind deshalb ein sehr starres Konstrukt. Ein klassischer Algorithmus ist das Spiegelbild des Wissenstands, der den jeweilige Algorithmus programmiert hat. Wenn sich der Wissenstand ändert oder der Mensch einen Fehler programmiert hat, dann muss der Algorithmus repariert oder angepasst werden.
Wenn dieser Algorithmus sein Wissen selbst erschafft, indem er selbst lernt, dann können menschliche Fehler ausgeschlossen werden. Der Mensch dient nur noch dazu da, Daten aufzubereiten, den Algorithmus bestmöglich zu befähigen zu selbst zu lernen. In der heutige Welt sind Daten sehr umfangreich und teilweise ist es nicht möglich diese per Hand auszuwerten. Ein Mensch kann nur eine begrenzte Stundenanzahl am Tag lernen. Ein Mensch wird müde vom arbeiten. Das sind alles Gründe, warum Computer eingesetzt werden. Aber nicht jede Aufgabe konnte von einem Computer bzw. Maschine übernommen werden. Die Fähigkeiten zu sehen, riechen, schmecken, fühlen und hören haben wir Menschen. Maschinen sind nicht in der Lage diese Sinne zu kombinieren und Informationen über all diese Kanäle zu verarbeiten. Das Sehen und wiedererkennen von Schrift ist eine Kombinationen aus verschiedenen Automatismen, die wir Menschen in unserer Kindheit erlernen. Dieses Wissen zu extrahieren und in einem Algorithmus festzuhalten, ist schwierig. Denk mal darüber nach, woran du eine handgeschriebene Zahl identifizierst.
Mustererkennung: Maschinelles Lernen vs. Mensch
Wiedererkennung bzw. identifizieren findet über Erkennung von Mustern statt. Wenn eine Kombination aus mehrere Muster erkannt worden ist, dann wissen wir Menschen, was wir auf dem Blatt Papier sehen. Eine handgeschriebene "2" hat eine horizontalen Strich und daran anknüpfend einen Haken. Wenn du nicht dieser Meinung bist, dann kannst du vielleicht verstehen, dass ich eine andere Mustererkennung gelernt habe. Die Kombination der beiden Muster, lassen mich wissen, dass auf dem Bild eine handgeschriebene "2" zu sehen ist. Ich könnte einen Algorithmus schreiben, der diese Aufgabe löst und nach meiner Mustererkennung funktioniert.
Variation von handgeschriebenen Zahlen "2".
Das Problem ist, dass nicht jeder die "2" gleich per Hand schreibt. Jeder Mensch hat seine Version der handgeschrieben "2". Mancher Mensch verbindet den Haken und den horizontalen Strick mit einem kleinen Kreis. Mancher Haken ist kleiner. Der horizontale Strich teilweise kurzer. Es gibt viele Variationen. Sobald diese beiden Muster vorliegen, werden Menschen eine "2" eindeutig identifizieren können. Mein Algorithmus mit meinem Regelwerk würde eventuell nicht für jede Ausführung der zwei funktionieren. Es müssten viele Regeln einfügt werden, sodass jeder Spezialfall abgedeckt worden ist. Wenn ich jedoch einen Algorithmus schreiben kann, der in der Lage ist zu lernen. Ich selbst Daten mit handgeschriebenen Zahlen aufbereite und dem Algorithmus zum trainieren geben. Folglich würde ich das Wissen nicht selbst niederschreiben in einen Algorithmus, sondern das Wissen sich selbst generieren lassen von einer Maschine. Wenn das Wissen robust ist, dann ist es möglich, dass der Algorithmus viele Versionen der handgeschriebenen "2" wiedererkennt, die er nicht explizit gelernt hat. Ich habe mich in meiner Kindheit nicht mit allen Versionen der handgeschriebenen "2" beschäftigt, sodass ich nun alle Versionen kennen. Ich erkenne diese Zahl aus der Kombination der beiden oben beschriebenen Muster. Dieses Wissen kann im maschinellen Lernen einer Maschine beigebracht werden. Der Programmierer wird zu einem Lehrer und bereitet den Unterrichtstoff für seine Schüler vor. Diese Schüler können lernen ohne eine Pause zu machen oder sonstige Gefühle zu verspüren. Das ist im relativ einfacher Sprache, der Vorteil vom maschinellen Lernen. Explizit ist der Vorteil das Automatisieren von Wissensgenerierung. Das entstanden Wissen kann für viele weitere Aufgaben genutzt werden, die nicht den gleichen Aufgaben aus dem Training entsprechen. Trotzdem besteht die Möglichkeit, dass der Algorithmus die Aufgabe mit der richtigen Lösung löst, sofern das Wissen robust ist.
Zusammenfassung: Wie funktioniert maschinelles Lernen?
Maschinelles lernen ist das Zusammenspiel eines selbst lernenden Algorithmus der Wissen akkumuliert. Der Algorithmus lernt wie ein Mensch und soll Wissen, wie er eine bestimmte Aufgabe löst. Um die Aufgabe zu lösen braucht der Algorithmus Eingabe-Daten, aus denen Informationen gewonnen werden, sodass eine Aufgabe gelöst werden kann. In der Trainingsphase fährt der Algorithmus mit Stützrädern. Er darf die Aufgabe probieren zu lösen und bekommt als Hilfsstellung die Lösung zur Verfügung. Seine eigene Lösung kann der Algorithmus mit der Lösung des Menschen abgleichen und einen Fehlerwert berechnen. Der Fehler gibt an, wie weit das Ziel entfernt ist. Diese Entfernung soll minimiert werden, sodass er beim nächsten Versuch die Aufgabe korrekt lösen kann. Mit jedem Versuch wird der Fehlerwert minimiert, bis der Algorithmus gelernt hat, wie die Aufgabe zu lösen ist. Das akkumulierte Wissen kann nun auf nicht gelernte Aufgabenstellungen angewendet werden. Der Vorteil von maschinellen Lernen besteht in der Automatisierung dieses Wissen zu erstellen. Aufgaben, die vorher nur der Mensch übernehmen konnte, können nun Maschinen übernehmen. Maschinelles Lernen überträgt viele Konzepte des Menschen über Lernen, Wissen und Denken in ein Form, die eine Maschine tatsächlich ausführen kann.