Zum Inhalt springen
labkompass

Guides · Neuromorphic Computing

Wie rechnet ein Netz mit Impulsen? Spiking Neural Networks erklärt

Was ein Spike-Neuron ist, wie das Leaky-Integrate-and-Fire-Modell funktioniert, wie SNNs Information kodieren und trainiert werden — mit kleinem Python-Beispiel.

Von Niclas Hennrich · Veröffentlicht: · 10 Min. Lesezeit

Reality Check

Stand: September 2026

Belegt
12 Aussagen
Theorie
1 Aussage

8 Quellen · Was die Stufen bedeuten


Kurz gesagt: Ein Spiking Neural Network (SNN) ist ein neuronales Netz, dessen Neuronen kurze Impulse statt Zahlen austauschen. Jedes Neuron sammelt eingehende Impulse in einem inneren Zustand, der von selbst wieder abfließt, und feuert erst, wenn eine Schwelle erreicht ist. Das Modell dahinter passt in eine Zeile Mathematik und rund 20 Zeilen Python. Schwierig wird es beim Training — und bei der Frage, ob sich der Aufwand gegenüber klassischen Netzen lohnt.

Wer mit lokalen Sprachmodellen arbeitet, kennt neuronale Netze als riesige Stapel von Matrixmultiplikationen: Zahlen rein, Zahlen raus, bei jedem Durchlauf alles. SNNs funktionieren anders, und genau deshalb laufen sie auf den neuromorphen Chips, die im Artikel Neuromorphic Computing: Was Computer vom Gehirn lernen vorgestellt werden. Dort geht es um die Hardware. Hier geht es um das Netz selbst: Was rechnet ein einzelnes Spike-Neuron, wie steckt Information in Impulsen, und wie bringt man so einem Netz etwas bei?

Was ein Spike ist #

Biologische Nervenzellen halten über ihrer Membran eine elektrische Spannung. Kommen genug Signale von anderen Zellen an, kippt diese Spannung kurz: Ein Impuls läuft die Nervenfaser entlang, das Aktionspotenzial oder eben der Spike. Danach beruhigt sich die Zelle wieder. Warum dieses Prinzip so sparsam ist und was jeder Spike an Energie kostet, steht im Artikel Warum braucht das Gehirn nur rund 20 Watt?.

Für die Informatik ist an einem Spike vor allem eines wichtig: Er ist ein Alles-oder-nichts-Ereignis. Seine Form trägt kaum Information, entscheidend sind nur zwei Dinge — ob ein Neuron feuert und wann. Ein SNN übernimmt genau diese Abstraktion und lässt die gesamte Biochemie weg.

Das Leaky-Integrate-and-Fire-Neuron #

Das bekannteste Modell für ein spikendes Neuron trägt seine Funktionsweise im Namen: leaky (undicht), integrate (aufsummieren), fire (feuern). Als Bild eignet sich ein Eimer mit einem kleinen Loch im Boden. Eingehende Impulse gießen Wasser hinein, durch das Loch läuft ständig etwas ab. Erreicht der Wasserstand eine Markierung, wird der Eimer ausgekippt — das Neuron feuert — und das Spiel beginnt von vorn.

Als Formel sieht das so aus:

τ_m · du/dt = −(u − u_rest) + R · I(t)

Dabei ist u das Membranpotenzial, u_rest das Ruhepotenzial, I(t) der Eingangsstrom, R der Widerstand der Membran und τ_m = R · C die Membran-Zeitkonstante. Erreicht u die Schwelle ϑ, erzeugt das Modell einen Spike und setzt das Potenzial sofort auf einen Wert unterhalb der Schwelle zurückBelegt. So steht es im frei lesbaren Lehrbuch „Neuronal Dynamics“ von Gerstner und Kollegen an der EPFL, das sich für den Einstieg in die Modelle gut eignet.

Die Formel liest sich einfacher, als sie aussieht:

  • −(u − u_rest) ist das Loch im Eimer. Liegt das Potenzial über dem Ruhewert, zieht dieser Term es zurück. Je höher der Stand, desto schneller fließt es ab.
  • R · I(t) ist das Wasser, das hineinläuft: die Summe der Eingänge, gewichtet mit den Synapsenstärken der vorgeschalteten Neuronen.
  • τ_m bestimmt das Tempo. Eine große Zeitkonstante heißt: Das Neuron „erinnert“ sich länger an frühere Eingänge, bevor sie verpuffen.

