Zeichnen: Auf dem Raster klicken und ziehen (Rechtsklick zum Löschen)

3D-Steuerung: • Linke Taste + ziehen = drehen • Rechte Taste + ziehen = verschieben • Scrollrad = zoomen

Touch-Steuerung
https://github.com/DFin/Neural-Network-Visualisation

MNIST-Ziffernklassifikation – Visualisierung der Inferenz

Interaktive Visualisierung eines neuronalen Netzes

Diese Anwendung zeigt ein kompaktes Multi-Layer-Perceptron (MLP), das auf MNIST trainiert wurde. Zeichnen Sie eine Ziffer und beobachten Sie, wie die Aktivierungen in Echtzeit durch alle vollvernetzten Schichten propagieren.

So funktioniert es:

  • Zeichnen: Im 2D-Raster (links oben) klicken und ziehen, um eine Ziffer zu skizzieren
  • Beobachten: Verfolgen Sie, wie Ihre Skizze durch die Schichten des Netzes im 3D-Raum wandert
  • Vorhersage: Prüfen Sie die Wahrscheinlichkeit für jede Ziffer (0–9) im Diagramm (rechts oben)

Netzarchitektur (Standardexport):

  • Eingabeschicht: 28×28 Pixelraster (Ihre Zeichnung)
  • Dichtes Layer 1: 784 → 64 Neuronen mit ReLU
  • Dichtes Layer 2: 64 → 32 Neuronen mit ReLU
  • Ausgabeschicht: 32 → 10 Logits → Softmax-Wahrscheinlichkeiten

3D-Steuerung:

  • Drehen: Linke Maustaste gedrückt halten und ziehen
  • Verschieben: Rechte Maustaste gedrückt halten und ziehen
  • Zoomen: Mausrad benutzen

Farbkodierung:

  • Knoten: Die Farbe zeigt die Aktivierungsstärke (dunkle Blautöne für niedrige/negative Werte, kräftige Korallenfarben für starke positive Aktivierungen)
  • Verbindungen: Warme Farben kennzeichnen starke positive Beiträge, kühle Töne negative Einflüsse, gedämpfte Linien nahezu Null.

Eigenes Modell trainieren:

  • python training/mlp_train.py starten, um das MLP zu trainieren (inkl. Apple-Metal-Beschleunigung, falls verfügbar).
  • Das Skript schreibt exports/mlp_weights.json, das der Visualisierer beim Laden einliest.
  • Anzahl versteckter Neuronen, Epochen oder Exportpfade über die in training/mlp_train.py dokumentierten CLI-Optionen verändern.

Echtzeitfunktionen:

  • Schichtaktivierungen: Instanzen von Kugeln zeigen Aktivierungen pro Neuron mit farbcodierter Stärke.
  • Wichtige Verbindungen: Jedes Zielneuron hebt seine stärksten Eingangsgewichte für bessere Lesbarkeit hervor.
  • Live-Wahrscheinlichkeiten: Das Balkendiagramm aktualisiert die Logits → Softmax-Werte in Echtzeit.

Das Netzwerk ist bewusst kompakt gehalten, um eine flüssige Echtzeitdarstellung zu gewährleisten. Sie können gern mit anderen Schichtgrößen neu trainieren – halten Sie die Architektur nur schlank, damit die 3D-Ansicht reaktionsschnell bleibt.