home  overview  graphs  examples  reference 
link  lab  logic  drawing  world  network  cell  channel  chemistry  standard  env 

contents   previous   next

FeatureDiscretizer

Progressive creation of a feature map of the input space.

As new vectors come in, certain of them are selected to be features in the input space, and assigned indexes starting with 0 for the first vector. Successive vectors are then compared with these features for similarity. If a match is found, the discretizer exports the matching index. Otherwise a new feature is created.

The vectors on the input port and truncated to nDimension elements. Each new vector is compared to existing vectors using an N2 norm (normal Euclidean distance) to see which it is closest to. If the closest is within similarityRange then that vector's index is the current exported feature. If no existing features are within the similarity range, then the vector is recorded as a new feature.

The coreSize is a user set parameter allowing some optimization of the comparison: if a new vector is within coreSize of the current feature, then it is assumed to belong to the same feature, and the comparison stage is skipped. For this to be correct, the coreSize should be significantly smaller than the similarity range by a factor depending on the dimensionality of the input (for 1-D input it can be up to half the similarity range). There is no problem with small or zero core sizes - the results are the same, but the calculation is less efficient.

On side effect of this feature discretization algorithm is that during initial exploration of the input space, features persist right up to their similarity range. but once a new feature is created, it adopts part of the space which had previously been assigned to the earlier feature. This means, for example, that place fields in initial exploration of an environment will overlap, but once the space has been mapped, each point will be uniquely associated with a single feature.

The discretizer produces a regular spiking output at spikeFrequency where the channel index of the spikes is the index of the current feature.

The feature discretizer also works in reverse. Feature vectors can be read from the vector output port. Which feature is exposed is set by sending spikes to the "feature index spike in" port with the index of the desired feature. This provides, for example, the facility for "desired location" navigation around a previously discretized environment, thereby avoiding the need for circuitry to generate more realistic motor output.