Rückkopplungs-Objekte

Diese Dialogbox ist zugegebenermassen nicht gerade intuitiv zu bedienen, aber hier wird auch etwas sehr komplexes gemanaged. Mit Rückkopplungs-Objekten (RO) kann in Netzwerken eine sensorische Rückmeldung (Reafferenz) simuliert werden. Entwickelt wurde das für die Rückmeldung der Tegula-Rezeptoren in das Netzwerk der Flugsteuerung bei Heuschrecken, kann aber sinngemäß generell für sensorischen Feedback benutz werden.

Der Grundgedanke ist einfach: wenn die Aktivität in einem Neuron (Triggerneuron) bestimmten Kriterien genügt (ein Burst auftritt), dann wird ein Zielneuron aktiviert (oder mehrere). Zusätzlich kann die Aktivität eines dritten Neurons (Ausschaltneuron) dazu verwendet werden die Aktivierung des Zielneurons zu beenden.

Die nähere Erklärung ist an o.g. Beispiel sicherlich einfacher, als eine abstrakte Parameterdiskussion. Dieses Netzwerk generiert als steuernde Vorgabe eine rhythmische Aktivität in Depressor- (Flügelabschlag) und Elevator-Motoneuronen (Flügelaufschlag). Beim fliegenden Tier werden immer gegen Ende der Abschlagphase die Rezeptoren der Tegula durch den nach unten geführten Flügel gereizt, um den Flügelaufschlag zu triggern und so das steuernde Aktivitätsmuster des Netzwerkes an die tatsächliche Flügelposition anzupassen, die eben auch von unvorhersehbaren, äußeren Einflüssen abhängt. Die Wirkung der Tegula-Aktivität wird dabei von den Elevator-Neuronen beendet, denn wenn diese zu feuern beginnen, ist die Einleitung eines neuen Flügelschlag-Zyklus und damit die Synchronisation des Mustergenerators mit der realen Flügelposition abgeschlossen (wer es genauer wissen möchte: Harald Wolf 1993...).

Die Aktivität (= Burst von Spikes) des Depressor-Neurons (= Triggerneuron) löst mit einer gewissen Latenz die Tegula-Aktivität (ebenfalls ein Burst von Spikes) im Zielneuron aus, die entweder nach einer festen Zeit oder durch die Aktivität des Elevator-Neurons beendet wird. Im Detail der praktischen Implementierung ist es dann ein wenig komplexer, denn Latenzzeit, Frequenz und Burstdauer der Tegula-Aktivität sind (im realen Tier) abhängig von der Zyklusdauer des Depressor-Neurons. Diese Abhängigkeit kann entweder linear approximiert, oder in Form einer Tabelle (im Moment nur in der gui-Datei editierbar) angegeben werden. Zugrunde gelegt wird dabei immer die Dauer des vorangegangenen Depressor-Zyklus. Bei bestimmten Einstellungen kann es daher vorkommen,  daß der erste Depressor-Burst in der Simulation keine Tegula-Aktivität auslöst, das sollte man beim Austesten bedenken! Die eigentliche Einkoppelung wird über Stromreize in beliebige, definierbare Zielneurone realisiert. Im Beispiel der Heuschrecken Flugsteuerung werden Neurone erzeugt, die als Tegula-Afferenzen betrachtet und in der Objekt-Definition deshalb als Zielneurone angegeben werden.

Damit ist der Kreis geschlossen, das Netzwerk (zentraler Mustergenerator) produziert einen Output als Aktivität von Motoneuronen (Efferenz) und löst die, einer echten Bewegung entsprechende Aktivität in den Tegula Afferenzen aus (Reafferenz). Wer sich's zutraut, könnte hier das von Holst'sche Reafferenzprinzip implementieren, das Handwerkszeug müßte eigentlich ausreichen.

 Wichtig: nach Abschluß des „Tegula-Projektes“ wurde die Behandlung von Rückkopplungs-Objekten zugunsten einer größeren Flexibilität im Mai 2007 abgeändert, so daß ältere RO nun evtl. zu anderen Ergebnissen führen.

Die Parameter im Einzelnen:

wenn das RO aktiviert werden soll, dann muß die Box ganz links oben gecheckt und eine Bezeichnung für das RO eingegeben werden. Durch uncheck wird die Rückkoppelung für dieses Objekt deaktiviert, die Parameterdefinitionen bleiben erhalten (z.B. zum Testen...)

die Radio-Buttons definieren die Art der Rückkoppelung, also in welchem Zusammenhang die Aktivität des Triggerneurons, mit der über das RO im Zielneuron ausgelösten Aktivität steht. Dabei gibt es drei verschiedene Möglichkeiten zu reagieren, wenn im Triggerneuron ein Burst (s.u.) detektiert wurde:

