StartseiteKI & Maschinelles LernenNeuronales Netzwerk-Training

🤖 Neuronales Netzwerk-Training

Trainieren Sie ein 2-schichtiges neuronales Netzwerk an einem 2D-Klassifikationsproblem und visualisieren Sie die Verlustlandschaft. Beobachten Sie, wie der Gradientenabstieg die Oberfläche durchquert, vergleichen Sie SGD mit Adam, und sehen Sie, wie die Entscheidungsgrenze entsteht.

KI & Maschinelles Lernen3DEinfach60 FPS
neural-network-training ↗ Eigenständig öffnen

Über diese Simulation

Diese Simulation trainiert ein kleines Feedforward-neuronales-Netzwerk — zwei versteckte Schichten über einer 2D-Eingabe — an einem binären Klassifikationsproblem vollständig in Ihrem Browser, sodass Sie beobachten können, wie Backpropagation und Gradientenabstieg die Entscheidungsgrenze in Echtzeit umformen. Wählen Sie einen Datensatz, wählen Sie einen Optimierer, und drücken Sie Trainieren, um zu sehen, wie das Netzwerk eine Region für jede Klasse herausarbeitet, während die Verlustkurve sowohl Trainings- als auch Validierungsfehler verfolgt.

🔬 Was es zeigt

Jeder Trainingsschritt entnimmt einen Mini-Batch, führt ihn durch zwei ReLU-versteckte Schichten und eine Sigmoid-Ausgabe, berechnet den binären Kreuzentropie-Verlust L = −Σ[y·log ŷ + (1−y)·log(1−ŷ)] und propagiert den Gradienten zurück, um jedes Gewicht zu aktualisieren. Die linke Leinwand färbt jedes Pixel des Eingaberaums blau oder rot basierend auf der Live-Vorhersage des Netzwerks, sodass die sich entwickelnde Entscheidungsgrenze Pixel für Pixel sichtbar ist, während die rechte Leinwand den Trainingsverlust (blau) gegen den Validierungsverlust (rot) aufträgt, sodass Sie Overfitting erkennen können, sobald die beiden Kurven auseinanderlaufen.

🎮 Verwendung

Wählen Sie einen Datensatz (XOR, Circles, Moons oder Spiral), um die Form zu ändern, die das Netzwerk trennen lernen muss, und passen Sie versteckte Einheiten pro Schicht, Lernrate η, Batch-Größe und L2-Regularisierung λ an, bevor Sie Trainieren drücken. Wechseln Sie den Optimierer zwischen SGD, Momentum und Adam, um Konvergenzgeschwindigkeit und Stabilität zu vergleichen — Adam verwendet bias-korrigierte Schätzungen des ersten und zweiten Moments (m̂ und v̂) und konvergiert typischerweise am schnellsten, während einfaches SGD am empfindlichsten auf den Lernraten-Schieberegler reagiert.

💡 Wussten Sie schon?

Das XOR-Problem wurde 1969 berühmt von Minsky und Papert verwendet, um zu zeigen, dass ein einschichtiges Perzeptron nicht linear trennbare Daten nicht trennen kann — es bedurfte der Wiederentdeckung von Backpropagation und versteckten Schichten in den 1980er Jahren, um es zu lösen, weshalb XOR die kleinstmögliche Demonstration dafür bleibt, dass Tiefe (zusätzliche versteckte Schichten) tatsächlich verändert, was ein Netzwerk darstellen kann, nicht nur wie gut es sich anpasst.

Häufig gestellte Fragen

Warum kann ein einfaches Netzwerk den XOR-Datensatz ohne versteckte Schichten nicht lösen?

XOR kennzeichnet einen Punkt mit 1, wenn genau eine seiner beiden Koordinaten positiv ist, was nicht linear trennbar ist — keine einzelne gerade Linie kann die vier XOR-Quadranten korrekt teilen. Das Netzwerk dieser Simulation verwendet zwei ReLU-versteckte Schichten genau deshalb, weil sie es ihm ermöglichen, mehrere gerade Entscheidungsgrenzen zu einer echt gekrümmten, nichtlinearen Grenze zu kombinieren, was die minimale Architektur ist, die überhaupt in der Lage ist, XOR zu lösen.

