Excitation propagation model

De Assothink Wiki
Aller à la navigation Aller à la recherche

Definition

The excitation propagation model (EPM) is a component in the Assothink global model.

It is the dynamic part of the global model.

It defines how excitation is propagated across concepts during propagation cycles.

It is described in this page.

What EPM does NOT cover

This page is about a propagation model. It describes how the jelly works, but not how it has been built. The jelly construction is described elsewhere, in the resourceBuilder part of Assothink.

This page is about a propagation model on concepts. It does not handle words (percepts, variants, linguistic issues...).

This page is about a model. It does not discuss implementations modes (hardware and software issues) which are discussed elsewhere. All assothink architectures are typically organized to implement the EPM.

Components: jelly, nodes and links

The EPM describes nodes and links.

 A large set of connected nodes and links form a jelly.

Nodes and links are all excitable.

The EPM is controlled by an EPM controller.

Controller

The EPM controller is a separate application (most probably running on a separate computer), able to drive the EPM engine.

Nodes

One may think of a node as a excitable representation of a concept.

One may think of a node as a (far) equivalent of a neuron.

The formal representation of a node includes:

  • an excitation level, highly dynamic (excit)
  • a set of incoming links (inLinks[i])
  • a set of outgoing links (outLinks[i])
  • a set of connecting links (conLinks[i])
  • an active flag (active)

There is at least 1 incoming link.

There is at least 1 outgoing link.

Nodes know (are in touch with) links, only links. Nodes do not know directly other nodes.

Nodes are known (accessible) by components external to the EPM. These external components may

  • read node excitation levels
  • modify excitation levels using external signals

Links

One may think of a link as something linking concepts.

One may think of a node as a (far) equivalent of an axone or a dendritis.

The formal representation of a link includes:

  • an excitation level, highly dynamic (excit)
  • a permeability (value from 0 to 1), static of slowly dynamic (permea)
  • a signal (outgoing) (signal)
  • an incoming node (inNode)
  • an outgoing node (outNode)
  • a set of connecting nodes (conNodes[i])

Link are defined statically: their definition and values are not modified during or between cycles. Permeability figures are occasionnaly updated, but only when cycles are suspended or not started.

A link is fuzzy when its permeability is non zero.

A link is qualified when teh set of connecting nodes is not empty.

A link has to be either fuzzy or qualified. It may be both.

Links are nit bidirectionnal. It is possible to have one link from node A to node B, and another link from node B to node A: the two links are separated and independent.

Links know (are in touch with) nodes, only nodes. Links do not know directly other links.

Links are normally not directly known by components external to the EPM.

Excitation

Excitation values are scalar.

They range from 0 to 1.

The excitation is never negative.

The excitation goes up to (approximatively) 1, where it cannot grow (saturation effect).

Permeability rules

Permeability figures are positive or null.

Given all outgoing links of a given node, the sum of their permeability values is 1.

Note : For practical reasons linked to data structure, permeabilities are often represented by integer values ranging from 1 to 16384, i.e. 16384 times their real value.

External excitation source

As a side component of the EPM, nodes excitation may be modified by external sources.

This is discussed in EPM external input.

Many EPM genomes are possible

An EPM includes various functions and parameters that may be arbitrarely chosen, although they must satisfy some constraints.

This define the qualitative behaviour of the EPM, named EPM genome.

As a result numerous EPMs are allowed and should be tested.

Parameters

Some numerical (real values) parameters affect the behavious of the EPM

  • fuzzy propagation factor (fuzzy)
  • node (excitation) erosion factor (nodeErosion)
  • link (excitation) erosion factor (linkErosion)
  • average node excitation value (excAver)
  • minimal node excitation value (excMin)
  • wake up signal minimal value (excUp)

The use and meaning of these parameters are understood with the propagation cycle description (below).

Functions

The functions (used in the propagation cycle, see below) are:

  • The node excitation rule Fne()
  • The link excitation rule Fle()
  • The outgoing signal rule Fos()

The combined effect of excit and inNode.excit in Fos() is an interesting point. This combination might be something like