Im Unterschied zu einem Neuron in einem klassischen Netz hat das LIF-Neuron damit ein Gedächtnis für die jüngste Vergangenheit. Zwei schwache Impulse kurz hintereinander können es zum Feuern bringen, dieselben zwei Impulse im Abstand von einer Sekunde nicht. Zeit ist Teil der Rechnung.

Ein LIF-Neuron in rund 20 Zeilen Python #

Das folgende Beispiel ist reines Python ohne Zusatzpakete. Es simuliert ein einzelnes LIF-Neuron eine Sekunde lang in Schritten von einer Millisekunde und gibt ihm einen konstanten Eingang in vier Stärken. R ist der Einfachheit halber auf 1 gesetzt; Eingang, Schwelle und Potenzial sind dimensionslose Beispielzahlen, keine biologischen Messwerte.

# Leaky-Integrate-and-Fire-Neuron, Zeitschritt für Zeitschritt (Euler-Verfahren)
tau = 20.0        # Membran-Zeitkonstante in ms
u_rest = 0.0      # Ruhepotenzial (hier einfach 0)
theta = 1.0       # Schwelle: ab hier feuert das Neuron
u_reset = 0.0     # nach dem Spike zurück auf diesen Wert
dt = 1.0          # Zeitschritt in ms
T = 1000          # simulierte Dauer: 1000 ms = 1 Sekunde
 
def simuliere(eingang):
    u = u_rest
    spikes = []
    for t in range(T):
        u += dt / tau * (-(u - u_rest) + eingang)   # auslaufen + aufladen
        if u >= theta:                             # Schwelle erreicht?
            spikes.append(t)
            u = u_reset                            # feuern und zurücksetzen
    return spikes
 
for eingang in [0.9, 1.1, 1.5, 3.0]:
    s = simuliere(eingang)
    erste = s[0] if s else "-"
    print(f"Eingang {eingang}: {len(s)} Spikes pro Sekunde, erster Spike bei {erste} ms")

Die Ausgabe bei einem Lauf mit Python 3:

Eingang 0.9: 0 Spikes pro Sekunde, erster Spike bei - ms
Eingang 1.1: 21 Spikes pro Sekunde, erster Spike bei 46 ms
Eingang 1.5: 45 Spikes pro Sekunde, erster Spike bei 21 ms
Eingang 3.0: 125 Spikes pro Sekunde, erster Spike bei 7 ms

Die Zahlen sind eine Illustration des Modells mit frei gewählten Parametern, keine Messung. Aber sie zeigen drei Eigenschaften, auf die es ankommt:

  1. Unter einer Mindeststärke passiert nichts. Bei 0,9 pendelt sich das Potenzial knapp unter der Schwelle ein, weil das Loch im Eimer genauso viel abfließen lässt, wie hineinläuft. Das Neuron schweigt — und verbraucht auf passender Hardware entsprechend wenig.
  2. Stärkerer Eingang, mehr Spikes. Von 1,1 bis 3,0 steigt die Zahl der Impulse pro Sekunde deutlich an.
  3. Stärkerer Eingang, früherer erster Spike. Der erste Impuls kommt bei 3,0 schon nach wenigen Millisekunden, bei 1,1 erst nach über 40.

Punkt 2 und 3 sind die beiden Grundideen, wie man in Impulsen Information unterbringen kann.

Wie Information in Spikes steckt #

Ein klassisches Netz reicht eine Zahl wie 0,73 einfach weiter. Ein SNN muss sie in ein Muster aus Impulsen übersetzen. Zwei Familien von Verfahren stehen sich gegenüber:

Ratenkodierung: Die Information steckt in der Häufigkeit. Ein heller Pixel lässt ein Neuron oft feuern, ein dunkler selten. In snnTorch wird dazu jeder auf 0 bis 1 normierte Eingangswert als Wahrscheinlichkeit genutzt, dass in einem Zeitschritt ein Spike auftrittBelegt. Das ist robust und einfach, braucht aber viele Impulse und etwas Zeit, bevor sich eine Rate überhaupt ablesen lässt.

Zeitkodierung: Die Information steckt im Zeitpunkt. Bei der Latenzkodierung feuert ein starker Eingang früh, ein schwacher spät, und jedes Neuron höchstens einmal. Die snnTorch-Dokumentation nennt Sparsamkeit als wichtigsten Vorteil gegenüber der Ratenkodierung, weil jedes Neuron höchstens einmal feuertBelegt. Daneben gibt es Delta-Verfahren, die nur Änderungen des Eingangs in Spikes übersetzen — ähnlich wie eine Ereigniskamera, die nur Pixel meldet, deren Helligkeit sich ändert.

