agate

package
v1.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2020 License: BSD-3-Clause Imports: 11 Imported by: 0

README

AGate: Attentional & adaptive Gating of Action and Thought for Executive function

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// NeuronVarsAll is the agate collection of all neuron-level vars
	NeuronVarsAll []string

	// SynVarsAll is the agate collection of all synapse-level vars (includes TraceSynVars)
	SynVarsAll []string
)
View Source
var KiT_MaintLayer = kit.Types.AddType(&MaintLayer{}, leabra.LayerProps)
View Source
var KiT_Network = kit.Types.AddType(&Network{}, NetworkProps)
View Source
var KiT_OutLayer = kit.Types.AddType(&OutLayer{}, leabra.LayerProps)
View Source
var NetworkProps = deep.NetworkProps

Functions

func AddPFC

func AddPFC(nt *leabra.Network, name string, nPoolsY, nPoolsX, nNeurY, nNeurX int, pulvLay bool) (super, ct, maint, out, pulv emer.Layer)

AddPFC adds a PFC system including SuperLayer, CT with CTCtxtPrjn, MaintLayer, and OutLayer which is gated by BG. Name is set to "PFC" if empty. Other layers have appropriate suffixes. Optionally creates a TRC Pulvinar for Super. Standard Deep CTCtxtPrjn PoolOneToOne Super -> CT projection, and 1to1 projections Super -> Maint and Maint -> Out class PFCFixed are created by default. CT is placed Behind Super, then Out and Maint, and Pulvinar behind CT if created.

Types

type MaintLayer

type MaintLayer struct {
	glong.Layer
	InterInhib interinhib.InterInhib `desc:"inhibition from output layer"`
}

MaintLayer is a layer with NMDA channels that supports active maintenance in frontal cortex, via NMDA channels (in an NMDAMaintPrjn).

func AddMaintLayer

func AddMaintLayer(nt *leabra.Network, name string, nPoolsY, nPoolsX, nNeurY, nNeurX int) *MaintLayer

AddMaintLayer adds a MaintLayer using 4D shape with pools, and lateral NMDAMaint PoolOneToOne connectivity.

func (*MaintLayer) Defaults

func (ly *MaintLayer) Defaults()

func (*MaintLayer) InhibFmGeAct

func (ly *MaintLayer) InhibFmGeAct(ltime *leabra.Time)

InhibFmGeAct computes inhibition Gi from Ge and Act averages within relevant Pools

func (*MaintLayer) InterInhibMaxAct

func (ly *MaintLayer) InterInhibMaxAct(ltime *leabra.Time) float32

InterInhibMaxAct returns the AlphaMax activation for source layers

type Network

type Network struct {
	deep.Network
}

agate.Network has methods for configuring specialized AGate network components for Attentional & adaptive Gating of Action and Thought for Executive function.

func (*Network) AddBG

func (nt *Network) AddBG(prefix string, nPoolsY, nPoolsX, nNeurY, nNeurX int, space float32) (mtxGo, mtxNo, cin, gpeOut, gpeIn, gpeTA, stnp, stns, gpi, vthal leabra.LeabraLayer)

AddBG adds MtxGo, No, CIN, GPeOut, GPeIn, GPeTA, STNp, STNs, GPi, and VThal layers, with given optional prefix. Assumes that a 4D structure will be used, with Pools representing separable gating domains. Only Matrix has more than 1 unit per Pool by default. Appropriate PoolOneToOne connections are made between layers, using standard styles. space is the spacing between layers (2 typical)

func (*Network) AddPFC

func (nt *Network) AddPFC(name string, nPoolsY, nPoolsX, nNeurY, nNeurX int, pulvLay bool) (super, ct, maint, out, pulv emer.Layer)

AddPFC adds a PFC system including SuperLayer, CT with CTCtxtPrjn, MaintLayer, and OutLayer which is gated by BG. Name is set to "PFC" if empty. Other layers have appropriate suffixes. Optionally creates a TRC Pulvinar for Super. CT is placed Behind Super, then Out and Maint, and Pulvinar behind CT if created.

func (*Network) ConnectToMatrix

func (nt *Network) ConnectToMatrix(send, recv emer.Layer, pat prjn.Pattern) emer.Prjn

ConnectToMatrix adds a MatrixTracePrjn from given sending layer to a matrix layer

func (*Network) Defaults

func (nt *Network) Defaults()

Defaults sets all the default parameters for all layers and projections

func (*Network) SynVarNames

func (nt *Network) SynVarNames() []string

SynVarNames returns the names of all the variables on the synapses in this network.

func (*Network) UnitVarNames

func (nt *Network) UnitVarNames() []string

UnitVarNames returns a list of variable names available on the units in this layer

func (*Network) UpdateParams

func (nt *Network) UpdateParams()

UpdateParams updates all the derived parameters if any have changed, for all layers and projections

type OutLayer

type OutLayer struct {
	MaintLayer
	Out OutParams `desc:"Parameters for output layer function"`
}

OutLayer is a frontal cortex output layer (L5 PM), which typically is interconnected with Ventral Thalamus (VM / VA etc) for output gating, and also NMDAPrjn maintenance.

func AddOutLayer

func AddOutLayer(nt *leabra.Network, name string, nPoolsY, nPoolsX, nNeurY, nNeurX int) *OutLayer

AddOutLayer adds a OutLayer using 4D shape with pools, and lateral PoolOneToOne connectivity.

func (*OutLayer) CyclePost

func (ly *OutLayer) CyclePost(ltime *leabra.Time)

CyclePost calls ResetMaint

func (*OutLayer) Defaults

func (ly *OutLayer) Defaults()

func (*OutLayer) MaintLay

func (ly *OutLayer) MaintLay() (*MaintLayer, error)

MaintLay returns the MaintLay by name

func (*OutLayer) ResetMaint

func (ly *OutLayer) ResetMaint(ltime *leabra.Time)

ResetMaint resets the maintenance layer if activation is above threshold

type OutParams

type OutParams struct {
	MaintLay string  `desc:"name of corresponding MaintLayer that is reset when this layer gets activated"`
	ResetThr float32 `desc:"threshold on activation, above which the MaintLay will be reset"`
}

OutParams determine the behavior of OutLayer

func (*OutParams) Defaults

func (np *OutParams) Defaults()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL