Package topo :: Package sheets :: Module lissom :: Class LISSOM
[hide private]
[frames] | no frames]

Class LISSOM

source code

                                  object --+                        
                                           |                        
base.parameterizedobject.ParameterizedObject --+                    
                                               |                    
                  base.simulation.EventProcessor --+                
                                                   |                
                                      object --+   |                
                                               |   |                
          base.sheetcoords.SheetCoordinateSystem --+                
                                                   |                
                                    base.sheet.Sheet --+            
                                                       |            
                         base.projection.ProjectionSheet --+        
                                                           |        
                                             base.cf.CFSheet --+    
                                                               |    
                                         JointNormalizingCFSheet --+
                                                                   |
                                                                  LISSOM
Known Subclasses:
JointScaling, optimized.LISSOM_Opt, slissom.SLISSOM

A Sheet class implementing the LISSOM algorithm (Sirosh and Miikkulainen, Biological Cybernetics 71:66-78, 1994).

A LISSOM sheet is a JointNormalizingCFSheet slightly modified to enforce a fixed number of settling steps. Settling is controlled by the tsettle parameter; once that number of settling steps has been reached, an external input is required before the sheet will activate again.



Nested Classes [hide private]

Inherited from base.parameterizedobject.ParameterizedObject: __metaclass__

Instance Methods [hide private]
 
__init__(self, **params)
Initialize this object as an EventProcessor, then also as a SheetCoordinateSystem with equal xdensity and ydensity.
source code
 
start(self)
Called by the simulation when the EventProcessor is added to the simulation.
source code
 
input_event(self, conn, data)
Accept input from some sheet.
source code
 
process_current_time(self)
Pass the accumulated stimulation through self.output_fn and send it out on the default output port.
source code
 
printwts(self, x, y) source code
 
state_push(self, **args)
Save the current state of this sheet to an internal stack.
source code
 
state_pop(self, **args)
Pop the most recently saved state off the stack.
source code

Inherited from JointNormalizingCFSheet: compute_joint_norm_totals, learn

Inherited from JointNormalizingCFSheet (private): _normalize_weights

Inherited from base.cf.CFSheet: release_unit_view, update_unit_view

Inherited from base.projection.ProjectionSheet: activate, override_plasticity_state, present_input, projections, restore_plasticity_state

Inherited from base.sheet.Sheet: activity_len, release_sheet_view, row_col_sheetcoords, sheet_cols, sheet_offset, sheet_rows

Inherited from base.simulation.EventProcessor: script_repr, send_output

Inherited from base.simulation.EventProcessor (private): _src_connect

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

Inherited from base.sheetcoords.SheetCoordinateSystem: bounds2slice, closest_cell_center, matrix2sheet, matrixidx2sheet, sheet2matrix, sheet2matrixidx, sheetcoordinates_of_matrixidx, slice2bounds

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]
  mask_init_time = <topo.base.parameterclasses.Integer object at...
Determines when a new mask is initialized in each new iteration.
  tsettle = <topo.base.parameterclasses.Integer object at 0xa8f2...
Number of times to activate the LISSOM sheet for each external input event.
  continuous_learning = <topo.base.parameterclasses.BooleanParam...
Whether to modify the weights after every settling step.
  output_fn = <topo.base.parameterclasses.ClassSelectorParameter...
Output function to apply (if apply_output_fn is true) to this Sheet's activity.
  precedence = <topo.base.parameterclasses.Number object at 0xa8...
Allows a sorting order for Sheets, e.g.
  post_initialization_weights_output_fn = <topo.base.parametercl...
Weights output_fn which can be set after an initial normalization step

Inherited from base.cf.CFSheet: measure_maps

Inherited from base.projection.ProjectionSheet: apply_output_fn, dest_ports, mask, src_ports

Inherited from base.sheet.Sheet: layout_location, nominal_bounds, nominal_density, plastic

Inherited from base.parameterizedobject.ParameterizedObject: name, print_level