Welcher Code im Gehirn tatsächlich verwendet wird, ist eine alte Streitfrage der Neurowissenschaft. Ein Argument gegen reine Ratenkodierung ist das Tempo: Eine Fliege kann innerhalb von 30 bis 40 Millisekunden auf einen neuen Reiz reagieren und die Flugrichtung ändern — zu kurz, um viele Spikes zu mitteln. Zugleich ist die Grenze zwischen Spike-Code und Feuerrate nicht immer so scharf, wie sie zunächst scheintBelegt. Für technische SNNs heißt das: Beide Varianten sind legitim, und die Wahl ist eine Abwägung zwischen Robustheit, Latenz und Zahl der Impulse.

Wie man ein SNN trainiert #

Ein einzelnes LIF-Neuron ist schnell geschrieben. Ein Netz aus Tausenden davon, das Ziffern erkennt oder Sensorsignale klassifiziert, muss seine Gewichte lernen. Hier liegt das Kernproblem.

Das Problem: Stufen haben keine brauchbare Ableitung #

Moderne KI lernt mit Backpropagation: Man berechnet, wie stark jedes Gewicht zum Fehler beigetragen hat, und schiebt es ein Stück in die Gegenrichtung. Dafür muss man jede Rechenstufe ableiten können. Die Spike-Funktion eines LIF-Neurons ist aber eine Stufenfunktion der Membranspannung. Ihre Ableitung ist überall null, außer genau an der Schwelle, wo sie nicht definiert ist. Dieses Alles-oder-nichts-Verhalten verhindert, dass Gradienten durch das Netz „fließen“Belegt. Ohne Gradient weiß das Training nicht, in welche Richtung es ein Gewicht verändern soll.

Zwei Umwege haben sich etabliert.

Weg 1: Klassisch trainieren, dann umwandeln #

Die pragmatische Idee: Man trainiert ein gewöhnliches Netz mit allen bewährten Werkzeugen und übersetzt es anschließend in ein SNN. Das funktioniert, weil sich die Feuerrate eines LIF-Neurons ähnlich verhält wie die ReLU-Aktivierung klassischer Netze — im Python-Beispiel oben sieht man das: kein Spike unter einer Schwelle, darüber mehr Spikes bei mehr Eingang.

Eine Arbeit von Forschenden der Universität und der ETH Zürich zeigte 2017, dass sich auch große Bildklassifikatoren wie VGG-16 und Inception-V3 auf diese Weise umwandeln lassen. Beim umgewandelten Inception-V3 stieg die Top-1-Fehlerrate auf ImageNet von 23,88 auf 25,40 Prozent, gemessen auf einer Teilmenge von 1.382 Testbildern; jedes Bild wurde dem spikenden Netz dafür 550 Zeitschritte lang gezeigtBelegt.

Die Schattenseite steht im selben Paper: Bei kleineren Netzen sparte das SNN Rechenoperationen — mehr als die Hälfte gegenüber dem Original, bei einigen Prozentpunkten mehr Fehler. Bei den sehr großen Netzen wie VGG-16 und Inception-V3 blieb diese Ersparnis aus, weil jede zusätzliche Schicht eine weitere Stufe ist, auf der genaue Zahlenwerte durch Spikes angenähert werden müssenBelegt. Umgewandelte Netze brauchen also viele Zeitschritte, bis sich die Raten eingependelt haben, und nutzen die zeitliche Dynamik der Neuronen kaum aus.

Weg 2: Surrogate-Gradienten #

Der zweite Weg trainiert das SNN direkt. Der Trick ist fast frech einfach: Im Vorwärtsdurchlauf feuert das Neuron wie gehabt mit der harten Stufe. Nur beim Rückwärtsrechnen tut man so, als wäre die Stufe eine sanfte Rampe. Typischerweise wird ein Standardverfahren wie Backpropagation through Time verwendet und jedes Vorkommen der Ableitung der Spike-Funktion durch die Ableitung einer glatten Funktion ersetzt; in Frameworks mit automatischer Differenzierung ist das unkompliziert umzusetzenBelegt. Backpropagation through Time heißt: Das Netz wird über alle Zeitschritte „ausgerollt“, als wäre jeder Zeitschritt eine eigene Schicht, und der Fehler läuft durch diese Kette zurück.

Welche glatte Ersatzfunktion man wählt, ist erstaunlich unkritisch — die Übersicht von Neftci, Mostafa und Zenke stellt fest, dass sehr unterschiedliche Varianten funktioniert haben, alle steigen monoton zur Schwelle hin an. Ein systematischer Vergleich stand zum Zeitpunkt der Übersicht noch aus.

Der Vorteil gegenüber der Umwandlung: Das Netz kann lernen, Zeitpunkte und wenige Spikes gezielt zu nutzen, statt klassische Zahlenwerte mühsam über Raten nachzubilden. Der Preis: Backpropagation through Time kann viel Rechenzeit, Speicher und Kommunikation kosten; in einem Beispiel aus der Übersicht war die Größe der trainierten SNNs durch den GPU-Speicher begrenztBelegt.

Software zum Ausprobieren #

Für SNNs braucht man keine Spezialhardware. Drei verbreitete Open-Source-Werkzeuge decken unterschiedliche Zwecke ab:

WerkzeugZweckStärke
snnTorchSNNs mit Gradienten trainierenbaut auf PyTorch auf, nutzt GPUs
Brian 2Neuronenmodelle flexibel beschreibenGleichungen in mathematischer Schreibweise
NESTgroße Netze simulierenFokus auf Netzwerke statt einzelner Zellen
  • snnTorch ist ein Python-Paket für gradientenbasiertes Lernen mit spikenden Netzen, das PyTorch erweitert und dessen GPU-beschleunigte Tensorrechnung nutztBelegt. Wer PyTorch kennt, findet sich schnell zurecht; die Tutorials behandeln auch die Kodierungen von oben.
  • Brian ist ein freier Open-Source-Simulator für spikende Netze in Python; Modelle werden als Gleichungen in üblicher mathematischer Notation geschrieben und von Brian in optimierten Code übersetztBelegt. Die LIF-Formel von oben lässt sich dort fast wörtlich eintragen.
  • NEST wird in der Computational Neuroscience eingesetzt, um das Verhalten großer Neuronennetze zu modellieren und zu untersuchenBelegt. Es ist eher ein Werkzeug der Hirnforschung als des Machine Learning.

Grob gesagt: Wer ein Netz auf eine Aufgabe trainieren will, landet bei snnTorch. Wer verstehen will, wie sich Neuronen verhalten, bei Brian 2. Wer große, biologisch inspirierte Netze simulieren will, bei NEST.

Eine Verwandtschaft ist noch erwähnenswert: Die Liquid State Machine ist ein Reservoir aus spikenden Neuronen, bei dem nur die Ausleseschicht trainiert wird — und damit ein dritter Weg, das Trainingsproblem zu umgehen. Mehr dazu im Artikel Was ist Reservoir Computing?.

Wo die Grenzen liegen #

Genauigkeit. Dass SNNs bei gleicher Aufgabe grundsätzlich genauer wären als klassische Netze, ist nicht gezeigtEvidenz: Theorie. Die Umwandlungsergebnisse oben zeigen eher das Gegenteil: Das spikende Netz liegt gleichauf oder etwas dahinter. Das Versprechen von SNNs ist nicht Genauigkeit, sondern weniger Arbeit, wenn wenig passiert.

Effizienz nur auf passender Hardware. Auf einer CPU oder GPU simuliert, ist ein SNN meist teurer als ein vergleichbares klassisches Netz: Statt eines Durchlaufs rechnet man Hunderte Zeitschritte. Sparsam wird das Prinzip erst auf ereignisgesteuerter Hardware, die nur bei Spikes arbeitet. Wie viel davon auf echten neuromorphen Chips ankommt, ordnet der oben verlinkte Artikel zu Neuromorphic Computing ein — mit dem wichtigen Befund, dass klassische Deep-Learning-Netze dort wenig gewinnen.

Ökosystem. Verglichen mit dem, was es rund um PyTorch und fertige Modelle für klassische Netze gibt, ist die SNN-Welt klein. Es gibt keine Modell-Bibliothek, aus der man sich ein fertiges großes SNN einfach herunterlädt.

Reality Check (Stand: September 2026) #

  • Belegt: Das LIF-Modell ist ein etabliertes Lehrbuchmodell. Surrogate-Gradienten erlauben es, SNNs mit Backpropagation through Time zu trainieren, und trainierte klassische Netze lassen sich in SNNs umwandeln — bei großen Bildnetzen mit etwas höherer Fehlerrate und ohne Ersparnis an Rechenoperationen in der untersuchten Arbeit.
  • Belegt, aber offen: Welcher Code (Rate oder Zeitpunkt) im Gehirn wirklich genutzt wird, ist nicht entschieden; technisch sind beide nutzbar.
  • Theorie: Dass SNNs klassische Netze bei Genauigkeit übertreffen, ist nicht gezeigt. Ihr möglicher Vorteil liegt bei Energie und Latenz — und der hängt an der Hardware, die im Artikel zu neuromorphen Chips eingeordnet ist.

