ca.nengo.model.plasticity.impl
Class AbstractSpikeLearningFunction

java.lang.Object
  extended by ca.nengo.math.impl.AbstractFunction
      extended by ca.nengo.model.plasticity.impl.AbstractSpikeLearningFunction
All Implemented Interfaces:
Function, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
InSpikeErrorFunction, OutSpikeErrorFunction

public abstract class AbstractSpikeLearningFunction
extends AbstractFunction

Defines the input available to a spike-based learning rule function.

Author:
Trevor Bekolay
See Also:
Serialized Form

Field Summary
protected  float myLearningRate
           
 
Fields inherited from class ca.nengo.math.impl.AbstractFunction
DIMENSION_PROPERTY
 
Constructor Summary
AbstractSpikeLearningFunction()
          Ensures that the function is of the correct dimension.
 
Method Summary
 void afterDOmega(boolean[] spiking)
          A function that is called after deltaOmega is evaluated.
 void beforeDOmega(boolean[] spiking)
          A function that is called before deltaOmega is evaluated.
 AbstractSpikeLearningFunction clone()
           
protected abstract  float deltaOmega(float timeSinceDifferent, float timeSinceSame, float currentWeight, float modInput, int postIndex, int preIndex, int dim)
          A learning rule that defines how the connection weight changes when a particular spike happens (either presynaptic spike or postsynaptic).
 float getLearningRate()
           
 void initActivityTraces(int postLength, int preLength)
          Initializes activity traces in the rule, if any exist.
 float map(float[] from)
          Calls deltaOmega.
 void setLearningRate(float rate)
           
 
Methods inherited from class ca.nengo.math.impl.AbstractFunction
getDimension, multiMap
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

myLearningRate

protected float myLearningRate
Constructor Detail

AbstractSpikeLearningFunction

public AbstractSpikeLearningFunction()
Ensures that the function is of the correct dimension.

Method Detail

map

public float map(float[] from)
Calls deltaOmega.

Specified by:
map in interface Function
Specified by:
map in class AbstractFunction
Parameters:
from - Must have same length as getDimension()
Returns:
result of function operation on arg
See Also:
Function.map(float[])

deltaOmega

protected abstract float deltaOmega(float timeSinceDifferent,
                                    float timeSinceSame,
                                    float currentWeight,
                                    float modInput,
                                    int postIndex,
                                    int preIndex,
                                    int dim)
A learning rule that defines how the connection weight changes when a particular spike happens (either presynaptic spike or postsynaptic).

Parameters:
timeSinceDifferent - The amount of time passed since the last spike of the different type -- that is, if this is an onInSpike function, it would be the amount of time since the last out spike
timeSinceSame - The amount of time passed since the last spike of the same type -- that is, if this is an onInSpike function, it would be the amount of time since the last in spike
currentWeight - The current connection weight between the pre and post neurons
modInput - The modulatory input, for this particular dimension (see dim)
postIndex - The neuron index in the post-synaptic population
preIndex - The neuron index in the pre-synaptic population
dim - The dimension of the modulatory input

beforeDOmega

public void beforeDOmega(boolean[] spiking)
A function that is called before deltaOmega is evaluated. Useful if certain variables or activity traces need to be updated.

Parameters:
spiking - An array representing whether or not neurons in the population of interest are spiking.

afterDOmega

public void afterDOmega(boolean[] spiking)
A function that is called after deltaOmega is evaluated. Useful if certain variables or activity traces need to be updated.

Parameters:
spiking - An array representing whether or not neurons in the population of interest are spiking.

initActivityTraces

public void initActivityTraces(int postLength,
                               int preLength)
Initializes activity traces in the rule, if any exist.


clone

public AbstractSpikeLearningFunction clone()
                                    throws java.lang.CloneNotSupportedException
Specified by:
clone in interface Function
Overrides:
clone in class AbstractFunction
Throws:
java.lang.CloneNotSupportedException
See Also:
Object.clone()

setLearningRate

public void setLearningRate(float rate)
Parameters:
rate - New learning rate

getLearningRate

public float getLearningRate()