Künstliche Intelligenz - Teil 2 - Kein Hokus-Pokus
Was ist KI und warum ist KI keine Zauberei. In diesem Beitrag lernst du, wie KI funktioniert.

Im ersten Teil haben wir uns mit den Anwendungsfällen von neuronalen Netzen beschäftigt und festgestellt, dass sie nur Werkzeuge für einen ganz bestimmten Anwendungsbereich sind. In diesem Teil wollen wir die technologischen Hintergründe auf verständliche Weise erkunden.
Bereits in „Es hat längst begonnen“ habe ich in groben Zügen erklärt, wie ein neuronales Netz trainiert wird. Sehr vereinfacht habe ich erklärt, dass ein neuronales Netz mit großen Datenmengen gefüttert wird, von denen man weiß, wie das gewünschte Ergebnis aussehen soll, und „lernt“ dabei selbstständig, welche Muster in den Daten zu ebendiesen gewünschten Ergebnissen führen. Der Vorteil liegt also, wie bereits im ersten Teil dieser Serie „Künstliche Intelligenz - Teil 1 - Der Blick in die Glaskugel“ geschrieben wurde, darin, dass das Erkennen solcher Muster nicht mehr in detektivischer Kleinarbeit von Hand erledigt werden muss, sondern von Algorithmen selbstständig durchgeführt wird.
In diesem Beitrag gehe ich detaillierter auf das Trainieren von KI ein und zeige dir anhand von Beispielen, aus welchen Teilen ein solches neuronales Netz besteht und wie diese Teile zusammenhängen.

