• Github
Table of Contents
0.13.0.0
  • Welcome to PsyNeuLink
  • Basics and Primer
  • Quick Reference
  • Core
  • Library
  • Contributors Guide
  • Docs >
  • AutoAssociativeProjection
Shortcuts

AutoAssociativeProjection¶

Contents¶

  • Overview

  • Creating an AutoAssociativeProjection

  • Auto Associative Structure
    • Configurable Attributes

  • Execution

  • Class Reference

Overview¶

An AutoAssociativeProjection is a subclass of MappingProjection that acts as the recurrent projection for a RecurrentTransferMechanism. The primary difference between an AutoAssociativeProjection and a basic MappingProjection is that an AutoAssociativeProjection uses the auto and hetero parameters on the RecurrentTransferMechanism to help update its matrix: this allows for a ControlMechanism to control the auto and hetero parameters and thereby control the matrix.

AutoAssociativeProjection represents connections between nodes in a single-layer recurrent network. It multiplies the output of the RecurrentTransferMechanism by a matrix, then presents the product as input to the RecurrentTransferMechanism.

Creating an AutoAssociativeProjection¶

An AutoAssociativeProjection is created automatically by a RecurrentTransferMechanism (or its subclasses), and is stored as the recurrent_projection parameter of the RecurrentTransferMechanism. It is not recommended to create an AutoAssociativeProjection on its own, because during execution an AutoAssociativeProjection references parameters owned by its RecurrentTransferMechanism (see Execution below).

Auto Associative Structure¶

In structure, the AutoAssociativeProjection is almost identical to a MappingProjection: the only additional attributes are auto and hetero.

Configurable Attributes¶

Due to its specialized nature, most parameters of the AutoAssociativeProjection are not configurable: the variable is determined by the format of the output of the RecurrentTransferMechanism, the function is always LinearMatrix, and so on. The only configurable parameter is the matrix, configured through the matrix, auto, and/or hetero arguments for a RecurrentTransferMechanism:

  • matrix - multiplied by the input to the AutoAssociativeProjection in order to produce the output. Specification of the matrix, auto, and/or hetero arguments determines the values of the matrix; auto determines the diagonal entries (representing the strength of the connection from each node to itself) and hetero determines the off-diagonal entries (representing connections between nodes).

Execution¶

An AutoAssociativeProjection uses its matrix parameter to transform the value of its sender, and provide the result as input for its receiver, the primary InputPort of the RecurrentTransferMechanism.

Note

During execution the AutoAssociativeProjection updates its matrix and hetero parameters on the `RecurrentTransferMechanism`. (The auto and hetero parameters of the AutoAssociativeProjection simply refer to their counterparts on the RecurrentTransferMechanism as well.) The reason for putting the auto and hetero parameters on the RecurrentTransferMechanism is that this allows them to be modified by a ControlMechanism.

Class Reference¶

exception psyneulink.library.components.projections.pathway.autoassociativeprojection.AutoAssociativeError(error_value)¶
class psyneulink.library.components.projections.pathway.autoassociativeprojection.AutoAssociativeProjection(owner=None, sender=None, receiver=None, matrix=None, function=None, params=None, name=None, prefs=None, **kwargs)¶
AutoAssociativeProjection(

)

Subclass of MappingProjection that is self-recurrent on a RecurrentTransferMechanism. See MappingProjection and Projection for additional arguments and attributes.

Parameters
  • sender (OutputPort or Mechanism : default None) – specifies the source of the Projection’s input; must be (or belong to) the same Mechanism as receiver, and the length of its value must match that of the variable of the receiver.

  • receiver (InputPort or Mechanism : default None) – specifies the destination of the Projection’s output; must be (or belong to) the same Mechanism as sender, and the length of its variable must match the value of sender.

  • matrix (list, np.ndarray, np.matrix, function or keyword : default DEFAULT_MATRIX) – specifies the matrix used by function (default: LinearCombination) to transform the value of the sender into a value provided to the variable of the receiver InputPort; must be a square matrix (i.e., have the same number of rows and columns).

sender¶

the OutputPort of the Mechanism that is the source of the Projection’s input; in the case of an AutoAssociativeProjection, it is an OutputPort of the same Mechanism to which the receiver belongs.

Type

OutputPort

receiver¶

the InputPort of the Mechanism that is the destination of the Projection’s output; in the case of an AutoAssociativeProjection, it is an InputPort of the same Mechanism to which the sender belongs.

Type

InputPort

matrix¶

square matrix used by function to transform input from the sender to the value provided to the receiver; in the case of an AutoAssociativeProjection.

Type

2d np.ndarray

_instantiate_parameter_classes(context)¶

An optional method that will take any Parameter values in context that are classes/types, and instantiate them.


© Copyright 2016, Jonathan D. Cohen.

Built with Sphinx using a theme provided by Read the Docs.
  • AutoAssociativeProjection
    • Contents
    • Overview
    • Creating an AutoAssociativeProjection
    • Auto Associative Structure
      • Configurable Attributes
    • Execution
    • Class Reference
  • Github