public interface NEFEnsemble extends DecodableEnsemble
A group of Nodes that represent a scalar, vector, or function, as characterized in Eliasmith & Anderson's Neural Engineering Framework.
All Nodes in an NEFEnsemble must be NEFNodes.
VisiblyMutable.Event, VisiblyMutable.Listener, VisiblyMutable.NameChangeEvent, VisiblyMutable.NodeRemovedEvent
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
X
Standard name for the Origin corresponding to the decoded estimate of the state variables
that Ensemble represents (X is a standard name for state variables in state-space models).
|
Modifier and Type | Method and Description |
---|---|
BiasOrigin |
addBiasOrigin(Origin existing,
int numInterneurons,
java.lang.String name,
boolean excitatory)
Adds a BiasOrigin, which operates in parallel with an existing Origin, such that the effective weights of the
two origins together are all of the same sign (as is normally the case with synaptic weights in the brain).
|
BiasTermination[] |
addBiasTerminations(DecodedTermination baseTermination,
float interneuronTauPSC,
float[][] biasDecoder,
float[][] functionDecoders)
Adds BiasTerminations, which are meant to receive projections from BiasOrigins.
|
Origin |
addDecodedOrigin(java.lang.String name,
Function[] functions,
java.lang.String nodeOrigin)
Adds an Origin that corresponds to a decoding of the activities of Nodes in this Ensemble.
|
Termination |
addDecodedTermination(java.lang.String name,
float[][] matrix,
float[] tfNumerator,
float[] tfDenominator,
float passthrough,
boolean isModulatory)
As above but with arbitrary single-input-single-output PSC dynamics.
|
Termination |
addDecodedTermination(java.lang.String name,
float[][] matrix,
float tauPSC,
boolean isModulatory)
Adds a new Termination into this Ensemble, at which information is to be received
in the form of decoded state variables rather than spikes, etc.
|
int |
getDimension() |
float[][] |
getEncoders() |
NEFEnsembleFactory |
getEnsembleFactory() |
int |
getNodeCount() |
float[] |
getRadii() |
void |
releaseMemory()
Releases any memory that can be freed.
|
void |
setEnsembleFactory(NEFEnsembleFactory factory)
Gives the ensemble a reference to the factory used to created it (useful for adding more neurons later)
|
void |
setNodeCount(int value) |
addDecodedOrigin, addDecodedOrigin, doneOrigins, removeDecodedOrigin, removeDecodedTermination
getPlasticityInterval, setPlasticityInterval
collectSpikes, getNodes, getSpikePattern, isCollectingSpikes, redefineNodes, stopProbing
clone, getChildren, getDocumentation, getName, getOrigin, getOrigins, getTermination, getTerminations, notifyAboutDeletion, run, setDocumentation, setName, toScript
reset
getMode, setMode
addChangeListener, removeChangeListener
getHistory, listStates
static final java.lang.String X
int getDimension()
float[][] getEncoders()
float[] getRadii()
Origin addDecodedOrigin(java.lang.String name, Function[] functions, java.lang.String nodeOrigin) throws StructuralException
name
- Name of decodingfunctions
- Functions that define the decoding (one function for each dimension of output).
All functions must have an input dimension equal to the dimension of this NEFEnsemble.nodeOrigin
- Name of the Node-level Origins from which this Ensemble-level Origin is derived
(often Neuron.AXON)StructuralException
- if functions do not all have the same input dimension as the
dimension of this ensembleBiasOrigin addBiasOrigin(Origin existing, int numInterneurons, java.lang.String name, boolean excitatory) throws StructuralException
existing
- An existing Origin on this NEFEnsemblenumInterneurons
- Number of interneuronsname
- Name of BiasOrigin (name of associated interneuron ensemble is also derived from this)excitatory
- If true, effective weights will be positive; if false they will be negative (inhibitory)StructuralException
- if given Origin is not a DecodedOrigin or if there is a construction problemTermination addDecodedTermination(java.lang.String name, float[][] matrix, float tauPSC, boolean isModulatory) throws StructuralException
name
- Unique name for this Termination (in the scope of this Ensemble)matrix
- Transformation matrix which defines a linear map on incoming information,
onto the space of vectors that can be represented by this NEFEnsemble. The first dimension
is taken as matrix rows, and must have the same length as the Origin that will be connected
to this Termination. The second dimension is taken as matrix columns, and must have the same
length as the encoders of this NEFEnsemble. TODO: this is transposed?tauPSC
- Time constant of post-synaptic current decay (all Terminations have
this property but it may have slightly different interpretations depending other properties
of the Termination).isModulatory
- If true, inputs to this Termination do not drive Nodes in the Ensemble directly
but may have modulatory influences (eg related to plasticity). If false, the transformation matrix
output dimension must match the dimension of this Ensemble.StructuralException
- if given transformation matrix is not a matrixTermination addDecodedTermination(java.lang.String name, float[][] matrix, float[] tfNumerator, float[] tfDenominator, float passthrough, boolean isModulatory) throws StructuralException
name
- Unique name for this Termination (in the scope of this Ensemble)matrix
- Transformation matrix which defines a linear map on incoming informationtfNumerator
- Coefficients of transfer function numerator (see CanonicalModel.getRealization(...)
for details)tfDenominator
- Coefficients of transfer function denominatorpassthrough
- How much should passthrough...?isModulatory
- If true, inputs to this Termination do not drive Nodes in the Ensemble directly
but may have modulatory influences (eg related to plasticity). If false, the transformation matrix
output dimension must match the dimension of this Ensemble.StructuralException
- if given transformation matrix is not a matrix or there is a problem
with the transfer functionBiasTermination[] addBiasTerminations(DecodedTermination baseTermination, float interneuronTauPSC, float[][] biasDecoder, float[][] functionDecoders) throws StructuralException
baseTermination
- The Termination that is to be biased (so that projections to it consist of weights of a single sign)interneuronTauPSC
- Time constant of post-synaptic current decay of inhibitory termination from interneurons onto this ensemblebiasDecoder
- The decoding weights of the associated BiasOriginfunctionDecoders
- The decoding vectors of the BiasOrigin's associated base originStructuralException
- if can't be addedvoid setEnsembleFactory(NEFEnsembleFactory factory)
factory
- Factory that created the ensembleNEFEnsembleFactory getEnsembleFactory()
int getNodeCount()
void setNodeCount(int value) throws StructuralException
value
- number of desired neuronsStructuralException
- if we can't add them or there is no factoryvoid releaseMemory()