Properties [hide private]

Inherited from base.sheetcoords.SheetCoordinateSystem: shape, xdensity, ydensity

Inherited from object: __class__

Method Details [hide private]

__init__(self, **params)
(Constructor)

source code 

Initialize this object as an EventProcessor, then also as a SheetCoordinateSystem with equal xdensity and ydensity.

sheet_views is a dictionary that stores SheetViews, i.e. representations of the sheet for use by analysis or plotting code.

Overrides: base.projection.ProjectionSheet.__init__

start(self)

source code 

Called by the simulation when the EventProcessor is added to the simulation.

If an EventProcessor needs to have any code run when it is added to the simulation, the code can be put into this method in the subclass.

Overrides: JointNormalizingCFSheet.start

input_event(self, conn, data)

source code 
Accept input from some sheet. Call .present_input() to compute the stimulation from that sheet.
Overrides: base.projection.ProjectionSheet.input_event
(inherited documentation)

process_current_time(self)

source code 
Pass the accumulated stimulation through self.output_fn and send it out on the default output port.
Overrides: base.projection.ProjectionSheet.process_current_time

state_push(self, **args)

source code 

Save the current state of this sheet to an internal stack.

This method is used by operations that need to test the response of the sheet without permanently altering its state, e.g. for measuring maps or probing the current behavior non-invasively. By default, only the activity pattern of this sheet is saved, but subclasses should add saving for any additional state that they maintain, or strange bugs are likely to occur. The state can be restored using state_pop().

Note that Sheets that do learning need not save the values of all connection weights, if any, because plasticity can be turned off explicitly. Thus this method is intended only for shorter-term state.

Overrides: base.sheet.Sheet.state_push
(inherited documentation)

state_pop(self, **args)

source code 

Pop the most recently saved state off the stack.

See state_push() for more details.

Overrides: base.sheet.Sheet.state_pop
(inherited documentation)

Class Variable Details [hide private]

mask_init_time

Determines when a new mask is initialized in each new iteration.

The mask is reset whenever new input comes in. Once the activation_count (see tsettle) reaches mask_init_time, the mask is initialized to reflect the current activity profile.

Value:
Integer(default= 5, bounds= (0, None), doc= """ 
       Determines when a new mask is initialized in each new iteration.

       The mask is reset whenever new input comes in.  Once the
       activation_count (see tsettle) reaches mask_init_time, the mask
       is initialized to reflect the current activity profile.""")

tsettle

Number of times to activate the LISSOM sheet for each external input event.

A counter is incremented each time an input is received from any source, and once the counter reaches tsettle, the last activation step is skipped so that there will not be any further recurrent activation. The next external (i.e., afferent or feedback) event will then start the counter over again.

Value:
Integer(default= 8, bounds= (0, None), doc= """
       Number of times to activate the LISSOM sheet for each external input event.
       
       A counter is incremented each time an input is received from any
       source, and once the counter reaches tsettle, the last activation
       step is skipped so that there will not be any further recurrent
       activation.  The next external (i.e., afferent or feedback)
       event will then start the counter over again.""")

continuous_learning

Whether to modify the weights after every settling step. If false, waits until settling is completed before doing learning.
Value:
BooleanParameter(default= False, doc= """
       Whether to modify the weights after every settling step.
       If false, waits until settling is completed before doing learning.""")

output_fn

Output function to apply (if apply_output_fn is true) to this Sheet's activity.
Value:
ClassSelectorParameter(OutputFn, default= PiecewiseLinear(lower_bound= 0.1, upper_\
bound= 0.65))

precedence

Allows a sorting order for Sheets, e.g. in the GUI.
Value:
Number(0.6)

post_initialization_weights_output_fn

Weights output_fn which can be set after an initial normalization step
Value:
ClassSelectorParameter(CFPOutputFn, default= None, doc= """
        Weights output_fn which can be set after an initial normalization step""")