1. Das Modell
Das Modell ist das Herzstück des maschinellen Lernens. Es ist eine Struktur aus sogenannten Neuronen, die wiederum in Schichten zusammengefasst sind. Die Gesamtheit dieser Schichten, ihr Aufbau und ihre Verbindungen untereinander bilden das Modell. Es ist nicht gleichbedeutend mit dem fertig angelernten neuronalen Netz, sondern vielmehr die Grundstruktur, die dann im zweiten Schritt angelernt wird. Wir können uns das Modell stark vereinfacht wie ein Koordinatensystem vorstellen. Man definiert eine x-Achse und eine y-Achse sowie eine Formel, die später einen Graphen bildet. Aus diesem können im nächsten Schritt Werte abgelesen werden.
Nehmen wir ein Beispiel: Wir arbeiten für eine Eisdiele und wollen herausfinden, wie teuer unser Eis sein muss. Wir interessieren uns besonders für Bananeneis. Um nun vorhersagen zu können, was uns die nächste Produktion von Bananeneis kosten wird, wollen wir eine Möglichkeit haben, den Preis der Bananen vorherzusagen und nicht mehr von der Rechnung unseres Lieferanten überrascht zu werden. Dazu entwerfen wir ein Koordinatensystem:
Bisschen leer, das Ganze. Fügen wir dazu also einige Daten hinzu. Als Erstes brauchen wir einen neuen Parameter, mit dem wir die Eingabe modifizieren. Die Eingabe ist die bestellte Menge Bananen. Der Händler gibt uns einen Kilopreis vor. Daraus resultiert folgende Formel: gewünschte Menge × Kilopreis. Derzeit kosten Bananen ca. 1,30 € pro Kilogramm. Wenn wir damit das Modell anlernen, erhalten wir die Formel:
Eingabe x multipliziert mit 1,3 ergibt den vorhergesagten Preis y.
x × 1,3 = y
Wir wollen die Bananen aber geliefert bekommen und nicht nur auf dem Marktstand kaufen. Dafür verlangt der Händler eine Pauschale von 2 € pro Lieferung und wir brauchen einen neuen Parameter für unsere Formel:
Eingabe x multipliziert mit dem Kilopreis (1,3) plus Lieferpauschale ergibt den vorhergesagten Preis y.
x × 1,3 + 2 = y
Sehr gut! Nach unserer Vorhersage können wir damit rechnen, dass die nächste Lieferung mit 6 kg Bananen uns voraussichtlich 9,80 € kosten wird. Unsere Prognose funktioniert. Aber was ist, wenn wir in verschiedenen Monaten unterschiedliche Preise haben, weil Bananen gerade Saison haben? Auch ein Mengenrabatt ist bei unserem Händler möglich. Außerdem wollen wir auch Äpfel bestellen. Dann reduziert sich die Lieferung anteilig für die Bananen entsprechend. Wir brauchen MEHR PARAMETER! VIEL MEHR PARAMETER!
Genau dafür gibt es neuronale Netze. Die können viel mehr Parameter für die Prognose berücksichtigen als normale Software und vor allem sich selbst die Werte für diese Parameter heraussuchen.
Ein KI-Modell kann man sich also stark vereinfacht als eine Art Graph, der Daten als Input erhält und dann den entsprechenden Wert oder die Vorhersage aus diesem Graphen herausliest, vorstellen. In der Realität wäre ein neuronales Netz aber wohl eher eine ganze Reihe von Graphen, die miteinander verbundenen sind (Neuronen). Jedes Neuron verarbeitet die Eingabedaten und gibt seine Ausgabe an die nächsten Neuronen weiter, bis die letzte Schicht erreicht ist. Nach der letzten Schicht erfolgt dann die Interpretation des Ergebnisses.
Genau für diese Eingabe und anschließende Interpretation braucht es aber eigene Software. Den Inference Code.
2. Inference Code
Nachdem ein KI-Modell erfolgreich trainiert wurde, kann es verwendet werden, um Vorhersagen zu treffen. Dieses Verwenden des neuronalen Netzes zum Generieren von Vorhersagen wird als Inferenz bezeichnet. Das Modell empfängt neue Eingabedaten, verarbeitet sie gemäß seiner internen Struktur und Gewichtung und erzeugt eine Ausgabe auf der Grundlage des beim Training erworbenen Wissens. Diese Ausgabe wird dann in ein nutzbares Ergebnis umgewandelt.
Die Schicht, die die Eingabe, z. B. von einem Benutzer, einem anderen Programm oder aus einer Datenbank, an das Modell liefert und die Ausgabe interpretiert und zurückgibt, wird oft als Inferenzcode bezeichnet.
In unserem Beispiel wäre dies der Eismacher, der die Menge an Bananen aus dem Rezept abließt und in die Formel eingibt und dann das Ergebnis notiert, um das Geld für den Händler passend bereitzulegen.
3. Neuron
Neuronale Netze bestehen aus künstlichen „Neuronen“, also Nervenzellen, die mithilfe von Programmcode nachgebildet sind. Dabei haben diese künstlichen Neuronen mit echten Nervenzellen nur sehr wenige Schnittmengen. Es sind vielmehr lauter kleine mathematische Formeln. So wie unsere Formel für den Graphen im Beispiel. Zu Beginn werden die Parameter mit zufälligen Werten gefüllt. Im Laufe des Trainings werden diese Werte immer wieder angepasst, bis das Ergebnis des ganzen Netzes dem gewünschten Ergebnis möglichst nahe kommt. Diese Parameter heißen sehr oft Weight und Bias. Dabei ist Weight eine Gewichtung der Ausgabe durch Addition mit einem bestimmten Wert und Bias eine Multiplikation der Eingabe.
Ein neuronales Netz hat je nach Größe eine ganze Reihe von entsprechenden Weight- und Biasfeldern, die während des Trainings angepasst werden, um das Modell zu optimieren. Das Training besteht darin, das Modell mit bekannten Input-Output-Paaren zu füttern und die beiden Werte entsprechend anzupassen, um eine möglichst genaue Vorhersage zu erhalten. Dazu gleich mehr. Ein solches künstliches Neuron könnte wie folgt aussehen:
4. Sampling
Sampling wird außerhalb des Modells verwendet. Dabei handelt es sich um eine Methode, die in Sprachmodellen verwendet wird, um das nächste Wort in einer Ausgabesequenz (dem späteren Ausgabesatz oder Text) auszuwählen, wobei die Ausgabe z. B. aus Wahrscheinlichkeiten für einzelne Wörter besteht. Ziel des Samplings ist es, den Effekt der reinen Vorhersage auf der Basis gelernter Muster zu minimieren, bei der immer das wahrscheinlichste Wort ausgewählt würde. In der Sprache wird jedoch nicht immer das wahrscheinlichste oder häufigste Wort verwendet, sondern es gibt eine starke Diversifizierung in der Wortwahl. Das nächstliegende Wort in einem Satz ist nicht immer dasjenige, das am schönsten oder interessantesten klingt. Aus diesem Grund ist ein gewisser Zufallsfaktor erforderlich, der durch das Sampling in die Ausgabe eingebracht wird.
Nachdem das Modell die Wahrscheinlichkeiten für ein Array (Liste) von Wörtern berechnet hat, wird ein zufälliger Prozentwert generiert und das nächste Wort entsprechend diesem Wert ausgewählt. Dieser Schritt wird normalerweise von der Anwendung oder dem Programm durchgeführt, in das das Modell eingebettet ist.
In vielen Implementierungen wird das Sampling mithilfe der Softmax-Funktion[:] durchgeführt. Die Softmax-Funktion transformiert die Ausgabewerte des Modells in eine Wahrscheinlichkeitsverteilung, die dann für das Sampling verwendet werden kann.
In der Praxis wird auch hier mit Parametern gearbeitet, die helfen sollen, dass ungewöhnliche Wörter Verwendung finden oder auch Wortwiederholungen unwahrscheinlicher werden.
5. Training von neuronalen Netzen
Es gibt eine ganze Reihe an Paradigmen im Bereich des Machine Learnings. Einige will ich im Folgenden näher erklären. Sie alle benötigen gigantische Datenmengen, um aus diesen Muster abzuleiten und so die Bewältigung einer Aufgabe „lernen“.
a. Trainingsdaten
Trainingsdaten, oft auch als Korpus oder Dataset bezeichnet, sind regelmäßig als Datenbank zu klassifizieren. Sie sind systematisch (z.B. alphabetisch) geordnet, einzeln zugänglich und regelmäßig durch eine arbeits- und zeitintensive Aufbau- und Pflegephase gekennzeichnet. Damit liegt auch eine Datenbank im Sinne des Urheberrechts vor, die entsprechend geschützt ist. Dazu aber in einem weiteren Beitrag mehr.
In dieser Datenbank werden vor allem Elemente, die den späteren Eingangsdaten ähnlich sind, mit den gewünschten Ergebnissen verknüpft. In unserem Beispiel also eine Datenbank voller Tierfotos, in der jedem Foto zugeordnet ist, was für ein Tier darauf zu sehen ist. Dieser Prozess der Datenbeschriftung wird auch als Datenannotation bezeichnet.
Die Datenbank selbst kann ihre Daten aus allen möglichen Quellen beziehen. So können Personen angeheuert werden, um sie zu erstellen, Fotos können von Fotografen gekauft werden, das Internet kann mittels Scraping durchsucht werden, Literatur, Videos, Audiodateien oder ähnliches können verwendet werden. So nutzte Google ahnungslose Internetnutzer, um Trainingsdaten zu generieren. Jeder kennt das berüchtigte Raster aus neun zum Teil schwer erkennbaren Fotos. Meist verbunden mit der Aufforderung, alle Kacheln anzuklicken, die zum Beispiel einen Hydranten oder eine Ampel zeigen. Einige Fotos waren dem reCaptcha-Dienst von Google bekannt. Viele jedoch nicht. Der Nutzer klickte nun für Google fleißig alle Bildausschnitte an, die Hydranten zeigten und Google konnte sich bei entsprechend vielen Klicks auf die gleiche Kachel relativ sicher sein, dass tatsächlich ein Hydrant zu sehen war. Auf diese Weise konnte nicht nur ein Human Interactive Proof (kurz HIP) erbracht, sondern auch eine große Menge an Trainingsdaten für die KI generiert werden. Bei der Generierung von Trainingsdaten treten allerlei Urheberrechtsprobleme auf, die jedoch nicht KI-spezifisch sind, sondern die Bereiche Big Data und Datenbanken an sich betreffen.
b. Paradigmen
1. Supervised learning
Beim Anlernen eines Modells werden enorm große Mengen sogenannter Trainingsdaten benötigt. Diese Daten bestehen aus den Elementen, die den späteren Eingabedaten ähnlich sind, sowie den zu diesen Trainingsdaten gewünschten Ausgaben. Diese Trainingsdaten werden anschließend in das neuronale Netz gegeben und ein Output erzeugt. Ein Output ist dabei nie ein eindeutiges Ergebnis, sondern mehr eine Art Wahrscheinlichkeitsverteilung über alle möglichen Ergebnisse. Dieser Wahrscheinlichkeitsverteilung wird dann mit dem gewünschten Ergebnis abgeglichen. Ist die Wahrscheinlichkeit für das gewünschte Ergebnis zu gering, so werden die Weight- und Bias-Werte angepasst, bis das Ergebnis im gewünschten Rahmen liegt. Die erfolgt mehr oder minder durch Annähern und Ausprobieren. Dadurch dauert der Prozess sehr lange und erfordert große Rechenleistung.
Gesteuert wird dieser Prozess vom Trainingscode. Dieser unterscheidet sich etwas vom Inference Code, ist diesem aber sehr ähnlich. Der Trainingscode enthält dabei Optimierungstechniken für das Anlernen des Modells und auch ein Feedbacksystem. Der Inference Code enthält oft Komponenten, die die Ausgabe filtern oder interpretieren.
Supervised Learning eignet sich hervorragend für Aufgaben wie:
- Klassifizierung: Spam-Filterung, Bilderkennung, Sentimentanalyse
- Regression: Preisprognose, Wettervorhersage, Modellierung von Zeitreihen
Ablaufsbeispiel
Angenommen, das Ziel ist es, eine KI zu entwickeln, die Tiere auf Fotos erkennen kann. In diesem Fall würden die Trainingsdaten aus Tierfotos bestehen, von denen bekannt ist, welches Tier darauf zu sehen ist. Im nächsten Schritt werden die Bilder in das neuronale Netz eingespeist. Das könnte zum Beispiel das Foto eines Hundes sein. Das Netz spuckt nun als Ergebnis vielleicht 60 % Katze, 3 % Elefant, 26 % Maus und 11 % Hund aus. Also müssen wir das Netz anpassen. Das geschieht natürlich automatisch. Im nächsten Durchlauf erhalten wir für das gleiche Bild vielleicht schon 35% Hund. Wir nähern uns an. Das passiert mit vielen Bildern und unglaublich vielen Durchläufen immer und immer wieder, bis wir z.B. für das Beispielbild ein Ergebnis von 90% Hund erhalten. Das Netz erkennt nun also den Hund auf dem Foto recht zuverlässig.
Das Ganze muss auch mit allen anderen Tieren, die erkannt werden sollen, gut funktionieren. In der Praxis werden für solche Erkennungen oft mehrere spezialisierte neuronale Netze kombiniert. Eines erkennt vielleicht Fische sehr gut, ein anderes erkennt Haustiere. Ein drittes könnte zum Beispiel erkennen, ob das Netz Fische oder Haustiere besser erkennt. So kann ein ganzer Cluster von neuronalen Netzen notwendig sein, um am Ende zuverlässige Ergebnisse zu erzielen.
Große Datenmengen werden manuell oder automatisiert beschriftet. Beispielsweise Tierfotos mit der Tierbezeichnung.
2. self-supervised learning
Beim self-supervised learning werden ungelabelte Datensätze verwendet. Das Modell muss die Labels, also das Ausgabeziel, selbst finden. Die Vorteile liegen auf der Hand: Die Datenannotation entfällt und damit ein sehr großer Kosten- und Zeitfaktor.
Beispielsweise können einem Modell große Textmengen aus dem Internet als Daten zum Training zur Verfügung gestellt werden. Durch Ausblenden einzelner Textteile kann das Modell so trainiert werden, dass es die fehlenden Textteile selbstständig findet.
Der Nachteil dieses Verfahrens ist jedoch, dass eine Feinabstimmungsphase notwendig ist, in der das Modell lernt, genau eine Aufgabe zuverlässig zu erfüllen. Dabei wird das zuvor erworbene Wissen verfeinert und nutzbar gemacht.
Self-supervised learning wird insbesondere in folgenden Bereichen verwendet:
- Bildverarbeitung: Bildkategorisierung, Objektsegmentierung, Bildgenerierung
- Natürliche Sprachverarbeitung: Texterzeugung, maschinelle Übersetzung, Textzusammenfassung
- Zeitreihenanalyse: Anomalieerkennung, Vorhersage
3. reinforcement learning
Reinforcement Learning dürfte jedem bekannt sein, den erstklassigen Film „War Games“ gesehen hat. Das System lernt hierbei durch ein Belohnungssystem. Es wird vor Trainingsbeginn festgelegt, welches Ergebnis einer Entscheidung des Systems welche Punktzahl gibt.
Beispiel:
Ein neuronales Netz soll Schach spielen lernen. Hierzu würde das Netz ein Schachbrett bekommen, bei dem es regelgemäß die Figuren bewegen kann. Nun würde das Netz gegen einen Schachcomputer spielen. Dabei bekommt das Netz für jede Figur, die es schlägt, eine bestimmte Punktzahl. Zum Beispiel für jeden Bauern einen Punkt, für die Läufer drei Punkte und so weiter. Der König gibt dabei signifikant höhere Punkte als alle anderen Figuren. Umgekehrt werden dem Netz für verlorene Figuren Punkte abgezogen. Das Netz versucht dann, mit jedem Durchlauf seine Punktzahl zu steigern. Irgendwann wird das Netz „gelernt“ haben, möglichst effizient den Gegner Schachmatt zu setzen.
Reinforcement Learning findet Anwendung in Bereichen wie:
- Robotik: Steuerung von Robotern in dynamischen Umgebungen
- Spiele: Entwicklung von KI-Spielern, die komplexe Spielstrategien lernen
- Optimierung: Optimierung von Ressourcenallokation in komplexen Systemen
c. Beispiel
Der folgende Graph zeigt drei die Preise für die letzten drei Bestellungen von Bananen an. Du kannst mal probieren, eine möglichst exakte Gerade durch alle drei Punkte zu ziehen. Je näher die Linie allen drei Punkten ist, desto präziser die Vorhersage des Preises für mehr oder weniger Bananen. In der Realität würde der Graph einige weitere Dimensionen bekommen. Zum Beispiel der aktuelle Spritpreis, denn der beeinflusst die Transportkosten. Mit mehr Parametern wird es immer schwerer, manuell die perfekte Linie zu finden.
6. Vom Modell zum Text
Der Modellinput: Die Eingabe des Nutzers, zum Beispiel bei ChatGPT
Der Input wird durch den Eingabecode in das neuronale Netz gegeben.
Der Modelloutput: Wahrscheinlichkeiten für die nächsten Wörter oder Zeichen
Das Modell erzeugt als Ausgabe eine Wahrscheinlichkeitsverteilung über ein Array (eine Liste) von Wörtern oder Zeichen. Diese Wahrscheinlichkeiten spiegeln wider, wie wahrscheinlich es das Modell betrachtet, dass jedes Wort oder Zeichen das Nächstes in der Sequenz, also in der endgültigen Ausgabe, ist.
Auswahl des nächsten Wortes: Sampling und Greedy-Ansatz
Um das nächste Wort oder Zeichen endgültig zu bestimmen, kann man verschiedene Techniken verwenden. Eine verbreitete Methode ist das Sampling. Dabei wird zufällig ein Wert entsprechend der Wahrscheinlichkeitsverteilung erzeugt und das Wort oder Zeichen mit der zugehörigen Wahrscheinlichkeit ausgewählt. Dadurch wirkt die ausgegebene Sprache natürlicher, denn wir Menschen formulieren ebenfalls Sätze immer wieder anders, obwohl wir das Gleiche ausdrücken wollen.
Alternativ kann man den Greedy-Ansatz verwenden, der das Wort oder Zeichen mit der höchsten Wahrscheinlichkeit wählt und dabei weniger Zufall mit in die Ausgabe einbringt.
Erzeugung der Wahrscheinlichkeitsverteilung: Aktivierungen, Gewichtung, Verzerrung und Softmax
Die Wahrscheinlichkeitsverteilung entsteht aus den Aktivierungen der Neuronen im Modell, durch Gewichtung und Verzerrung, sowie durch Anwendung spezieller mathematischer Funktionen wie der Softmax-Funktion. Diese Operationen transformieren die Rohausgabe des Modells in eine gültige Wahrscheinlichkeitsverteilung, die für die Texterzeugung geeignet ist.
Diversifizierung durch Wahrscheinlichkeiten: Mehrere Möglichkeiten für den nächsten Schritt
Durch die Ausgabe von Wahrscheinlichkeiten über das Wortarray kann das Modell die generierten Texte flexibler gestalten und verschiedene Optionen für den nächsten Wortvorschlag berücksichtigen. Dies führt zu einer größeren Vielfalt und Natürlichkeit in den erzeugten Texten.
7. Kein Hokuspokus
Jetzt haben wir den Prozess bis zu einem angelernten neuronalen Netz kennengelernt. Einen Blick in die Blackbox kann übrigens jeder werfen, der Excel hat. Unter https://github.com/ianand/spreadsheets-are-all-you-need/releases kann eine Datei mit gut 1,25 Gigabyte Größe heruntergeladen werden. Diese Excel-Tabellen darin enthalten über 124 Millionen Parameter einer Vorgänger-KI von ChatGPT. Genau genommen eine Grundversion von GPT-2. Damit kann jeder nachvollziehen, dass KI eben doch kein Hokuspokus ist, sondern einfach nur IT.