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“):