ca.nengo.model.plasticity.impl
Class InSpikeErrorFunction

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

public class InSpikeErrorFunction
extends AbstractSpikeLearningFunction

A learning function that uses information from the ensemble to modulate the rate of synaptic change.

Author:
Trevor Bekolay
See Also:
Serialized Form

Field Summary
 
Fields inherited from class ca.nengo.model.plasticity.impl.AbstractSpikeLearningFunction
myLearningRate
 
Fields inherited from class ca.nengo.math.impl.AbstractFunction
DIMENSION_PROPERTY
 
Constructor Summary
InSpikeErrorFunction(float[] gain, float[][] encoders)
          Requires information from the post population to modulate learning.
InSpikeErrorFunction(float[] gain, float[][] encoders, float a2Minus, float a3Minus, float tauMinus, float tauX)
          Requires information from the post population to modulate learning.
InSpikeErrorFunction(NEFEnsembleImpl ens)
          Extracts information from the post population to modulate learning.
 
Method Summary
 void afterDOmega(boolean[] preSpiking)
          A function that is called after deltaOmega is evaluated.
 void beforeDOmega(boolean[] postSpiking)
          A function that is called before deltaOmega is evaluated.
 InSpikeErrorFunction clone()
           
protected  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).
 void initActivityTraces(int postLength, int preLength)
          Initializes activity traces in the rule, if any exist.
 
Methods inherited from class ca.nengo.model.plasticity.impl.AbstractSpikeLearningFunction
getLearningRate, map, setLearningRate
 
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
 

Constructor Detail

InSpikeErrorFunction

public InSpikeErrorFunction(float[] gain,
                            float[][] encoders,
                            float a2Minus,
                            float a3Minus,
                            float tauMinus,
                            float tauX)
Requires information from the post population to modulate learning.

Parameters:
gain - Gain (scale) of the neurons in the post population
encoders - Encoders (phi tilde) of the neurons in the post population
a2Minus - Amplitude constant (see Pfister & Gerstner 2006)
a3Minus - Amplitude constant (see Pfister & Gerstner 2006)
tauMinus - Time constant (see Pfister & Gerstner 2006)
tauX - Time constant (see Pfister & Gerstner 2006)

InSpikeErrorFunction

public InSpikeErrorFunction(float[] gain,
                            float[][] encoders)
Requires information from the post population to modulate learning.

Parameters:
gain - Gain (scale) of the neurons in the post population
encoders - Encoders (phi tilde) of the neurons in the post population

InSpikeErrorFunction

public InSpikeErrorFunction(NEFEnsembleImpl ens)
Extracts information from the post population to modulate learning.

Parameters:
ens - Post population
Method Detail

initActivityTraces

public void initActivityTraces(int postLength,
                               int preLength)
Description copied from class: AbstractSpikeLearningFunction
Initializes activity traces in the rule, if any exist.

Overrides:
initActivityTraces in class AbstractSpikeLearningFunction

beforeDOmega

public void beforeDOmega(boolean[] postSpiking)
Description copied from class: AbstractSpikeLearningFunction
A function that is called before deltaOmega is evaluated. Useful if certain variables or activity traces need to be updated.

Overrides:
beforeDOmega in class AbstractSpikeLearningFunction
Parameters:
postSpiking - An array representing whether or not neurons in the population of interest are spiking.

deltaOmega

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

Specified by:
deltaOmega in class AbstractSpikeLearningFunction
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
See Also:
AbstractSpikeLearningFunction.deltaOmega(float,float,float,float,int,int,int)

afterDOmega

public void afterDOmega(boolean[] preSpiking)
Description copied from class: AbstractSpikeLearningFunction
A function that is called after deltaOmega is evaluated. Useful if certain variables or activity traces need to be updated.

Overrides:
afterDOmega in class AbstractSpikeLearningFunction
Parameters:
preSpiking - An array representing whether or not neurons in the population of interest are spiking.

clone

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