Was ist der Unterschied zwischen SGD, Momentum und Adam in dieser Simulation?

Einfaches SGD aktualisiert jedes Gewicht um die Lernrate mal seinen rohen Gradienten, hier in der Funktion applyOpt als lr * grad berechnet. Momentum akkumuliert stattdessen einen exponentiellen gleitenden Durchschnitt vergangener Gradienten (0,9 mal das vorherige Momentum plus 0,1 mal den neuen Gradienten), bevor mit der Lernrate skaliert wird, was verrauschte Aktualisierungen glättet. Adam geht weiter und verfolgt sowohl eine Schätzung des ersten Moments m als auch eine Schätzung des zweiten Moments v mit Bias-Korrektur, teilt dann den Effekt der Lernrate durch die Quadratwurzel von v — dies passt die effektive Schrittgröße pro Parameter an und konvergiert von den dreien üblicherweise am schnellsten.

Wie kann ich an der Verlustkurve erkennen, dass das Modell überanpasst (Overfitting)?

Die rechte Leinwand zeichnet den Trainingsverlust in Blau und den Validierungsverlust in Rot auf denselben Achsen, neu berechnet alle 10 Epochen aus dem zurückgehaltenen 20%-Validierungssplit, der in makeDataset erstellt wird. Overfitting ist in dem Moment sichtbar, in dem der blaue Trainingsverlust weiter sinkt, während der rote Validierungsverlust sich abflacht oder ansteigt — das Netzwerk passt sich an Eigenheiten des Trainings-Batches an statt an das zugrundeliegende Muster, und eine Erhöhung der L2-Regularisierung λ oder eine Reduzierung der versteckten Einheiten pro Schicht sind die beiden Steuerelemente, die dem am direktesten entgegenwirken.

Was ändert der L2-Regularisierungs-Schieberegler eigentlich?

Die Stärke der L2-Regularisierung λ wird in trainStep als lambda * row[j] zum Gradienten jedes Gewichts hinzugefügt, bevor die Optimierer-Aktualisierung erfolgt, was mathematisch gleichbedeutend damit ist, jedes Gewicht bei jedem Schritt leicht in Richtung Null zu schrumpfen (Weight Decay). Größere λ-Werte halten die Gewichte des Netzwerks klein und seine Entscheidungsgrenze glatter, was bei verrauschten Datensätzen wie Moons und Circles hilft, aber verhindern kann, dass das Netzwerk eine wirklich komplizierte Grenze wie bei Spiral anpasst, wenn er zu hoch eingestellt ist.

Warum benötigt der Spiral-Datensatz mehr versteckte Einheiten als Circles oder Moons?

Die Spiral-Voreinstellung verschachtelt zwei Klassen entlang ineinander verschlungener Spiralarme, die sich mehrfach um den Ursprung winden, was eine Entscheidungsgrenze mit weit mehr Krümmung und Windungen erfordert als die einfachen Ring- (Circles) oder Halbmondformen (Moons). Mit nur 16 versteckten Einheiten pro Schicht kann das Netzwerk Schwierigkeiten haben, jede Spiralwindung darzustellen; eine Erhöhung der versteckten Einheiten gibt den ReLU-Schichten genug unabhängige lineare Stücke, um die engen, wiederholten Kurven der Grenze anzunähern.

⚙ Unter der Haube

Beobachten Sie, wie Backpropagation ein kleines Feedforward-Netzwerk in Echtzeit trainiert — sehen Sie, wie sich Gewichte und Verlust Epoche für Epoche entwickeln.

Neuronales NetzwerkBackpropagationTrainingDeep Learning

3D · Three.js / WebGL-Renderer · 60 FPS Ziel · läuft vollständig clientseitig, keine Installation nötig

Was haben Sie gefunden?

Reproduktionsschritte hinzufügen (optional)