Package topo :: Package learningfns :: Module basic :: Class Covariance
[hide private]
[frames] | no frames]

Class Covariance

source code

                                  object --+        
                                           |        
base.parameterizedobject.ParameterizedObject --+    
                                               |    
                base.functionfamilies.LearningFn --+
                                                   |
                                                  Covariance

Covariance learning rule supporting either input or unit thresholds.

As presented by Dayan and Abbott (2001), covariance rules allow either potentiation or depression of the same synapse, depending on an activity level. By default, this implementation follows Dayan and Abbott equation 8.8, with the unit_threshold determining the level of postsynaptic activity (activity of the target unit), below which LTD (depression) will occur.

If you wish to use an input threshold as in Dayan and Abbott equation 8.9 instead, set unit_threshold to zero and change input_threshold to some positive value instead. When both thresholds are zero this rule degenerates to the standard Hebbian rule.

Requires some form of output_fn normalization for stability.



Nested Classes [hide private]

Inherited from base.parameterizedobject.ParameterizedObject: __metaclass__

Instance Methods [hide private]
 
__call__(self, input_activity, unit_activity, weights, single_connection_learning_rate)
Apply this learning function given the input and output activities and current weights.
source code

Inherited from base.parameterizedobject.ParameterizedObject: __getstate__, __init__, __repr__, __setstate__, __str__, as_uninitialized, debug, defaults, force_new_dynamic_value, get_param_values, get_value_generator, inspect_value, message, print_param_values, script_repr, verbose, warning

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__

Class Methods [hide private]

Inherited from base.parameterizedobject.ParameterizedObject: params, print_param_defaults

Class Variables [hide private]
  unit_threshold = <topo.base.parameterclasses.Number object at ...
Threshold between LTD and LTP, applied to the activity of this unit.
  input_threshold = <topo.base.parameterclasses.Number object at...
Threshold between LTD and LTP, applied to the input activity.

Inherited from base.parameterizedobject.ParameterizedObject: name, print_level

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__call__(self, input_activity, unit_activity, weights, single_connection_learning_rate)
(Call operator)

source code 

Apply this learning function given the input and output activities and current weights.

Must be implemented by subclasses.

Overrides: base.functionfamilies.LearningFn.__call__
(inherited documentation)

Class Variable Details [hide private]

unit_threshold

Threshold between LTD and LTP, applied to the activity of this unit.
Value:
Number(default= 0.5, bounds= (0, None), doc= "Threshold between LTD and LTP, appli\
ed to the activity of this unit.")

input_threshold

Threshold between LTD and LTP, applied to the input activity.
Value:
Number(default= 0.0, bounds= (0, None), doc= "Threshold between LTD and LTP, appli\
ed to the input activity.")