Was heißt das fürs eigene Homelab? #

Für den Betrieb: noch nichts. Kein lokales Sprachmodell läuft als SNN, und auf gewöhnlicher Hardware bringt ein spikendes Netz keinen Stromspareffekt. Wer lokale KI betreibt, bleibt bei den bekannten Werkzeugen — eine Einordnung der Hardwarefragen gibt der Überblick Was kommt nach CPU und GPU?.

Zum Verstehen dagegen eine ganze Menge. Das Python-Beispiel oben läuft auf jedem Rechner, auf dem NumPy installiert ist, auch in einem kleinen Container auf dem Homeserver. Wer mit Zeitkonstante, Schwelle und Eingangsstärke spielt, versteht in einer halben Stunde mehr über SNNs als durch jeden Überblicksartikel. Der nächste Schritt sind die snnTorch-Tutorials, die vom einzelnen Neuron bis zum trainierten Netz führen.

Quellen

  1. Universität / Institut

    Neuronal Dynamics, Kapitel 1.3: Integrate-And-Fire Models (externer Link, neues Fenster) — Gerstner, Kistler, Naud, Paninski (EPFL)

  2. Universität / Institut

    Neuronal Dynamics, Kapitel 7.6: The Problem of Neural Coding (externer Link, neues Fenster) — Gerstner, Kistler, Naud, Paninski (EPFL)

  3. Originalpaper · 2019

    Surrogate Gradient Learning in Spiking Neural Networks (externer Link, neues Fenster) — Neftci, Mostafa, Zenke

  4. Originalpaper · 2017

    Conversion of Continuous-Valued Deep Networks to Efficient Event-Driven Networks for Image Classification (externer Link, neues Fenster) — Rueckauer, Lungu, Hu, Pfeiffer, Liu

  5. Offizielle Dokumentation

    snnTorch Tutorial 1: Spike Encoding (externer Link, neues Fenster) — snnTorch

  6. Offizielle Dokumentation

    snnTorch Documentation (externer Link, neues Fenster) — snnTorch

  7. Offizielle Dokumentation

    The Brian spiking neural network simulator (externer Link, neues Fenster) — Brian-Team

  8. Offizielle Dokumentation

    NEST Simulator Documentation (externer Link, neues Fenster) — NEST Initiative

Häufige Fragen

Was ist ein Spiking Neural Network?
Ein künstliches neuronales Netz, dessen Neuronen keine Kommazahlen weitergeben, sondern kurze Impulse (Spikes). Jedes Neuron hat einen inneren Zustand, das Membranpotenzial, der sich durch eingehende Impulse auflädt und von selbst wieder abfällt. Erreicht er eine Schwelle, feuert das Neuron und wird zurückgesetzt. Information steckt darin, wie oft und wann Neuronen feuern.
Warum lassen sich Spiking Neural Networks schwer trainieren?
Das übliche Training mit Backpropagation braucht Ableitungen. Die Spike-Funktion ist aber eine Stufe: Ihre Ableitung ist überall null, außer genau an der Schwelle, wo sie nicht definiert ist. Surrogate-Gradienten ersetzen diese Ableitung beim Rückwärtsrechnen durch die Ableitung einer glatten Funktion. Alternativ trainiert man ein klassisches Netz und wandelt es danach in ein spikendes um.
Sind Spiking Neural Networks genauer als klassische neuronale Netze?
Dafür gibt es keinen allgemeinen Beleg. Beim Umwandeln trainierter Netze liegt die Fehlerrate des spikenden Netzes typischerweise gleichauf oder etwas darüber: In einer Arbeit von 2017 stieg sie bei Inception-V3 auf ImageNet von 23,88 auf 25,40 Prozent (Top-1, Teilmenge der Testdaten). Der mögliche Vorteil von SNNs liegt bei Energie und Rechenoperationen auf passender Hardware, nicht bei der Genauigkeit.

Teil des Themen-Hubs Neuromorphic Computing: Was Computer vom Gehirn lernen · Abschnitt „Neuromorphe Chips“

Weiterlesen