Main Page | Namespace List | Alphabetical List | Class List | Directories | File List | Class Members | File Members

STDP1Synapse Class Reference

#include <STDP1Synapse.h>

List of all members.

Public Member Functions

 STDP1Synapse ()
 ~STDP1Synapse ()
void calculateFinalState ()
const string * getDescription ()
string getMonitoringInfo ()
MonitorData * getMonitoringData ()
short getShortWeight ()
double getWeight ()
bool parametersChanged ()
void processSpike ()
void updateWeight (double membranePotential, double calciumConc)
bool testFunction ()

Private Member Functions

void calculateWeight (bool spikeReceived)
bool checkParameters ()
void normaliseWeight ()
void printParameters ()

Private Attributes

int spikeTimeStep
double currentTime
double lastUpdateTime
bool oldLearningMode

Static Private Attributes

static const string calciumThreshUpLow
static const string calciumThreshUpHigh
static const string calciumThreshDownLow
static const string calciumThreshDownHigh
static const string weightChangeThreshold
static const string weightIncreaseAmnt
static const string weightDecreaseAmnt
static const string driftThreshold
static const string positiveDrift
static const string negativeDrift
static const string maximumDrift
static const string minimumDrift
static const string learning
static const string disable


Detailed Description

Synapse based on J.M. Brader, W. Senn and S. Fusi (2006). Learning real world stimuli in a neural network with spike driven synaptic dynamics. Submitted to Neural Computation (2006). Available at: http://www.ini.unizh.ch/~fusi/papers/bsf05.pdf.

Definition at line 44 of file STDP1Synapse.h.


Constructor & Destructor Documentation

STDP1Synapse::STDP1Synapse  ) 
 

Constructor.

Definition at line 70 of file STDP1Synapse.cpp.

References lastUpdateTime, oldLearningMode, and spikeTimeStep.

STDP1Synapse::~STDP1Synapse  ) 
 

Destructor.

Definition at line 88 of file STDP1Synapse.cpp.


Member Function Documentation

void STDP1Synapse::calculateFinalState  ) 
 

Needs to be implemented by all classes inheriting from Synapse. Calls calculate weight, which updates the weight in learning mode. The weight will already have been updated if a spike has been received during this time step.

Definition at line 105 of file STDP1Synapse.cpp.

References calculateWeight(), and learning.

void STDP1Synapse::calculateWeight bool  spikeReceived  )  [private]
 

Calculates the current state of the weight. Each time step the weight drifts by a certain amount but to save calculating this all the time, it is only calculated when a spike is received or when the weights are viewed or saved or when the synapse is in full update mode. When a spike is received by this synapse we do not want to drift the weight for the current time step since the weight will be updated elsewhere, so only calculate the weight change for the intervening time steps when a spike was not received and the synapse was not updated. NOTE: This method should only be called in learning mode.

Definition at line 302 of file STDP1Synapse.cpp.

References currentTime, driftThreshold, lastUpdateTime, maximumDrift, minimumDrift, negativeDrift, normaliseWeight(), and positiveDrift.

Referenced by calculateFinalState(), getMonitoringData(), getShortWeight(), getWeight(), parametersChanged(), and processSpike().

bool STDP1Synapse::checkParameters  )  [private]
 

Check that all the necessary parameters are in the map.

Definition at line 339 of file STDP1Synapse.cpp.

References calciumThreshDownHigh, calciumThreshDownLow, calciumThreshUpHigh, calciumThreshUpLow, disable, driftThreshold, learning, maximumDrift, minimumDrift, negativeDrift, positiveDrift, printParameters(), weightChangeThreshold, weightDecreaseAmnt, and weightIncreaseAmnt.

Referenced by parametersChanged().

const string * STDP1Synapse::getDescription  ) 
 

Returns a description of this class for debugging purposes. Invoking method has the responsibility of deleting the description string.

Definition at line 113 of file STDP1Synapse.cpp.

MonitorData * STDP1Synapse::getMonitoringData  ) 
 

