Neuronales Netz
Die Grundlage aller heutigen KI-Modelle: viele einfache Recheneinheiten, in Schichten verbunden, die aus Beispielen lernen statt programmiert zu werden.
Ein neuronales Netz ist eine Funktion, die aus vielen kleinen Bausteinen zusammengesetzt ist, den künstlichen Neuronen. Jedes Neuron rechnet nur: Eingaben gewichten, aufsummieren, durch eine einfache Kurve schicken. Viele davon in Schichten hintereinander können aber erstaunlich komplizierte Zusammenhänge abbilden.
Die Gewichte – die Parameter – werden nicht programmiert, sondern gelernt: Man zeigt dem Netz Beispiele, misst den Fehler und stellt alle Gewichte ein kleines Stück besser ein. Tausendfach, millionenfach. Ein Sprachmodell ist nichts anderes als ein sehr großes neuronales Netz.
Das künstliche Neuron
Das Vorbild ist die Nervenzelle: Sie empfängt Signale von anderen Zellen, und wenn genug zusammenkommt, „feuert“ sie. Das künstliche Neuron ist davon allerdings nur sehr lose inspiriert. Mathematisch macht es drei Dinge:
y = f( w₁·x₁ + w₂·x₂ + w₃·x₃ + b )Die Funktion f heißt Aktivierungsfunktion. Typische Kandidaten sind tanh (S-Kurve zwischen −1 und 1), die Sigmoid-Funktion (zwischen 0 und 1) oder ReLU (negativ wird 0, positiv bleibt, wie es ist).
Schichten
Allein kann ein Neuron wenig. Stark wird es im Verbund: Viele Neuronen bilden eine Schicht, und die Ausgaben einer Schicht sind die Eingaben der nächsten.
Ein Netz mit vielen verborgenen Schichten nennt man tief – daher der Begriff Deep Learning. Die Intuition: Frühe Schichten erkennen einfache Muster, spätere kombinieren sie zu komplexeren. In einem Bilderkennungsnetz etwa erst Kanten, dann Formen, dann Gesichter.
Warum die Kurve so wichtig ist
Ohne Aktivierungsfunktion wäre jede Schicht nur eine Matrixmultiplikation. Und mehrere Matrixmultiplikationen hintereinander ergeben – wieder eine Matrixmultiplikation. Hundert Schichten wären dann nicht mächtiger als eine. Das Netz könnte nur gerade Linien ziehen.
Ohne Kurve: nur gerade Trennlinien
Mit Kurve: beliebige Formen
Erst die nichtlineare Kurve nach jedem Neuron macht ein Netz wirklich mächtig. Man kann sogar beweisen: Schon eine einzige ausreichend breite verborgene Schicht kann jede vernünftige Funktion beliebig genau annähern. Tiefe Netze schaffen das in der Praxis aber mit viel weniger Neuronen.
Ein Netz lernt – live
Hier trainiert ein echtes, winziges neuronales Netz direkt in deinem Browser. Es soll lernen, blaue und orange Punkte zu trennen. Die Hintergrundfarbe zeigt, was das Netz an jeder Stelle vorhersagen würde. Probier den Kreis erst ohne verborgene Neuronen – und dann mit vier:
Was man dabei beobachten kann: Ohne verborgene Neuronen bleibt die Grenze eine gerade Linie – bei „Getrennt“ reicht das, beim Kreis und bei XOR nie. Mit verborgenen Neuronen biegt sich die Grenze, bis sie passt. Und niemand hat dem Netz gesagt, dass es einen Kreis suchen soll.
Wie Lernen funktioniert
Das Training läuft in einer Schleife, die bei dem Mini-Netz oben genauso aussieht wie bei einem Sprachmodell:
Vorhersagen
Ein Beispiel durchs Netz schicken – der Vorwärtsdurchlauf.
Fehler messen
Vergleichen mit der richtigen Antwort. Eine Verlustfunktion macht daraus eine einzige Zahl.
Rückwärts verteilen
Für jedes Gewicht ausrechnen, wie viel es zum Fehler beigetragen hat – und es ein Stück in die bessere Richtung schieben.
Schritt 3 heißt Backpropagation (Fehlerrückführung). Mit der Kettenregel aus der Analysis wird der Fehler von hinten nach vorn durchs Netz gereicht: Die Ausgabeschicht erfährt, wie falsch sie lag; daraus lässt sich berechnen, wie falsch die Schicht davor lag; und so weiter. Am Ende kennt jedes Gewicht seine Richtung. Das Verschieben selbst heißt Gradientenabstieg – im Eintrag Parameter als Wanderer im Nebel gezeichnet.
Vom Mini-Netz zum Sprachmodell
Das Prinzip bleibt gleich, nur die Größenordnungen ändern sich gewaltig:
| Mini-Netz oben | Großes Sprachmodell | |
|---|---|---|
| Eingabe | 2 Zahlen (x, y) | Tausende Zahlen pro Token, für Tausende Tokens |
| Schichten | 1 verborgene | Dutzende bis über hundert Blöcke |
| Parameter | bis 33 | Milliarden bis Hunderte Milliarden |
| Aufgabe | blau oder orange? | welches Token kommt als Nächstes? |
| Training | Sekunden im Browser | Wochen bis Monate auf Tausenden Spezialchips |
Dazu kommt eine besondere Bauweise, der Transformer, mit der Aufmerksamkeit als zentralem Baustein. Im Kern stecken aber auch dort Neuronen mit Gewichten und Aktivierungsfunktionen – im sogenannten Feedforward-Teil jedes Blocks fast genau so wie oben.
Kurze Geschichte
Die Ideen sind also alt. Was sich geändert hat, sind vor allem Datenmengen und Rechenleistung – und damit, wie groß man Netze tatsächlich trainieren kann.
Für Entwickler übersetzt
| Begriff | Entspricht ungefähr |
|---|---|
| Neuron | eine Methode: Skalarprodukt plus Bias, dann Math.tanh() |
| Schicht | eine Matrixmultiplikation W · x + b, danach die Aktivierung elementweise |
| Netz | Funktionskomposition: ausgabe(schicht2(schicht1(x))) |
| Training | eine Schleife, die die Gewichts-Arrays so lange anpasst, bis die Testfälle möglichst gut stimmen |
| Backpropagation | automatisches Ableiten über den Aufrufbaum – wie ein Stacktrace, nur für „wer ist schuld am Fehler“ |
| Trainingsdaten | die Testfälle – mit dem Unterschied, dass hier der Code aus den Tests entsteht, nicht umgekehrt |
// Ein Neuron, und ein einziger Lernschritt dafür (Sigmoid, Kreuzentropie)
double[] w = {0.1, -0.2}; double b = 0;
double vorhersage(double[] x) {
double z = w[0]*x[0] + w[1]*x[1] + b;
return 1 / (1 + Math.exp(-z)); // zwischen 0 und 1
}
void lerne(double[] x, double soll, double lernrate) {
double fehler = vorhersage(x) - soll; // Ableitung des Verlusts nach z
w[0] -= lernrate * fehler * x[0]; // jedes Gewicht in seine Richtung
w[1] -= lernrate * fehler * x[1];
b -= lernrate * fehler;
}
// Tausendfach mit allen Beispielen aufrufen – das ist Training.