1.)  "kein Zusammenhang, feste Werte": hier wird das Zielneuron mit der angegebenen Latenz, Frequenz und Dauer aktiviert, auch nach dem ersten Burst im Triggerneuron, unabhängig von der Zyklus-Periode.

2.)  linear anpassen“:  aus der Länge der letzten Zyklus-Periode werden die Parameter nach den angegebenen Werten für Steigung und Achsenabschnitt berechnet. Der erste Burst im Ziel kann also erst beim zweiten Zyklus erzeugt werden.

3.)  Tabellenwerte“: wie 2., allerdings werden die Werte nicht berechnet, sondern aus einer Tabelle entnommen. Diese Tabelle kann nur in der GUI-datei editiert werden. Dort ist ein Beispiel angegeben, das bei dem betreffenden Objekt nach den eigenen Bedürfnissen abgeändert werden kann. Man sollte in der gui-Datei nach: „beispiel fuer eine tabelle mit 2 eintraegen“ suchen.

Dauer und Amplitude der Stromreize im Zielneuron haben in allen Fällen die angegebenen Werte.

Unter „sonstige Einstellungen“ werden die Kriterien definiert, nach denen im Triggerneuron ein Burst detektiert wird und unter welchen Bedingungen dann die Aktivierung des Zielneurons erfolgen muß, bzw. eine gestartete Aktivierung wieder abgeschaltet werden kann.

Alle Neurone (Trigger-, Ziel- und ggf. Ausschaltneuron) müssen zuerst ausgewählt werden. Das Ausschaltneuron ist nur dann wirksam, wenn die Box davor gecheckt ist.

Burst-Detektion im Triggerneuron:

Jedes AP, das nicht innerhalb eines Bursts liegt - also z.B. das aller erste in der Simulation - stellt den Beginn eines potentiellen Bursts dar. Sind „Mindest-Anzahl APs“ und „...-AP-Frequenz“ gleich Null (und alle anderen Werte in dieser Gruppe ebenfalls), dann erzeugt schon ein AP einen gültigen Burst, ansonsten müssen AP-Anzahl und/oder AP-Frequenz mindestens erreicht worden sein. Die Frequenz wird aus den gemittelten Inter-Spike-Intervallen der APs eines Bursts berechnet, es müssen also mindestens 2 APs auftreten, um eine Frequenz berechnen zu können.

Ist ein gültiger Burst detektiert worden, dann löst das AP, bei dem die Bedingung(en) erfüllt wurde(n), die Aktivierung des Zielneurons aus. (In den folgenden Erklärungen wurde die Einstellung "kein Zusammenhang, feste Werte" verwendet.)

Im einfachsten Fall (alle Werte = 0) löst jedes AP im Triggerneuron die Aktivierung des Zieles aus (s. Datei „RO simple.gui“):

Das Ergebnis (unteres Fenster) ist auf den ersten Blick nicht das erwartete, wird aber verständlich, wenn man die Zielreiz-Parameter betrachtet(Latenz: 0.01 s, Frequenz: 100 Hz, BD: 0.05 s). Jedes Trigger-AP löst nach 10 ms einen Ziel-Burst mit 5 APs in 50 ms aus. Das nächste Trigger-AP (29 ms nach dem vorhergehenden) erfüllt erneut die Trigger-Bedingung und startet seinerseits einen Ziel-Burst, was dazu führt, daß der gerade ausgeführte nach dem 2. Ziel-AP beendet wird usf., erst das letzte Trigger-AP kann einen vollständigen Ziel-Burst erzeugen. Dieses Verhalten ändert sich, wenn die Box: „keine Reizüberlappungen im Zielneuron zulassen“ gecheckt wird. Dann können auch gültige Trigger-Bursts keinen Ziel-Burst auslösen, bevor der laufende Ziel-Burst nicht beendet ist (s.u.). Hier können nur das 1. und das 4. Trigger-AP einen Ziel-Burst auslösen.

 

Sinnvoll wäre diese Einstellung, wenn eine einmal ausgelöste Verhaltensweise nicht mehr abgebrochen werden kann (z.B. Niesen), während eine Bewegung normalerweise immer abgebrochen und z.B reflexhaft korrigiert werden können muß, sollte diese Box dort nicht gecheckt sein.

Sobald die AP-Folge im Triggerneuron aber etwas komplexer wird, ist eine bessere Burst-Definition notwendig, denn sonst zeigt die Aktivität im Zielneuron keinen sinnvollen Verlauf. Selbst bei einem regelmäßigen Burst-Muster sind sowohl Startzeit als auch Dauer variabel („RO 2 more complex.gui“):

