ZEN - NEURALES NETZ - Dokumentation der Parameter

Werbung
Dokumentation der ZEN-Parameter
(1/16) weiter
www.zen-project.de
Inhalt
Wie funktioniert ZEN?(2)
Was ist eine Synapse?(10)
Kommentar(2)
SYNAPSE.inactive(10)
Was ist ein Neuron?(3)
SYNAPSE.id(10)
NEURON.inactive (3)
SYNAPSE.neuron(10)
NEURON.id(4)
SYNAPSE.axon(11)
NEURON.analog (4)
SYNAPSE.transmitterid(11)
NEURON.x (4)
SYNAPSE.gewichtsmulti(11)
NEURON.y (4)
SYNAPSE.delay(11)
NEURON.z (4)
Transmitterdepot(11)
NEURON.sw (4)
SYNAPSE.taufbau(11)
Adaptation(5)
SYNAPSE.tmax(12)
NEURON.admax(5)
SYNAPSE.lernphase(12)
NEURON.adphase(5)
Memolevel(12)
NEURON.adinc(5)
MEMOLEVEL.startgewicht(12)
NEURON.addec(5)
MEMOLEVEL.weightinc(13)
Refraktaerphase(6)
MEMOLEVEL.weightdec(13)
NEURON.refabsolut(6)
MEMOLEVEL.vergesslichkeit(13)
NEURON.reffaktor(6)
MEMOLEVEL.minigewicht(13)
NEURON.refmax(6)
MEMOLEVEL.maxigewicht(13)
Transmitter(7)
Depression(13)
TRANSMITTER.id(7)
DEPRESSION.startgewicht(14)
TRANSMITTER.enladedistanz(7)
DEPRESSION.dphase(14)
TRANSMITTER.entladefaktor(7)
DEPRESSION.dinc(14)
TRANSMITTER.hemmend(8)
DEPRESSION.ddec(14)
TRANSMITTER.erregend(8)
DEPRESSION.dmax(14)
TRANSMITTER.maxisumme(8)
Bahnung(14)
Was ist eine Axon(8)
BAHNUNG.startgewicht(14)
AXON.inactive(8)
BAHNUNG.bphase(14)
AXON.id(8)
BAHNUNG.binc(15)
AXON.neuron(9)
BAHNUNG.bdec(15)
AXON.synapse(9)
BAHNUNG.bmax(15)
Turn(9)
Beispiel zweier Neuronen(16)
TURN.x(9)
TURN.y(9)
TURN.z(9)
(1/16) weiter
Dokumentation der ZEN-Parameter
(2/16) zurueck weiter Inhalt
Wie funktioniert ZEN?
Unser Gehirn besteht aus schaetzungsweise 100 bis 200 Milliarden Nervenzellen, den
sogenannten Neuronen. Das Gehirn einer Biene besteht aus etwa 1 Million Nervenzellen.
Obwohl die Biene viel weniger Neuronen besitzt als ein Mensch, kann sie muehelos Blueten
erkennen, anfliegen, Futter sammeln und wieder zum Bienenstock zurueckkehren. Zur Zeit
gibt es noch kein technisches System, das in der Lage ist, die Leistungen einer Honigbiene
nachzuahmen.
Das ZEN-Netzwerk (Zyklisches-Einheits-Netz) ist ein biologisch angelehntes neurales
Netzwerk. Dieses "Neurale Netzwerk" simmuliert Neurone, Axone und Synapsen. Ein
Neuron ist mit einem Becher vergleichbar, in den langsam Wasser hineintropft. Erreicht das
Wasser im Becher einen bestimmen Pegelstand, kippt dieser um, laesst ebenfalls Fluessigkeit
in andere Becher hineintropfen und richtet sich anschliesend wieder auf. Dieser Becher besitzt
im Boden eine Oeffnung, aus der langsam Wasser entweicht. Es muss also mehr Wasser in
den Becher hineintropfen als heraustropft, damit er irgendwann umkippt. Neuronen sammeln
kein Wasser sondern erregende Signale. Ueberschreiten diese Signale einen bestimmten
Schwellenwert, entlaed sich das Neuron und sendet ueber eine Verlaengerung seiner Zelle,
dem Axon, seinerseits Signale an weitere Neuronen. Dieses Axon ist nicht direkt mit diesen
weiteren Neuronen verbunden sondern ueber sogenannte Synapsen. Die Staerke eines
einzelnen Signals eines Neurons, das ueber das Axon zur Synapse an ein weiteres Neuron
gesendet wird, ist abhaengig von der Signalstaerke der Synapse. Die Signalstaerke oder das
Gewicht der Synapse veraendert sich nach bestimmten Regeln, was allgemein als "Lernen"
bezeichnet wird.
Das ZEN-Netzwerk liest beim Programmstart eine Textdatei mit der Endung '.ZDD' ein, in
der beschrieben wird, wie die Neurone, Axone und Synapsen aufgebaut sind. Die Befehle,
Parameter genannt, sind im Folgenden genauer erklaert.
Das Netzwerk ist getaktet. Ein einzelner Takt wird hier auch Zyklus genannt. In einem Zyklus
wird der Zustand der Neurone und Synapsen berechnet, der sich aus dem Zustand der
Neurone und Synapsen des vergegangenen Zyklus ergibt.
Kommentar
In eine ZDD-Datei koennen einzelne Zeilen als Kommentarzeilen genutzt werden. Das
Kommentar-einleitende Zeichen ist '#'
Beispiel:
#
# "Werden zwei Neuronen gleichzeitig erregt,
# so erhoehe die Staerke ihrer Verbindung" (D.Hepp 1949)...
#
(2/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(3/16) zurueck weiter Inhalt
Was ist ein Neuron?
Ein Neuron verhaelt sich wie ein Behaelter, in den Fluessigkeit hineintropft. Hat der
Fluessigkeitsspiegel einen bestimmten Schwellenwert ueberschritten, kippt der Behaelter um,
entleert sich und sendet seinerseits "troepfelnde" Signal an andere Behaelter. Anstelle von
Fluessigkeit sammeln natuerliche Neuronen Ladungen. ZEN-Neurone koennen analog oder
digital definiert sein. Analoge Neurone besitzen keinen Schwellenwert, sie feuern gestufte
Signale an andere Neuronen. Die Staerke des gesendeten Signals ist abhaengig von der
jeweiligen Erregung. Digitale Neurone verhalten sich anders. Sie feuern erst ein Signal ueber
ihre Axone wenn die eingehenden Signale einen bestimmten festgelegten Schwellenwert
ueberschreiten. Dieses abgefeuerte Signal wird Aktionspotential genannt. Feuert ein
derartiges digitales Neuron, so ist die Staerke des Signals abhaengig von der Staerke der
Synapse, dem sogenannten synaptischen "Gewicht". Jede Synapse spricht im Zielneuron eine
bestimmte Gruppe von "Membrankanaelen" an, die im ZEN- Netzwerk als 'Transmitter'
bezeichnet werden. Diese Transmitter erhoehen oder verringern die Gesamtladung des
Neurons.
Neuronen koennen sensorisch oder motorisch sein. Sensorische Neuronen sind fuer das
Neuronensystem das Tor zur Aussenwelt und feuern ein Signal ab, um dem restlichen
Neuronennetzwerk einen aesseren Zustand zu uebermitteln. In der Biologie sind dies z.B.
lichtempfindliche Photorezeptoren im Auge oder Tastrezeptoren in der Haut. Motorische
Neuronen geben Signale an die Aussenwelt ab, wie z.B. Motoneuronen im Saeugetier, die
Muskeleinheiten ansteuern.
Ein Neuron im ZEN-Netzwerk wird mit dem Befehl "NEURON_BEGIN" eingeleitet und mit
"NEURON_END" abgeschlossen. Zwischen diesen Aufrufen werden notwendige und
optionale Parameter eingetragen.
Beispiel:
NEURON_BEGIN
id = 1
x = 10
y = 20
z=0
...
NEURON_END
NEURON.inactive
Status: optional. Typ: boolean
'inactive' kann mit dem Wert 'true' vorbelegt werden, um ein Neuron als undefiniert zu
kennzeichnen. Der ZEN-Interpreter ignoriert dann das Neuron.
(3/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(4/16) zurueck weiter Inhalt
NEURON.id
Status: notwendig. Typ: long
'id' ist die fortlaufende Nummer des Neurons. Mit ihr wird ein Neuron adressiert. Das erste
Neuron hat eine 'id' von '1', das naechste '2' usw.
NEURON.analog
Status: notwendig. Typ: boolean
Wird 'analog' mit 'true' vorbelegt, so feuert das Neuron in jedem Zyklus ein graduiertes
Signal. Eine von einem analogen Neuron adressierte Synapse muss daher mit einem
Gewichtsmultiplikator versehen sein, der das Signal verstaerkt oder abschwaecht. Diese
Synapsen besitzen keinen Memolevel, Bahnung oder Depression. Der Parameter 'delay' muss
mit '0' initialisiert werden.
Wenn es mit 'false' vorbelegt wird, so handelt es sich dann um ein Neuron mit Schwellenwert.
Erst wenn die Gesamtsumme der Transmitter ueberschritten wird, sendet das Neuron ein
eigenes Signal an die verbundenen Neuronen, dessen Staerke von dem Gewicht der Synapse
abhaengt.
NEURON.x
Status: notwendig. Typ: long
X-Koordinate im ZEN-Neuronenraum.
NEURON.y
Status: notwendig. Typ: long
Y-Koordinate im ZEN-Neuronenraum.
NEURON.z
Status: notwendig. Typ: long
Z-Koordinate im ZEN-Neuronenraum.
NEURON.sw
Status: notwendig. Typ: float
'sw' bestimmt den Schwellenwert eines digitalen Neurons. Der Parameter darf nicht mit 0
initialisiert werden.
(4/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(5/16) zurueck weiter Inhalt
Adaptation
Jeder kennt das Erlebnis, in eine 40 Grad heisse Badewanne zu steigen. Erst ist es fast
unertraeglich heiss, nach einigen Sekunden wird es jedoch angenehmer. Es ist eine allgemeine
Eigenschaft sensorischer Neuronen sich an die jeweilige Reizintensitaet anzupassen. Dies
geschieht oft durch die sogenannte Adaptation. Das Neuron feuert bei wiederholter Reizung
mit geringerer Intensitaet.
Ein digital definiertes ZEN-Neuron kann adaptieren. Wenn innerhalb einer Anzahl von
Zyklen nach einem Aktionspotential (Schwellenwert wurde ueberschritten) ein weites
Aktionspotential auftritt, so steigt das Adaptationsgewicht um einen konstanten Faktor.
Dieses Gewicht verstaerkt den Schwellenwert des Neurons, so dass das Aktionspotential
schwerer erreicht wird. Das hat den Effekt, dass bei starker, wiederholter Signaleinwirkung
das Neuron mit geringerer Intensitaet feuert. Die vier Parameter zur Adaptations-Einstellung
sind 'admax', 'adphase', 'adinc' und 'addec'. Die Parameter fuer Adaptation sind optionale
Parameter und muessen gemeinsam definiert werden. Wuenscht man keine Adaptation laesst
man die Parameter einfach weg. Wird das Neuron einige Zyklen nicht mit Signalen
bombadiert, erholt es sich wieder und feuert zuletzt wieder mit der anfaenglichen
Bereitschaft.
NEURON.admax
Status: optional. Typ: float
'admax' ist der maximale Wert, den das Adaptationsgewicht annehmen kann.
NEURON.adphase
Status: optional. Typ: long
'adphase' gibt die Anzahl der Zyklen an, die nach einem Aktionspotential vergehen duerfen,
damit das Adaptationsgewicht um den Wert 'adinc' erhoeht wird. Wird 'adphase' mit '0'
initialisiert, so muss das nachfolgende AP sofort im naechsten Zyklus abgegeben werden, um
das Adaptationsgewicht zu verstaerken.
NEURON.adinc
Status: optional. Typ: float
'adinc' ist der Faktor, um den sich das Adaptationsgewicht erhoeht, wenn innerhalb der
Adaptationsphase ('adphase') ein weiteres Aktionspotential erfolgt.
NEURON.addec
Status: optional. Typ: float
'addec' ist der Faktor, um den sich das Adaptationsgewicht in jedem Zyklus verringert. Das
Adaptationsgewicht wird so allmaehlich wieder automatisch auf '0' abgestuft.
(5/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(6/16) zurueck weiter Inhalt
Refraktaerphase
Die Refraktaerphase folgt direkt auf ein Aktionspotential und verhindert, dass innerhalb der
folgenden Augenblicke ein weiteres Aktionspotential im Neuron entstehen kann. Im ZENNetzwerk tritt Adaptation in Form eines Schwellenwertes auf, der den Gesamtschwellenwert
des Neurons erhoeht. Innerhalb der Refraktaerphase ist es eingehenden Signalen nur sehr
schwer moeglich, das Neuron bis zum Aktionspotential zu erregen.
Die Parameter, die zur Darstellung der neuronalen Refraktaerphase verwendet werden sind
'refabsolut', 'refreffaktor' und 'refmax'.
NEURON.refabsolut
Status: optional. Typ: long
'refabsolut' gibt die Phase in Zyklen an, in der das Refraktaergewicht auf seinem
Maximalwert bleibt (admax)'.
NEURON.reffaktor
Status: optional. Typ: float
Ist die absolute Refraktaerphase vorueber, erholt sich das Neuron wieder. Der
Refraktaerschwellenwert wird wieder abgebaut und das Neuron wird wieder eher geneigt
sein, bis zur Schwelle erregt zu werden. Der Parameter 'reffaktor' ist ein Multiplikator, mit
dem ein interner Wert multipliziert wird. Dieser interne Wert wird zu Beginn des Abbaus mit
1 vorbelegt und in den nachfolgenden Zyklen mit dem Multiplikator verstaerkt. Die Differenz
zum maximalen Refraktaergewicht bildet das verbleibende Refraktaergewicht.
Diese Vorgehensweise ermoeglicht eine exponentielle Erholung des Neurons von einem
Aktionspotential.
NEURON.refmax
Status: optional. Typ: float
'refmax' ist das maximale Refraktaergewicht, das auf den Gesamtschwellenwert des Neurons
waehrend der Refraktaerphase hinzuaddiert wird. Es empfielt sich, diesen Wert moeglichst
hoch zu waehlen, sofern man sicherstellen will, dass das Neuron waehrend der
Refraktaerphase nicht ueber die Schwelle zu erregen ist.
(6/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(7/16) zurueck weiter Inhalt
Transmitter
Transmitter sind in Nervensystemen die Botenstoffe, die bei einer Signaluebertragung von
Synapsen an Neuronen abgegeben werden. Sie bewirken eine Verstaerkung oder
Abschwaechung der Ladungsansammlung am Neuron. Ein Transmitter baut sich im Laufe der
Zeit selbst wieder ab, die Erregung geht zurueck.
Im ZEN-Netzwerk stehen Transmitter symbolisch fuer erregende und hemmende
Eigenschaften. In biologischen Systemen ist Erregung und Hemmung keine Eigenschaft des
Transmitters, sondern eines postsynaptischen Membrankanals. Das Neuron entscheidet also
darueber, ob es das Auftreten eines Transmitters als erregendes oder hemmendes Signal
wertet. Neuronen und Synapsen koennen mehrere Transmitterarten abhandeln. Fuer Synapsen
und Neuronen werden Transmitter mit identischen Parametern definiert, bewirken aber ein
unterschiedliches Verhalten.
Neuronen benoetigen mindestens einen Transmitter, um von einer Synapse beeinflusst zu
werden. Die Summe der Transmitter-Erregungen erzeugt die Gesamtsumme des Neurons.
Synapsen koennen selbst von Transmittern beeinflusst werden, sind jedoch nicht von ihnen so
abhaengig wie die Neuronen. Synaptische Transmitter haben im ZEN-Netzwerk allein die
Aufgabe, das synaptische Gesamtgewicht fuer eine Weile zu verstaerken oder
abzuschwaechen. Damit dieser Effekt eintritt, muessen andere Synapsen praesynaptisch
definiert sein. Das heißt, eine andere Synapse muss ein Axon anstelle eines Neurons
adressieren, das mit der Synapse und einem ihrer Transmitter verbunden ist.
Transmitter werden mit dem Kommando 'TRANSMITTER_BEGIN' eingeleitet und mit
'TRANSMITTER_END' abgeschlossen. Dazwischen liegen die individuellen Parameter.
TRANSMITTER.id
Status: notwendig. Typ: float
'id' ist die fortlaufende Nummer des Neurons. Mit ihr wird ein Neuron adressiert. Das erste
Neuron hat eine 'id' von '1', das naechste '2' usw.
TRANSMITTER.entladedistanz
Status: notwendig. Typ: long
'entladedistanz' gibt die Anzahl der Zyklen an, die vergehen, bis das Gewicht des Transmitters
herabgestuft wird. Wird dieser Parameter mit '0' initialisert, so findet die Entladung in jedem
Zyklus statt.
TRANSMITTER.entladefaktor
Status: notwendig. Typ: float. Wertebereich: ( 0 > x >= 1)
'entladefaktor' ist so definiert, dass der Transmitter zuerst schnell, dann aber immer langsamer
abfaellt. Deshalb ist dieser Parameter ein Multiplikator, mit dem das Gewicht des
Transmitters zur Verringerung multipliziert wird. Beispiel: wird 'entladefaktor' mit '0.9'
definiert und das aktuelle Gewicht des Transmitters ist '10', so wird der Faktor nach der
folgenden Herabstufung '0,9', dann zu '0,81', '0.729', '0,6561'...
(7/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(8/16) zurueck weiter Inhalt
TRANSMITTER.hemmend
Status: notwendig. Typ: bool
Wird 'hemmend' mit 'true' initialisiert, wirkt der Transmitter hemmend, senkt also mit seinem
Gewicht die Gesamtsumme des Neurons oder der Synapse. Wird dieser Parameter definiert,
so darf der Gegenspieler-Parameter 'erregend' nicht mehr definiert werden.
TRANSMITTER.erregend
Status: notwendig. Typ: bool
Wird 'erregend' mit 'true' initialisiert, wirkt der Transmitter erregend, erhoeht also mit seinem
Gewicht die Gesamtsumme des Neurons oder der Synapse. Wird dieser Parameter definiert,
so darf der Gegenspieler-Parameter 'hemmend' nicht mehr definiert werden.
TRANSMITTER.maxisumme
Status: notwendig. Typ: bool
'maxisumme' gibt den maximalen Wert an, den das Transmittergewicht annehmen kann.
Was ist ein Axon?
Ein Axon ist biologisch betrachtet eine Verlaengerung eines Neurons. Das Axon verzweigt in
der Regel in viele Aeste und ist ueber die Synapsen mit anderen Neuronen verbunden. Das
ZEN-Axon verbindet immer ein Neuron mit einer Synapse. Zur Visualisierung speichert das
Objekt sogenannte 'TURNS', die als zusaetzliche Verbindungspunkte dienen. Dadurch konnen
Axone zu Nervenleitungen visuell verbunden werden. Fuer die Berechnung im Zyklus haben
die Turns keine Bedeutung.
Verbindet ein Axon ein analog definiertes Neuron mit einer Synapse, so besitzt auch die
Synapse analoge Eigenschaften, und das weitergeleitete Signal ist abhaengig von der
Gesamtsumme des Neurons. Ist die Summe des analogen Neurons z.B. gerade '10' und der
Gewichtsmultiplikator der verbundenen Synapse '2', so ist das Gewicht der Synapse '20'.
Verbindet das Axon eine digitales Neuron, also ein Neuron, das einen Schwellenwert besitzt,
mit einer Synapse, so ist das Gewicht der Synapse unabhaengig von der Gesamtsumme des
Neurons.
AXON.inactive
Status: optional. Typ: boolean
'inactive' kann mit dem Wert 'true' vorbelegt werden, um ein Axon als undefiniert zu
kennzeichnen. Der ZEN-Interpreter ignoriert dann das Axon.
AXON.id
Status: notwendig. Typ: long
'id' ist die fortlaufende Nummer des Axons. Mit ihr wird ein Axon adressiert. Das erste Axon
hat eine 'id' von '1', das naechste '2' usw.
(8/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(9/16) zurueck weiter Inhalt
AXON.neuron
Status: notwendig. Typ: long
'neuron' ist die Adresse des Neurons, von dem aus ein Signal gesendet wird.
AXON.synapse
Status: notwendig. Typ: long
'synapse' ist die Adresse der Synapse, die das Signal empfaengt.
Turn
Ein Turn hat auf die Funktionsweise des Netzwerkes keinen Einfluss. Oft moechte man in
einer 3-dimensionalen Visualisierung Neurone nicht mit einer geraden Linie verbinden
sondern ueber mehrere Verbindungspunkte umleiten. Ein Turn ist ein Punkt aus 3
Koordinaten, den das Axon durchlaeuft. Ohne Turns werden das sendende Neuron und das
Neuron mit der empfangenden Synapse durch eine gerade Linie verbunden. Ein Turn wird mit
'TURN_BEGIN' eingeleitet und mit 'TURN_END' abgeschlossen. Dazwischen liegen die
Parameter fuer die X-, Y-, und Z-Koordinate.
TURN.x
Status: notwendig. Typ: long
'x' ist die logische X-Koordinate eines Turns.
TURN.y
Status: notwendig. Typ: long
'y' ist die logische Y-Koordinate eines Turns.
TURN.z
Status: notwendig. Typ: long
'z' ist die logische Z-Koordinate eines Turns.
(9/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(10/16) zurueck weiter Inhalt
Was ist eine Synapse?
Die Synapse ist die Verbindungsstelle eines Axons mit einem Neuron. Bei einem Signal
schuetten sie einen Transmitter aus, der das Neuron erregt oder hemmt, abhaengig von der
Wirkungsweise des Transmitters am Neuron. Synapsen haben die Faehigkeit, ihre Gewichte
abhaengig von ihrer Bedeutung fuer das Neuron zu verstaerken oder abzuschwaechen. Der
kannadische Psychologe Donald O. Hepp hat 1949 seine 'Hepp'sche Regel' aufgestellt, die
besagt: "Wenn zwei Neuronen gleichzeitig aktiv sind, so erhoehe die Staerke ihrer
Verbindung.". Spaeter hat man in Nervensystemen ein aehnliches Verhalten vereinzelt
nachgewiesen. Einige Synapsen 'warten' nach ihrer Transmitterausschuettung, ob das
Zielneuron antwortet. Ist das der Fall, erhoeht die Synapse ihr Gewicht (In der Praxis ist dies
nicht nur die Synapse, sondern Elemente des Neurons werden fuer den Transmitter
erregbarer). Hierbei ist wichtig, dass eine erhoehte Erregbarkeit einer Synapse nur von
begrenzter Dauer ist, und rasch wieder abnimmt. Dies macht zum Teil das klassische
'Kurzzeitgedaechnis' aus, das nur fuer Sekundenbruchteile Informationen speichert. Erst nach
laengerem Gebrauch bleiben die verstaerkten Gewichte laenger stabil, was zur
Konsolidierung (Uebergang vom Kurz- zum Langzeitgedaechnis) fuehrt.
Zu diesem Zweck besitzt das ZEN-Netzwerk mehrere 'memolevel', die fuer kurzzeitige oder
laenger anhaltende Gewichtsverstaerkungen eingestellt werden koennen. Die Memolevel sind
unabhaengig und summieren ihre Gewichte zu einem einzigen synaptischen Gesamtgewicht
auf.
Eine weitere Eigenschaft von Synapsen ist die Depression. Wird die Synapse in kurzer Zeit
wiederholt aktiviert, so verringert die Synapse allmaehlich ihre Transmitterausschuettung.
Das ZEN-Netzwerk unterstuezt mehrere unabhaengige Depressionen pro Synapse.
Die Bahnung ist eine aehnliche Eigenschaft von Synapsen. Im Gegensatz zur Depression wird
das Gewicht der Synapse nach wiederholter Aktivierung erhoeht. Auch hier koennen im
ZEN-Netzwerk mehrere Bahnungsstufen definiert werden.
SYNAPSE.inactive
Status: optional. Typ: bool
'inactive' kann mit dem Wert 'true' vorbelegt werden, um eine Synapse als undefiniert zu
kennzeichnen. Der ZEN-Interpreter ignoriert dann die Synapse.
SYNAPSE.id
Status: notwendig. Typ: long
'id' ist die fortlaufende Nummer der Synapse. Mit ihr wird eine Synapse adressiert. Die erste
Synapse hat eine 'id' von '1', das naechste '2' usw.
SYNAPSE.neuron
Status: notwendig. Typ: long
Eine Synapse kann direkt ein Neuron oder indirekt ueber ein Axon eine weitere Synapse
beeinflussen. Im ersten Fall enthaelt der Parameter die ID des Neurons. Der Parameter 'axon'
wird dann mit '0' initialisiert.
(10/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(11/16) zurueck weiter Inhalt
SYNAPSE.axon
Status: notwendig. Typ: long
Eine Synapse kann direkt ein Neuron oder indirekt ueber ein Axon eine weitere Synapse
beeinflussen. Im zweiten Fall enthaelt der Parameter die ID des Axons. Der Parameter
'neuron' wird dann mit '0' initialisiert.
SYNAPSE.transmitterid
Status: notwendig. Typ: long
Eine Synapse muss auf der Zielseite einen Transmitter ansprechen. Beeinflusst die Synapse
ein Neuron, so handelt es sich um eine Transmitter-ID des Neurons. Beeinflusst die Synapse
ein Axon, so ist es eine Transmitter-ID der Synapse, die von dem adressieren Axon adressiert
wird.
SYNAPSE.gewichtsmulti
Status: im analogen Kontext notwendig. Typ: float
Der Gewichtsmultiplikator 'gewichtsmulti' wird nur definiert, wenn es von einem analogen
Neuron beeinflusst wird. Es verstaerkt oder verringert das Gewicht der Synapse.
Beispiel: Das Gewicht eines analogen Neurons sei '10' und es sendet ein Signal an eine
Synapse mit einem Gewichtsmultiplikator von '2', so wird das effektive Gewicht der Synapse
'20'.
SYNAPSE.delay
Status: notwendig. Typ: long
'delay' ist die Anzahl der Zyklen, die vergehen, bis die Synapse den Transmitter an das
Zielneuron oder die Zielsynapse ausschuettet. In der Zwischenzeit eingehende Feuerbefehle
werden intern in eine 'Wartschleife" gestellt und verspaetet abgehandelt. Soll die Synapse
nicht warten, so kann 'delay' einfach mit '0' initialisiert werden. Bei analog beeinflussten
Synapsen ist 'delay' immer 0.
Transmitterdepot
Eine Synapse kann mit einem begrenzten Transmitterdepot ausgestattet sein. Die Synapse
kann dann nur so viel Transmitter bei einem Signal ausschuetten, bis das Depot erschoepft ist.
Das Depot benoetigt dann wieder Zeit, um sich um den Faktor 'taufbau' aufzubauen. Werden
die Parameter fuer ein Transmitterdepot nicht angelegt, so ist das Depot unbegrenzt. Die
Parameter sind 'taufbau' und 'tmax'.
SYNAPSE.taufbau
Status: optional. Typ: float
'taufbau' ist der Faktor, um den sich der maximale Ausschuettungswert an Transmittern, das
Transmitterdepot, pro Zyklus aufbaut. Der Aufbau des Depots stoppt, wenn der Maximalwert
'tmax' , erreicht ist.
(11/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(12/16) zurueck weiter Inhalt
SYNAPSE.tmax
Status: optional. Typ: float
'tmax' ist der maximale Aufbauwert eines Depots. Die Synapse kann in der Gesamtsumme
nicht mehr Transmitter ausschuetten, als durch 'tmax' festgesetzt ist.
SYNAPSE.lernphase
Status: notwendig. Typ: long
'lernphase' ist eine zeitliche Distanz in Zyklen, die angibt, wie lange die Synapse nach ihrer
Transmitterausschuettung wartet, bis das Zielneuron selbst feuert. Dieser Parameter wirkt sich
auf die definierten Memolevel aus. Wird 'lernphase' auf '0' gesetzt, so muss das Zielneuron
sofort im folgenden Zyklus feuern, damit das Gewicht der Memolevel ansteigt. Ist 'lernphase'
hoeher definiert, gibt die Synapse dem Neuron noch etwas Zeit, zu antworten. Ist die Zeit
abgelaufen, so kann das Neuron feuern, wie es will, das Gewicht der Memolevel bleibt wie es
ist.
Memolevel
Memolevel sind eine Gruppe von Parametern, die das synaptische Gewicht beschreiben, die
Staerke der Transmitterausschuettung. Sie erscheinen nur an Schwellenwert-Neuronen. Feuert
die Synapse mit einem bestimmten Gewicht, wartet es fuer einige Zyklen (Parameter
'lernphase') darauf, ob das Neuron daraufhin selbst feuert. Geschieht dies noch innerhalb der
Lernphase, so erhoehen die Memolevel ihre Gewichte. Jeder Memolevel steht fuer
unterschiedlich lang anhaltende Gedaechnisformen. Das Kurzzeitgedaechnis sollte durch
einen Memolevel definiert sein, der schnell ansteigt und rasch wieder abnimmt, damit nur
fuer den Augenblick relevante Muster gespeichert werden. Das Langzeitgedaechnis sollte sein
Gewicht nur sehr langsam aufbauen und mit der Zeit auch nur sehr langsam abbauen, damit
haeufig wiederkehrende Muster langanhaltender gespeichert werden. Es darf natuerlich auch
nur ein einzelner Memolevel definiert sein, die Synapse wird dann fuer eine Gedaechnisdauer
spezialisiert. Wird die Synapse im digitalen Zusammenhang definiert, muss mindestens ein
Memolevel vorhanden sein. Im analogen Zusammenhang gibt es keine Memolevel.
Memolevel werden mit dem Kommando 'MEMOLEVEL_BEGIN' eingeleitet und mit
'MEMOLEVEL_END' abgeschlossen. Zwischen diesen Kommandos befinden sich die
Parameter 'startgewicht' , 'weightinc' , 'weightdec' , 'vergesslichkeit' , 'minigewicht' und
'maxigewicht' .
MEMOLEVEL.startgewicht
Status: notwendig. Typ: float
Das Gewicht eines Memoleves kann mit einem Startwert initialisiert werden. Dieser kann
ganz zufaellig oder gezielt gewaehlt werden. Ein ZEN-Netzwerk, das einige Muster und
Verhaltensstrategien gelernt hat, kann mit seinen aktuellen Trainingsgewichten abgespeichert
werden. Die gespeicherte Datei enthaelt dann als Startgewichte die vorher gelernten
Gewichte. Das Startgewicht muss groesser oder gleich dem 'minigewicht' definiert sein.
(12/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(13/16) zurueck weiter Inhalt
MEMOLEVEL.weightinc
Status: notwendig. Typ: float
'weightinc' ist der Wert, um den das Gewicht des Memolevels ansteigt, wenn das Neuron
innerhalb der Lernphase selbst ein Signal abfeuert. Das Gewicht steigt solange schrittweise
an, bis das 'maxigewicht' erreicht ist.
MEMOLEVEL.weightdec
Status: notwendig. Typ: float
Jedem Memolevel kann ein Vergesslichkeitsfaktor gegeben werden. In einem Intervall von
'vergesslichkeit' wird das Gewicht des Memoleves um den Wert 'weigthdec' verringert. Das
Gewicht kann maximal bis zum 'minigewicht' heruntergestuft werden.
MEMOLEVEL.vergesslichkeit
Status: notwendig. Typ: long
Jedem Memolevel kann eine Vergesslichkeitsdistanz in Zyklen gegeben werden. In einem
Intervall von 'vergesslichkeit' sinkt das Gewicht um den Faktor 'weightdec'. Wird
'vergesslichkeit' mit '0' initialisiert, so verringert sich das Gewicht bei jedem Zyklus.
MEMOLEVEL.minigewicht
Status: notwendig. Typ: float
'minigewicht' ist das minimale Gewicht eines Memolevels. Der einzelne Memolevel kann
dieses Gewicht nicht unterschreiten.
MEMOLEVEL.maxigewicht
Status: notwendig. Typ: float
'maxigewicht' ist das maximale Gewicht eines Memolevels. Der einzelne Memolevel kann
dieses Gewicht nicht ueberschreiten.
Depression
Depression ist eine verringerte synaptische Aktivitaet, nach vorangegangener Aktivitaet. Das
Gewicht einer Synapse wird also abgeschwaecht, wenn innerhalb einer kurzen Zeit sehr viele
Signale eingehen. Laesst die Staerke des Signaleingangs nach, so geht das
Depressionsgewicht der Synapse wieder zurueck. Das ZEN-Netzwerk unterstuezt mehrere
Depressionsstufen, z.B. eine kurzzeitig wirksame, die schnell wieder abnimmt und eine
langfristige, die laenger anhaelt. Das Gewicht der Depression wird beim Abspeichern der
ZDD-Datei als Startgewicht abgelegt.
(13/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(14/16) zurueck weiter Inhalt
DEPRESSION.startgewicht
Status: notwendig. Typ: float
Das Startgewicht ist das Anfangsgewicht der Depression.
DEPRESSION.dphase
Status: notwendig. Typ: long
'dphase' beschreibt eine Phase in Zyklen. Wird innerhalb dieser Phase die Synapse zum
Feuern angeregt, wird das Depressionsgewicht um den Faktor 'dinc' erhoeht.
DEPRESSION.dinc
Status: notwendig. Typ: float
'dinc' ist der Wert, um den das Gewicht der Depression ansteigt, wenn innerhalb einer Phase
'dphase' die Synapse zum Feuern angeregt wird.
DEPRESSION.ddec
Status: notwendig. Typ: float
In jedem Zyklus nimmt das Depressionsgewicht um einen konstanten Faktor wieder ab.
Dieser Faktor wird durch 'ddec' definiert.
DEPRESSION.dmax
Status: notwendig. Typ: float
'dmax' ist der maximale Wert, den das Depressionsgewicht annehmen kann.
Bahnung
Bahnung ist eine erhoehte synaptische Aktivitaet, nach vorangegangener Aktivitaet. Das
Gewicht einer Synapse wird also verstaerkt, wenn innerhalb einer kurzen Zeit sehr viele
Signale eingehen. Laesst die Staerke des Signaleingangs nach, so geht das Bahnungsgewicht
der Synapse wieder zurueck. Das ZEN-Netzwerk unterstuezt mehrere Bahnungsstufen, z.B.
eine kurzzeitig wirksame, die schnell wieder abbnimmt und eine langfristige, die laenger
anhaelt. Das Gewicht der Bahnung wird beim Abspeichern der ZDD-Datei als Startgewicht
abgelegt.
BAHNUNG.startgewicht
Status: notwendig. Typ: float
Das Startgewicht ist das Anfangsgewicht der Bahnung.
BAHNUNG.bphase
Status: notwendig. Typ: long
'bphase' beschreibt eine Phase in Zyklen. Wird innerhalb dieser Phase die Synapse zum
Feuern angeregt, wird das Bahnungsgewicht um den Faktor 'binc' erhoeht.
(14/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(15/16) zurueck weiter Inhalt
BAHNUNG.binc
Status: notwendig. Typ: float
'binc' ist der Wert, um den das Gewicht der Bahnung ansteigt, wenn innerhalb einer Phase
'bphase' die Synapse zum Feuern angeregt wird.
BAHNUNG.bdec
Status: notwendig. Typ: float
In jedem Zyklus nimmt das Bahnungsgewicht um einen konstanten Faktor wieder ab. Dieser
Faktor wird durch 'bdec' definiert.
BAHNUNG.bmax
Status: notwendig. Typ: float
'bmax' ist der maximale Wert, den das Bahnungsgewicht annehmen kann.
(15/16) zurueck weiter Inhalt
Dokumentation der ZEN-Parameter
(16/16) zurueck Inhalt
Einfaches Beispiel zweier erregender Neuronen
#
# Beispieldatei zweier Neuronen,
#
NEURON_BEGIN
id = 1
x = -30
y = 30
z=0
sw = 10
analog = false
TRANSMITTER_BEGIN
id = 1
entladedistanz = 1
entladefaktor = 1
erregend = true
maxisumme = 10
#hemmend = false
TRANSMITTER_END
NEURON_END
NEURON_BEGIN
id = 2
x = 30
y = 30
z=0
sw = 10
analog = false
TRANSMITTER_BEGIN
id = 1
entladedistanz = 1
entladefaktor = 1
erregend = true
maxisumme = 10
TRANSMITTER_END
NEURON_END
(16/16) zurueck Inhalt
#
# Axon-Definition
#
AXON_BEGIN
id = 1
neuron = 1
synapse = 1
AXON_END
#
# Synapsen-Definition
#
SYNAPSE_BEGIN
id = 1
neuron = 2
axon = 0
transmitterid = 1
delay = 0
lernphase = 1
MEMOLEVEL_BEGIN
weightinc = 1.0
weightdec = 0.1
vergesslichkeit = 0
startgewicht = 3.0
minigewicht = 0.0
maxigewicht = 12.0
MEMOLEVEL_END
SYNAPSE_END
Herunterladen