Note 08/10/1999: The information on brain lobes below was created for
Creatures 1. All the information is still valid for Creatures 2 genomes, but
the screen shots show the Creatures 1 genetics kit.
The brain lobe is one of the most complicated portions of norn genetics. The
Cyberlife Genetics Kit provides the ability to add, delete or modify brain lobes.
The dialog box for modifying brain lobes contains a bewildering number of options.
The purpose of this brain lobe discussion is to describe what each of these
options does.
The descriptions of the brain lobe settings shown here have mostly been discovered
through experimentation. The tutorials available
in another section of this web site describes how most of the information was
found. The purpose of this section of my web site is to provide a single place
where all the information gathered through the tutorials and other places can
be placed for easy use. It will be updated frequently as I discover new things.
Overview
Most standard norns have nine brains lobes. A number of the lobes are 'special'
in that they have a particular function hard-coded within the Creatures executable.
A limited amount of genetic modification can be done to these lobes as most
of their functionality is provided through the Creatures system. The other lobes
are completely genetically defined and this is where some of the most interesting
modifications to a Norn can be made.
A brain lobe sits within a 64x48 grid of neurones (often referred to here as
cells). A lobe has a location within this brain grid described as an (X, Y)
coordinate and (width, height). Each lobe therefore has a set size measured
in neurones. Each neurone in a lobe has a numeric value associated with it known
as the 'state' represented as a number from between 0 and 255 inclusive. The
current value of the 'state' of a neuron indicates the level of activity. The
value of the neurone 'state' can be set via the Creatures executable directly,
CAOS macro code, or via dendritic links from other cells in other brain lobes.
In this manner a network of cells and lobes is created that ultimately forms
the 'brain' or neural net of the norn.
All neurones within a single lobe behave in a similar manner to perform some
function. Each lobe has genetically defined information associated with it that
affects the neurones in that lobe. So a brain lobe is really a group of neurones
that perform in a similar manner.
A detailed description of the genetically defined information associated with
each lobe follows. This is the information that was obtained through experimentation.
After this a brief description of the functionality of the brain lobes in a
standard norn is provided. This document will conclude with some ideas and thoughts
on future brain modifications that could be made to improve or modify a norns
behavior.
Brain Lobe Genetics
The Cyberlife Genetics Kit has a 'tabbed' dialog box for modifying the genetic
information associated with a brain lobe. Each page of the dialog box holds
information about the lobe and the breakdown below will be done page by page
as defined by the genetics kit.
General Page
The example dialog given here is from the Decision lobe of a Ron norn. The
'general' page provides the standard gene header information that describes
when the gene switches on, how mutations affect it and the required sex of the
norn for the gene to switch on.
Also included is information on the placement of the lobe within the brain
grid, a description of the lobe, a unique numeric identifier for the lobe and
an indication as to whether lobe data is copied to the perception lobe.
Gene Header
Embryo
This field indicates the age at which the brain lobe gene will switch on.
Most brain lobes turn on at the 'Embryo' stage to ensure they operate correctly
as soon as the norn is born. I know of no lobes that are turned on at different
ages and I don't know if this functionality even works. This has been added
to the list of issues to explore.
Dup
If this flag is checked then the lobe can be duplicated as a genetic mutation.
That is, multiple copies of this lobe will be able to exist due to mutation.
Mut
Sets whether genetic mutations can be applied to the values contained within
this brain lobe.
Cut
If set the brain lobe can be removed during breeding or as the result of
mutation. Most brain lobes have this unchecked as a norn without any of the
standard lobes would not be able to function.
B/M/F
Defines the gender that this brain lobe will switch on. This could potentially
be used to create norns that have different intelligence levels or behaviour
depending on the gender of the norn. I haven't tested if this functionality
actually works. This has been added to the list of issues
to explore.
Lobe Id
Lobe #
Contains the numeric identifier for the brain lobe. This is assigned automatically
by the genetics kit and cannot be changed. The first 8 numbers (0 through
to 7) correspond to specific lobes that are hard-coded within the Creatures
executable. If you number a lobe with one of these hard coded numbers (using
a hex editor or such like) then Creatures may stomp over your neurone values
at any time so be warned.
Lobe Position and Size
X
Contains the X coordinate of the lobes location within the brain grid. I
don't know what the effect of overlapping brain lobes will be. Added to the
issues list.
Y
Contains the Y coordinate of the lobes location within the brain grid.
Width
Contains the amount of neurones in the X direction that the lobe uses within
the brain grid.
Height
Contains the amount of neurones in the Y direction that the lobe uses within
the brain grid.
The total number of neurones contained within the lobe is calculated as (Width
* Height) and displayed in the dialog box. I do not know if the layout of the
lobe or location within the brain grid has any affect on the functionality of
the lobe. Added to the issues list.
Description
This contains a description of the functionality of the brain lobe and is not
editable. I think only the standard brain lobes have descriptions associated
with them. All additional lobes get a default like 'Interneurone lobe'.
Data Copied to Perception Lobe
No
None of the information in this brain lobe will be duplicated in the perception
lobe (lobe number 0).
Yes
Every neurone within this brain lobe will have its state value duplicated
in the perception lobe. See the perception
tutorial for details.
Mutually Exclusive
A lobe marked as mutually exclusive affects the way dendrites are formed
between the perception lobe and the concept lobe. If a lobe is marked as mutually
exclusive then only one cell from this lobe may contribute to the forming
of a particular concept in the concept lobe. See the perception
tutorial for details.
Cell Body Page
The 'Cell Body' page provides information associated with each neurone (otherwise
known as 'cell') within the brain lobe. It is here that the behaviour of the
neurones are defined. Much of the information obtained about this page is from
tutorial one and tutorial
two.
Cell Body Dynamics
Nominal Threshold
This is a number with a value from 0 through to 255. When the state is set
for a neurone it will not fire unless the value of the neurone state is greater
than this threshold. The value of the neurone after firing will be state minus
threshold.
Leakage Rate
This defines the speed at which the state will drop from its current value
to its rest state. It has values like 'Instantly', '5 Seconds', '10 Seconds',
right through to '52 Years' and is represented by a number range from 0 through
to 255.
Rest State
This is the resting state of the neurone. That is, if the neurone has not
been fired or activated it will sit on the value set here. The value is from
0 through to 255.
Input gain lo-hi
I have no idea what this value does. Added to issues list.
Winner Takes All
If this flag is checked then the lobe is a winner-takes-all lobe. This means
that after all the neurone values for the lobe are calculated the highest
firing neurone (ie. the neurone with the highest state value) is the only
one that fires and all the other neurones have their output value set to zero.
An example of this type of lobe is the decision lobe where only one decision
can be made - that is the neurone with the highest firing value.
Un-used Flags
These flags do not appear to be used in any way.
Neurone State Rule
An SVRule is like a miniature program written in a special programming language.
This programming language has a number of 'opcodes' or operations that it can
perform on various pieces of data. Only eight individual opcodes are allowed in
an SVRule making them very small and fast to execute - the SVRule for every cell
in the brain must execute approximately 10 times per second! See the state
variable rule page for a description of SVRules in general and what each opcode
does.
State Rule
The SVRule defined here is used to calculate the new state value of a neurone.
The SVRule is calculated approximately 10 times per second and the result
becomes the state value of the neurone. In this way the state for neurones
within lobes can be defined genetically and different calculations can be
performed depending upon the task of the lobe. The SVRule
possibilities are huge and an idea of the complexity that can be obtained
in state calculation can be seen from tutorial
two. Remember that SVRules are used in a number of places in a brain lobe
but the specific one here is only used to calculate the value of each neurone
'state'.
D0 Growth Page
This is one of the first pages that describes the behaviour of dendrite connections
in a lobe. Dendrites are to the brain lobes as wiring is to integrated circuits.
They connect the neurones in different lobes and allow information to travel
between them. Each brain lobe can have dendrite connections with up to two different
source lobes. These are described as 'type0' dendrites and 'type1' dendrites.
This page describes the settings for 'type0' dendrites.
Dendrite connections are probably the most complicated part of the norn brain
structure and much of what is described here is still being explored by me.
If you don't understand any of what follows please email
me and I'll make an effort to make it easier to understand. Tutorial
three (which is still under construction) describes dendrite links as well.
Source Lobe
Source Lobe
This defines the brain lobe that these dendrites are connected to. Data
flows from neurones in the source lobe defined here to neurones in this brain
lobe. Always remember that in brain lobe construction we do not define where
information goes to - we define where it comes from.
Dendrite Properties
Minimum #
Defines the minimum number of dendrites that will be connected between each
cell in the current lobe and a cell in the source lobe.
Maximum #
Defines the maximum number of dendrites that will be connected between each
cell in the current lobe and a cell in the source lobe. At birth a norn will
have a random brain wiring pattern set up. Each cell will have a number of
dendrites ranging between the minimum and maximum number defined here. As
dendrites migrate the minimum and maximum numbers are important as they define
whether there is room for a new dendrite connection to be made or removed.
The decision on how many dendrites to use when creating a lobe depends upon
the type of information you want to obtain from the source lobe and what you
want to do with it. There will be more on this later.
Spread
This appears to define the pattern used to define the 'fanning' of the dendrite
connection between the current lobe and the source lobe. The options are '---
flat', '/\ normal', '|\ Saw' and '/|
waS'. As an example, imagine a source lobe that has 5 neurones and
the current lobe has 5 neurones also. If the number of dendrites is 2 and
the spread is 'flat' then there will be two dendrites connecting neurone 0
from the source lobe to neurone 0 in the destination lobe, two dendrites connecting
neurone 1 from the source lobe to neurone 1 in the destination lobe, etc.
With the other settings you could end up with a connection from neurone 0
in the current lobe to neurone 0 and neurone 1 in the source lobe, a connection
from neurone 1 in the current lobe to neurone 1 and neurone 2 in the source
lobe, etc. I'm preparing a diagram which will explain this better as it's
hard to explain in text! The exact layout of the dendrites will also depend
on the 'fanout' value described later. I have a program that displays the
dendrite mapping that I'm preparing and when completed I will describe exactly
what each of the settings here does. Added to issues list.
Initial Attachment
Fanout
When the dendrite wiring for a brain lobe is initially created on birth
of a creature this value defines how each dendrite connection from the current
lobe 'fans out' to neurones in the source lobe. The value varies from 0 through
to 8. I'm unsure if the 'shape' of the lobe affects the fanout and will investigate
this. Added to issues list.
Min LTW
A number ranging from 0 through to 255 described as the minimum Long Term
Weight. A dendrite has a value known as the long term weight (LTW) and it
has a minimum and maximum possible value. It's actual value floats somewhere
in between the minimum and maximum. The exact function of LTW is described
later in the dendrite section. These numbers are only used when initially
setting the values of the dendrite upon birth of a norn.
Max LTW
The maximum value of the Long Term Weight as a number from 0 through to
255. It must be equal to or greater than the minimum LTW.
Min Strength
Each dendrite has a strength value represented as a number from 0 through
to 255. The strength represents how 'strong' the link between the source neurone
and the current neurone. When the strength is '0' then the dendrite may migrate
as the link is not strong. The minimum number defined here is used for the
initial wiring of the brain lobe and for initial values after dendrite migration.
Max Strength
The maximum strength value that can be assigned to a dendrite on initial
brain wiring.
Migration Rules
The radio button settings here define how dendrites will migrate between cells
(if at all). An example of dendritic migration is the connections between the
perception lobe and the concept lobe. The perception lobe is the source lobe
and the concept lobe is the destination lobe. There may be from 1-3 neurones
from the perception lobe connected to a single cell in the concept lobe. As
a norn is punished then the connections on the perception lobe neurones will
migrate to other perception lobe neurones hopefully forming more appropriate
'concepts' for the norn to learn and make decisions from.
Dendrites do not migrate
With this setting dendrites will not migrate at all and stay with the initial
connections made at birth. This is most often used when the maximum and minimum
number of dendrites is one with a flat spread. Nothing needs to migrate.
Migrate if ANY dendrite is loose and this cell is firing
If a neurone in the current lobe has a number of dendrites attached to a
source lobe, this setting will cause the dendrites to migrate if any of these
dendrites has a strength of zero (A loose dendrite is a dendrite with strength
of zero) and the neurone is currently firing. If a dendrite in the neurone
is loose but the neurone is not firing then no migration will occur. Remember
that only one of the dendrites has to be loose for the migration to occur.
Migrate when ALL dendrites are loose
In this case every dendrite from a given neurone in the current lobe must
have a strength of zero (ie. be loose) for the dendrites to migrate. If only
one is zero (if there is more than one) then no migration will occur. I do
not know if the neurone needs to fire before the migration will occur. Added
to issues list.
D0 Dynamics Page
This is probably the most complicated portion of norn genetics. The definition
of the dynamics of the dendrites. The 'D0' page describes the dynamics for the
'type0' dendrites. The dynamics defines how the strength value of a dendrite
is adjusted, how the STW and LTW are adjusted, etc.
A number of values are associated with a dendrite. A brief description follows
to make it easier to understand what the settings on this page mean. Most of
these definitions were obtained from the paper by Steve Grand, et. al obtained
from the Cyberlife web site.
STW
Short Term Weight - used to modulate input signals. STW is constantly relaxing
towards LTW. It is the STW combined with the input value from the source lobe
that is used to calculate the 'dendrite value'. The formula used appears to
be:
dendrite value = source cell * ( stw / 255 )
where 'source cell' is the value of the cell that this dendrite is attached
to from the source lobe and 'stw' is the dendrites current short term weight
value.
Long Term Weight - acts as a rest state for STW and provides statistical
response to reinforcement. LTW is constantly rising towards STW. LTW and STW
move towards each other at different rates (and these rates are defined genetically).
Susceptibility
Current susceptibility to reinforcement. As can be seen in the STW calculation
above, the susceptibility modulates the reinforcement value. So the higher
the 'susceptibility' value, the more 'reinforcement' affects the short term
weight value.
Strength
Controls dendrite migration. Represents how 'strong' the dendrite link is.
If strength hits zero then the link is not strong and may migrate.
Atrophy and Consolidation
Relax Susceptibility
The is the half-life of the 'susceptibility' of the dendrite. It is a value
from 0 through to 255 and defines a time interval in a similar manner to that
of 'Leakage Rate' in 'Cell Body Dynamics'. The value shown in the image above
is 20 seconds. So when the susceptibility of a dendrite is set via the Susceptibility
SVRule this setting describes how quickly it 'relaxes' back to the rest
state. The relationship between this value and the susceptibility SVRule is
similar to that of 'Leakage Rate' and 'State SVRule' in the 'Cell Body' page.
Relax STW
This is the half-life or relaxation rate of the Short Term Weight value
for the dendrite. The value in the image above represents 5 minutes. Once
again it is a number from 0 through to 255 representing a time span. The STW
relaxes towards the Long Term Weight (LTW) value of the dendrite. This relax
rate sets the speed of that relaxation.
LTW Gain Rate
If this option is checked then LTW constantly rises towards STW at the rate
defined in the slider box. This number is a rate in the same manner as all
the other leakage rates (even through the genetics kit does not display it
as such). For example, if set to 10 seconds (a value of 40) then the LTW will
increment by one every 10 seconds until it reaches its rest state (which is
the value of STW).
Susceptibility
An SVRule that defines how the susceptibility
to reinforcement for that dendrite. The higher the value of the result of
this svrule, the more effect 'reinforcement' has on the value of STW. The
SVRule defined in the image above basically says if there is an output value
for the cell (ie. it is firing) then the susceptibility of the dendrite is
equal to that of the input value.
Reinforcement
This is the SVRule used to compute
changes in STW. Typically it is set to the value of some chemical. This chemical
is adjusted using the various receptors/emitters available in a norn. The
STW is increased based upon the value computed by this SVRule modulated by
the value of the susceptibility SVrule. In the example above it means that
STW is adjusted when the amount of brain lobe chemical 0 changes in this norn.
The relationship between STW, LTW, susceptibility and reinforcement is shown
by the following formulae that seem to be used to calculate the values:
If this is checked then the strength value of the dendrite connection will
be increased by the value indicated in the slider (from 0 through to 255)
if the result of the given SVRule expression
is greater than zero. The SVRule given above is 'Suscept:TRUE:chem0:TRUE:STW'.
I believe that this expression means that if the susceptibility of the connection
is greater than zero and chemical 0 is greater than zero then the value of
the expression is STW. So the dendrite will be strengthened if it is susceptible
to reinforcement, has chemical 0 and the STW is greater than zero.
Lose Every
If this is checked then the strength value of the dendrite connection will
be decreased by the value indicated in the slider (from 0 through to 255)
if the result of the given SVRule expression
is greater than zero. The SVRule given above is 'chem 2'. So
if the value of chemical 2 is greater than zero then the strength of the dendrite
will be reduced.
Dendrite Overview
This is a brief outline of how dendrite values are calculated mostly obtained
from the technical papers available at the cyberlife web site. I'll add to this
and hopefully provide some programs that demonstrate how things work to make
it easier to understand. The following is quoted from one of the technical papers
by Steve Grand, et al:
After disturbance, both the STW and the LTW relax exponentially towards
other, with the LTW being the slower. The STW therefore reacts strongly to individual
reinforcement episodes, while the LTW effectively computes a moving average
of many STW disturbances: if a creature meets with situation X and finds that
its chosen course of action was undesirable, then it should immediately be strongly
disinclined to repeat the action, especially as many of the incentives to do
so may still be present. However, situation X may not always be as bad as first
experience suggests, and so the creature€s long-term interpretation should be
less sweeping
Dendritic Migration. The initial wiring is defined at birth according
to a small number of genetic rules. Generally, neurones attempt to connect from
one lobe to another in a direct spatial mapping, with multiple dendrites fanning
out in a specified distribution to either side of the optimum source cell (see
Figure 1). After birth, however, individual dendrites may migrate and form new
connections (always within the same source lobe). Periodically, a Strength value
change is computed for each synapse using SVRules, often in response to chemical
changes. If the Strength falls to zero, the dendrite disconnects and follows
the appropriate rule about how to find a new connection. These migration rules
were chosen in order to fulfill the requirements for the initial brain model.