Returns a NeuronData structure containing a pointer to an array containing the current values of the monitored data items in the same order as they were listed in the XML file.

Definition at line 121 of file STDP1Synapse.cpp.

References calculateWeight(), and learning.

string STDP1Synapse::getMonitoringInfo  ) 
 

Returns a string containing the data that is output by this neuron in monitoring mode in XML format.

Definition at line 137 of file STDP1Synapse.cpp.

short STDP1Synapse::getShortWeight  )  [inline]
 

Returns the weight as a short between -127 and 127.

Definition at line 151 of file STDP1Synapse.cpp.

References calculateWeight(), and learning.

double STDP1Synapse::getWeight  )  [inline]
 

Returns the weight as a double.

Definition at line 173 of file STDP1Synapse.cpp.

References calculateWeight(), and learning.

void STDP1Synapse::normaliseWeight  )  [private]
 

Prevent weight from going out of range. Note that this is flooring the weight at zero rather than MIN_DOUBLE_WEIGHT because it is assumed that only excitatory connections will be subject to learning and should not turn into inhibitory connections during the learning process.

Definition at line 424 of file STDP1Synapse.cpp.

Referenced by calculateWeight(), and updateWeight().

bool STDP1Synapse::parametersChanged  ) 
 

Called when the parameters have been changed. This method checks that the new parameters in the parameter map make sense. NOTE May need to check for learning mode being switched on and off.

Definition at line 185 of file STDP1Synapse.cpp.

References calculateWeight(), checkParameters(), lastUpdateTime, learning, and oldLearningMode.

void STDP1Synapse::printParameters  )  [private]
 

Prints out the parameters for debugging.

Definition at line 433 of file STDP1Synapse.cpp.

References calciumThreshDownHigh, calciumThreshDownLow, calciumThreshUpHigh, calciumThreshUpLow, disable, driftThreshold, learning, maximumDrift, minimumDrift, negativeDrift, positiveDrift, weightChangeThreshold, weightDecreaseAmnt, and weightIncreaseAmnt.

Referenced by checkParameters().

void STDP1Synapse::processSpike  )  [inline]
 

Processes an incoming spike from the presynaptic neuron.

Definition at line 204 of file STDP1Synapse.cpp.

References calculateWeight(), disable, learning, and spikeTimeStep.

bool STDP1Synapse::testFunction  ) 
 

Debugging method called by neuron to check that all the linking is working ok.

Definition at line 226 of file STDP1Synapse.cpp.

void STDP1Synapse::updateWeight double  membranePotential,
double  calciumConc
 

Called by the neuron during learning mode when all spikes have been received. Alters the weight depending on the membrane potential and the calcium concentration.

Definition at line 234 of file STDP1Synapse.cpp.

References calciumThreshDownHigh, calciumThreshDownLow, calciumThreshUpHigh, calciumThreshUpLow, driftThreshold, learning, maximumDrift, minimumDrift, negativeDrift, normaliseWeight(), positiveDrift, spikeTimeStep, weightChangeThreshold, weightDecreaseAmnt, and weightIncreaseAmnt.


Member Data Documentation

const string STDP1Synapse::calciumThreshDownHigh [static, private]
 

Threshold of calcium concentration controlling weight change during learning.

Definition at line 80 of file STDP1Synapse.h.

Referenced by checkParameters(), printParameters(), and updateWeight().

const string STDP1Synapse::calciumThreshDownLow [static, private]
 

Threshold of calcium concentration controlling weight change during learning.

Definition at line 77 of file STDP1Synapse.h.

Referenced by checkParameters(), printParameters(), and updateWeight().

const string STDP1Synapse::calciumThreshUpHigh [static, private]
 

Threshold of calcium concentration controlling weight change during learning.

Definition at line 74 of file STDP1Synapse.h.

Referenced by checkParameters(), printParameters(), and updateWeight().

const string STDP1Synapse::calciumThreshUpLow [static, private]
 

Threshold of calcium concentration controlling weight change during learning.

Definition at line 71 of file STDP1Synapse.h.