Hier wäre die Definition einer Mindestfrequenz sinnvoll, denn darin unterscheiden sich ISIs (Inter-Spike-Intervalle) innerhalb eines Bursts von den IBIs (s.o.). Fordert man mindestens 15 Hz (bei etwa 100 ms IBI nur innerhalb eines Bursts erfüllt), dann wird der Zusammenhang regelmäßiger:

Da die APs im Triggerneuron in den Bursts etwa 10 ms auseinander liegen, sollte eine Mindestfrequenz von etwa 50 Hz ebenfalls möglich sein und zu einem ähnlichen Ergebnis führen, doch lediglich der erste Trigger-Burst aktiviert dann das Ziel. Die 4 folgenden werden nicht mehr als gültig gewertet. Der Grund hierfür liegt in der Berechnung der Mindestfrequenz, denn ohne zusätzliche Bedingungen werden auch die langen Pausen zwischen den Bursts mitgerechnet und ziehen die reale Frequenz weit nach unten.

Abhilfe schafft hier der Parameter „Max. Inter-Spike-Intervall“. Dadurch definiert man eine maximale Zeitspanne, die zwischen aufeinanderfolgenden APs nicht überschritten werden darf. Setzt man den Wert dieses Parameters auf etwa 0.05 s, so bedingt jedes IBI im Triggerneuron den Beginn eines neuen Bursts. Jetzt ist auch die geforderte Mindestfrequenz von 50 Hz kein Problem mehr.

Start-ISI“ APs, die außerhalb eines Bursts liegen, bedingen ebenfalls einen potentiellen Burst-Beginn, wenn sie so schnell oder schneller aufeinander folgen. Gültig wird der Burst aber erst, wenn andere Bedingungen wie Mindestanzahl etc. ebenfalls zutreffen (falls gefordert). Man könnte im obigen Beispiel also auch lediglich dieses Inter-Spike-Intervall definieren, etwa auf 0.02 s. Dadurch hätte man eine feste zeitliche Abhängigkeit definiert, das Ergebnis ist aber noch nicht zufriedenstellend:

Richtig gut (und von der Burst-Dauer oder der Anzahl von Spikes im Trigger-Neuron weitgehend unabhängig) wird es, wenn man als Max. ISI noch 0.05 s und für „Mindest Burst+IBI-Dauer“ (IBI = Inter-Burst-Intervall) 0.13 angibt. Der letzte Parameter definiert ein Zeitfenster, das vom Beginn eines gültigen Trigger-Bursts an gemessen wird und den frühesten Zeitpunkt bestimmt, zu dem erneut ein gültiger Trigger-Burst detektierbar ist. Damit wird der Burst-Beginn sicher detektiert (vereinzelte APs bringen hier nichts durcheinander) und die Burst-Dauer kann innerhalb von 0.1 s schwanken, ohne die Ziel-Bursts zu beeinflussen („RO 3 complex.gui“).

 

Durch „Inter-Burst-Pause“ wird bestimmt, daß ein neuer Burst im Trigger-Neuron erst detektiert wird, wenn zwei APs, die sowieso außerhalb eines Bursts liegen müssen, mindestens so weit auseinander liegen müssen.

 

Im folgenden Beispiel („RO4 ausschalter.gui“) löst jeder Trigger-Burst eine Dauererregung des Ziels aus, die auf die Aktivierung folgende APs im Ausschaltneuron wieder beenden. Unter „Delay nach Ausschalt-Spike / Max. Dauer“ läßt sich noch ein Delay einstellen, das nach dem Ausschalt-AP vergeht, bis tatsächlich ausgeschaltet wird. „Max. Dauer“ schaltet die Zielneuron-Erregung nach der angegebenen Zeit auch ohne Ausschalt-AP ab (im unten stehenden Beispiel werden die ersten 3 Ziel-Erregungen durch Ausschalt-APs beendet nach dem 4. Trigger-Burst wird die Erregung nach 0.3 s automatisch beendet.)

 

 

 

Zyklusdauer-Abhängige Zielaktivierung

Dazu wählt man „linear anpassen“ oder „Tabellenwerte“ bei den Radio-Buttons. Es folgt ein Beispiel, in dem Frequenz und Burst-Dauer von der Zyklus-Periode abhängen („RO 5 cycle periode.gui“):

 

Unter gewissen Umständen kann es sinnvoll sein, das Ziel nicht mit einer festen Latenz zu Aktivieren, sondern mit dem nächsten Burst-Beginn. Dazu kann man „Zielaktivierung bei nächstem Burst-Beginn“ checken („RO 5 burstbeginn.gui“):