f(a,b) = a.b.(a+b)/(a.a+b.b)

which implies:

f(a,b) = f(b,a)
f(a,0) = f(0,b) = 0
f(a,a) = a
f(a,b) < max(a,b)

Examples of EPM genome

Here are EPM genome examples.

Propagation cycle

The propagation cycle includes several steps performed cyclically.

Step 1 external input

Node excitation are modified (increased, possibly decreased) by external sources.

During this step, the active flag is turned on for any node receiving an external input higher than excUp.

Step 2 node excitation update

During this step, node excitation are updated according to signal from incoming links.

This is only performed for nodes with active flag on.

(active node) excit(t+dt) = nodeErosion * excit(t) + Fne(inLinks[i].signal, ...i...)

Step 3 node excitation normalization

Node excitation are all modified by the same scaling factor, in order to reach a target value for the average node excitation level (averExc).

After the normalization, this condition is roughly satisfied (sum is the total number of nodes in the jelly).

(node) sum(excit) / sum() == averExc

Saturation effects are also handled: the resulting node excitation may not exceed (approximatively) 1.

The active flag is updated for all nodes (according to the comparison of their excit value with the excMin value.

(node) active = (excit > excMin)

Step 4 link excitation update

Foar each link having connecting nodes, the excitation level is updated according to excitation levels from connecting nodes

(link) excit(t+dt) = linkErosion * excit(t) + Fle(conLinks[i].excit, ...i...)

During this step,  saturation effects are also handled: the resulting link excitation may not exceed (approximatively) 1.

Step 5 signal computation

The outgoing signal is built from local excitation, incoming node excitation and local permeability

(link) signal = Fos(excit,inNode.excit,permea,fuzzy)

When the signal generated exceed excUp, the active flag of the outNode is turned on.

Combining and optimizing step 4 and 5

Step 4 and 5 may be grouped.

Tu reduce workload, only links whose incoming node has active flag on have to be processed (inNode.active)

This is specially important for serialized implementations (see remarks below).

Discussions and comments

Sizing

A good jelly should include 105... 106... 107... nodes, and 106... 107... 108 links.

Asymptotic effect

Nodes and links exchange signals and see their excitation levels evolve.

After a large number of cycles, one may expect to see an asymptotic state stabilized.

This is especially true if there is no more external input, or when external input is itself stable.

Another hypothesis would be to see chaotic effects. Instead of an asymptotic state, the system would show a sequence of very different states, probably cycling. But this should be considered as a pathologic situation for an EPM, resulting from bad choices for parameters or functions.

Focus and resonance effect

At a given time, most nodes and most links have few or no excitation.

A limited number of nodes and links are highly excited, and their excitation is maintained by resonance effect in the jelly network.

As a result only a small proportion of the nodes and links perform significant computations (signal handling) whereas most of them mostly handle operations which may be considered as 0+0=0.

The proportion of active nodes is likely to be 10-2, 10-3 or maybe even less.

Implementation and focus effect

The focus effect should be considered as critical when analyzing possible implementations.

On highly parallel systems, with millions of simple processor units working for 1 node or 1 link, the focus effect has no significant impact on speed, because inactive nodes and links doe not slow down active nodes and active links. On such systems, the active flag described above is useless: it may be removed from the model, and all nodes are assumed to be permanently active.

On serialized systems (one of few CPUs), and on serialized emulation software, node cycles and link cycles are processed sequentially. Thus inactive nodes and links might require 99%... 99.9% of the processing power, and this has a dramatic effect on cycling speed. In this case it is necessary to set up prioritization rules for nodes and links, in order to give more processing capacity to active nodes and links. This is especially true for steps 4 and 5, occuring within links.

Emulation software

Emulation software is just one of various possible architectures.

The emulation library provided for this is in epm.java and in epm.c.

They both strictly implement the above computations, and they also include monitoring functions and reporting functions.

The two programs are very short, very simple, and very similar.

Their purpose is speed (cycle frequency in Hz).

In C, nodes and links are typedef struct.

In Java, nodes and links are classes.