Referenced by checkParameters(), printParameters(), and updateWeight().

double STDP1Synapse::currentTime [private]
 

The current time.

Definition at line 125 of file STDP1Synapse.h.

Referenced by calculateWeight().

const string STDP1Synapse::disable [static, private]
 

Enables the synapse to be disabled so that it does not transmit spikes.

Definition at line 117 of file STDP1Synapse.h.

Referenced by checkParameters(), printParameters(), and processSpike().

const string STDP1Synapse::driftThreshold [static, private]
 

In the absence of stimulation or weight change, the weight drifts towards the maximumDrift if it is above this threshold and towards the minimumDrift if it is below this threshold.

Definition at line 95 of file STDP1Synapse.h.

Referenced by calculateWeight(), checkParameters(), printParameters(), and updateWeight().

double STDP1Synapse::lastUpdateTime [private]
 

The time since the synapse was last updated.

Definition at line 128 of file STDP1Synapse.h.

Referenced by calculateWeight(), parametersChanged(), and STDP1Synapse().

const string STDP1Synapse::learning [static, private]
 

Whether synapse is in learning mode or not.

Definition at line 114 of file STDP1Synapse.h.

Referenced by calculateFinalState(), checkParameters(), getMonitoringData(), getShortWeight(), getWeight(), parametersChanged(), printParameters(), processSpike(), and updateWeight().

const string STDP1Synapse::maximumDrift [static, private]
 

The maximum value that the weight can drift to. This can be used to prevent an inhibitory connection drifting into an excitatory connection when it would be better for it to drift towards zero.

Definition at line 106 of file STDP1Synapse.h.

Referenced by calculateWeight(), checkParameters(), printParameters(), and updateWeight().

const string STDP1Synapse::minimumDrift [static, private]
 

The minimum value that the weight can drift to. This can be used to prevent an excitatory connection drifting into an inhibitory connection when it would be better for it to drift towards zero.

Definition at line 111 of file STDP1Synapse.h.

Referenced by calculateWeight(), checkParameters(), printParameters(), and updateWeight().

const string STDP1Synapse::negativeDrift [static, private]
 

The negative drift amount.

Definition at line 101 of file STDP1Synapse.h.

Referenced by calculateWeight(), checkParameters(), printParameters(), and updateWeight().

bool STDP1Synapse::oldLearningMode [private]
 

Need the previous learning mode to determine whether this has been switched on or off. Cannot make this static because there could be different learning modes present in the same neuron group.

Definition at line 133 of file STDP1Synapse.h.

Referenced by parametersChanged(), and STDP1Synapse().

const string STDP1Synapse::positiveDrift [static, private]
 

The positive drift amount.

Definition at line 98 of file STDP1Synapse.h.

Referenced by calculateWeight(), checkParameters(), printParameters(), and updateWeight().

int STDP1Synapse::spikeTimeStep [private]
 

Records the timestep in which the last spike was received. This is so that the learning method only applies to synapses that have received a spike in the last time step.

Definition at line 122 of file STDP1Synapse.h.

Referenced by processSpike(), STDP1Synapse(), and updateWeight().

const string STDP1Synapse::weightChangeThreshold [static, private]
 

Weight change is voltage dependent and only takes place once the post synaptic neuron's membrane potential is over a given threshold.

Definition at line 84 of file STDP1Synapse.h.

Referenced by checkParameters(), printParameters(), and updateWeight().

const string STDP1Synapse::weightDecreaseAmnt [static, private]
 

Weight increase takes place in small jumps.

Definition at line 90 of file STDP1Synapse.h.

Referenced by checkParameters(), printParameters(), and updateWeight().

const string STDP1Synapse::weightIncreaseAmnt [static, private]
 

Weight increase takes place in small jumps.

Definition at line 87 of file STDP1Synapse.h.

Referenced by checkParameters(), printParameters(), and updateWeight().


The documentation for this class was generated from the following files:
Generated on Mon Sep 3 22:35:32 2007 for STDP1 Synapse by  doxygen 1.4.4