CDR

Brain Lobes

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.

The formula for calculation of STW appears to be:

stw = ltw + ( susceptibility / 255 ) * reinforcement

LTW

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:

dendrite value = source cell * ( stw / 255 )
stw = ltw + ( susceptibility / 255 ) * reinforcement

Strength Adjustment
Gain Every
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.