Neuronale Netzwerke – Eine intuitive Einführung
- devShinobis
- 17. Jan. 2024
- 5 Min. Lesezeit
Einführung
Neuronale Netzwerke stellen eine faszinierende Facette der künstlichen Intelligenz dar. Sie ermöglichen es Computern, aus Daten zu lernen und Aufgaben zu erledigen, die einst als exklusiv menschlich angesehen wurden. Aber was genau sind neuronale Netzwerke, und wie funktioniert ihr Lernprozess? In diesem Artikel erläutern wir ihre Arbeitsweise auf eine Art und Weise, die auch für Laien verständlich ist.
Die Grundidee: Daten, Input und Output
Das Wesen neuronaler Netzwerke besteht darin, einen bestimmten Input in einen bestimmten Output zu überführen. Stellen Sie sich dies wie eine Blackbox vor: Sie geben etwas hinein (den Input), und das Netzwerk produziert daraus etwas (den Output). Bei komplexeren Modellen wie ChatGPT geben Sie beispielsweise eine Textaufforderung (Prompt) ein, woraufhin das Modell das nächstfolgende sinnvolle Wort generiert.
Vom Einfachen zum Komplexen: Daten als Zahlen
Um die Funktionsweise von neuronalen Netzwerken zu verstehen, können wir einen einfachen Datensatz heranziehen, der aus ganzen Zahlen besteht. Wir nehmen an, wir haben bestimmte Inputzahlen und möchten diese auf entsprechende Outputzahlen abbilden. Diese Zuordnung folgt einem Muster, ähnlich wie die Sprache einer Grammatik und Syntax folgt.
Input | Output |
1 | 2 |
2 | 5 |
3 | 10 |
4 | 17 |
5 | 26 |
Wenn man sich die Abbildung genauer ansieht, erkennt man schnell, dass es in unserem Datensatz bestimmte Gesetzmäßigkeiten zu geben scheint. Der Output wirkt irgendwie vom Input abhängig. Stellt man beispielsweise die Daten in einem Diagramm dar, erkennt man leicht, dass wir für die Inputdaten nicht willkürlich Werte gewählt haben, sondern dass offensichtlich Gesetzmäßigkeiten vorhanden sind.
Ähnlich verhält es sich mit Sprache oder anderen Daten, aus denen sogenannte KI-Modelle lernen. Wenn es keine Muster in den Daten gibt, gibt es auch nichts zu lernen. Dies ist nicht viel anders als bei uns Menschen. Wir verlassen uns täglich auf Muster, um Vorhersagen zu treffen. Gäbe es keine Muster, müssten wir die Abbildungen auswendig lernen. Wenn wir einen neuen Input sehen, den wir nicht auswendig gelernt haben, können wir den Output nicht vorhersagen. Daher besteht die Aufgabe von KI-Modellen darin, Gesetzmäßigkeiten aus den Daten zu erlernen, um auch mit Daten umgehen zu können, die im Trainingsdatensatz nicht vorhanden waren und die KI noch nicht gesehen hat.
Das Modell und seine Parameter
Wir wissen jetzt, dass es Gesetzmäßigkeiten zwischen Input und Output gibt, aber welche genau? Bei diesem einfachen Datensatz ist es leicht zu erraten, wie die Abbildung von Input und Output aussieht. Bei komplexeren Daten ist dies jedoch nicht so einfach. Deshalb trifft man Annahmen darüber, wie die Gesetzmäßigkeiten aussehen könnten bzw. welches Modell die Daten am besten abbildet.
Wenn man sich unsere Daten anschaut, fällt auf, dass die Abbildung von Input zu Output eine quadratische Form zu haben scheint:
Unsere Annahme (Modell) scheint gar nicht so schlecht zu sein, da die vom Modell berechneten Werte recht nah an den tatsächlichen Werten liegen. Wir können jedoch unser Modell noch etwas verallgemeinern, indem wir die Formel für quadratische Funktionen verwenden:
Hierbei sind `a` und `b` sogenannte Parameter. Für diese Parameter können wir Werte einsetzen, um das Ergebnis (Mapping) noch weiter zu optimieren. Beim Training (Lernen) eines Modells geht es also darum, die passenden Parameter (in unserem Beispiel `a` und `b`) zu finden, die die Inputdaten bestmöglich auf die Outputdaten abbilden. Nehmen wir zum Beispiel:
So lautete unsere anfängliche Annahme:
Und da haben wir gesehen, dass wir zwar recht gute Ergebnisse erzielen können, aber das Modell dennoch Verbesserungspotenzial hat. Mit anderen Worten: Es könnten bessere Parameter existieren, die die Inputdaten noch genauer auf die Outputdaten abbilden.
Ähnlich verhält es sich bei neuronalen Netzwerken, die oft Parameter in der Größenordnung von Millionen oder sogar Milliarden besitzen, die zu Beginn des Trainings noch nicht festgelegt sind.
Das Lernen: Ein Prozess des Ausprobierens
Zu Beginn des Trainings haben wir keine genaue Vorstellung davon, welche Werte die Parameter annehmen sollten, ansonsten wäre das Training des Modells nicht erforderlich. Daher beginnen wir mit zufälligen Werten für `a` und `b`. Im Verlauf des Trainingsprozesses, der einem Versuch-und-Irrtum-Verfahren ähnelt, passen wir diese Parameter an. Diese Anpassung erfolgt, indem wir unsere Input-Daten nehmen, auf Basis unserer Formel (Modell) die Output-Daten berechnen und diese mit den erwarteten Outputs vergleichen. Die Differenz zwischen dem generierten Output und dem erwarteten Output wird mittels einer Fehlerfunktion (Metrik) gemessen. Je nach Problemstellung können verschiedene Funktionen als Metrik in Frage kommen. In unserem Beispiel werden wir die Differenz berechnen.
Fehlerfunktion:
Optimierung der Parameter
Das Ziel des Trainings besteht darin, die Parameter so zu optimieren, dass der Fehler minimiert wird. Diese Anpassungen erfolgen in kleinen Schritten, um sicherzustellen, dass sie nicht nur für einen spezifischen Input, sondern durchschnittlich für alle Inputs eine Verbesserung darstellen.
Ein Beispiel
Nehmen wir an, wir beginnen mit `a = 2` und `b = 1`. Für unser Modell hätten wir dann:
Nach der ersten Iteration würden wir den Output für jeden Input berechnen:
In der obigen Visualisierung sehen wir die anfänglichen Ergebnisse unseres einfachen Modells ( ax^2 + b ) mit den Startparametern ( a = 2 ) und ( b = 1 ). Die blauen Punkte repräsentieren die erwarteten Outputs für unsere Input-Daten (1, 2, 3, 4, 5), die auf die Werte (2, 5, 10, 17, 26) abgebildet werden sollen. Die rote Linie zeigt die Outputs unseres Modells mit den anfänglichen Parametern.
Wie zu erkennen ist, passt das anfängliche Modell noch nicht perfekt zu unseren erwarteten Daten.
Hier sehen wir die Abweichung (den Fehler) zwischen dem Modelloutput und den tatsächlichen Werten. An einem Beispiel illustrieren wir, wie der Fehler mithilfe der Fehlerfunktion berechnet werden kann.
Beispielberechnung des Fehlers für den Input = 1:
Nun setzen wir die Werte in unsere Fehlerfunktion ein.
Hier sind die Fehlerwerte für alle Inputs:
Input | Output | OuptuModel | Fehler / Error |
1 | 2 | 3 | 1 |
2 | 5 | 9 | 4 |
3 | 10 | 19 | 9 |
4 | 17 | 33 | 16 |
5 | 26 | 51 | 25 |
Der nächste Schritt im Lernprozess wäre, die Parameter \( a \) und \( b \) so anzupassen, dass die rote Linie näher an die blauen Punkte rückt, was einer Verringerung des Fehlers entsprechen würde. Dieser Anpassungsprozess wird fortgesetzt, bis das Modell die Daten möglichst genau abbildet.
Hier ein Beispiel, bei dem wir ( a = 2 ) beibehalten, aber für ( b = -0.5 ) wählen:
Wie in der Abbildung zu sehen ist, sind die Output-Werte des Modells (grüne Linie) nach dieser Anpassung näher an den tatsächlichen Werten (blaue Punkte) herangerückt, verglichen mit den Initialwerten (rot, Initialwerte vor der Parameteranpassung).
Dieser iterative Prozess des Anpassens und Verbesserns der Modellparameter ist das Herzstück des Trainings neuronaler Netzwerke. Er ermöglicht es dem Modell, aus den Daten zu lernen und Vorhersagen oder Entscheidungen zu treffen, die den erwarteten Ergebnissen näherkommen.
Der Einsatz von Algorithmen
Das manuelle Ausprobieren der Parameter wäre unendlich mühsam. Deshalb nutzen neuronale Netzwerke Algorithmen wie die Backpropagation, die auf partieller Ableitung basieren. Diese Algorithmen helfen, den steilsten Weg zur Fehlerminimierung zu finden, indem sie anzeigen, in welche Richtung die Parameter angepasst werden müssen.
Das bedeutet, anstatt zu raten, welche Parameter (a, b) und um wie viel (Lernrate) wir sie verändern müssen, um bessere Modelloutputs als zuvor zu erzielen, verwendet man einen Algorithmus, der uns diese Werte berechnet.
Die Vorgehensweise bleibt jedoch gleich:
1. Initialisiere Parameter zufällig.
2. Berechne `OutputModel`.
3. Vergleiche `OutputModel` mit `OutputExpected`.
4. Berechne neue Parameterwerte mithilfe des Backpropagation-Algorithmus.
5. Passe die Parameter an.
6. Wiederhole die Schritte 2 bis 5, bis zufriedenstellende Ergebnisse erreicht sind.
Zusammenfassung
Neuronale Netzwerke sind zwar komplex, aber ihr Grundprinzip ist einfach: Sie lernen durch die Anpassung ihrer Parameter, um Input-Daten bestmöglich auf Output-Daten abzubilden. Das Modell mag aus komplexeren Berechnungen und hintereinandergeschalteten mathematischen Funktionen bestehen, aber das Prinzip, wie sie lernen, ist dasselbe wie in unserem Beispiel. Dieses Lernen ermöglicht es ihnen, erstaunliche Aufgaben zu bewältigen, von der Textgenerierung bis zur Bilderkennung. Sie sind ein beeindruckendes Beispiel dafür, wie weit die künstliche Intelligenz bereits fortgeschritten ist.
Kommentare