Documentation
¶
Overview ¶
Package fsfffb provides Fast and Slow feedforward (FF) and feedback (FB) inhibition (FFFB) based on incoming spikes (FF) and outgoing spikes (FB).
This produces a robust, graded k-Winners-Take-All dynamic of sparse distributed representations having approximately k out of N neurons active at any time, where k is typically 10-20 percent of N.
Index ¶
- type Inhib
- func (fi *Inhib) Decay(decay float32)
- func (fi *Inhib) Gi() float32
- func (fi *Inhib) Init()
- func (fi *Inhib) InitRaw()
- func (fi *Inhib) LayerMaxFS(li *Inhib)
- func (fi *Inhib) LayerMaxSS(li *Inhib)
- func (fi *Inhib) PoolMaxFS(pi *Inhib)
- func (fi *Inhib) PoolMaxSS(pi *Inhib)
- func (fi *Inhib) SaveOrig()
- func (fi *Inhib) SpikesFmRaw(npool int)
- func (fi *Inhib) Zero()
- type Inhibs
- type Params
- func (fb *Params) Defaults()
- func (fb *Params) FS(fsi, gext float32) float32
- func (fb *Params) FSiFmFFs(fsi *float32, ffs, fbs float32)
- func (fb *Params) GiFmFFSS(fs, ss float32) float32
- func (fb *Params) Inhib(inh *Inhib, gimult float32)
- func (fb *Params) SSFmFBs(ssf, ssi *float32, fbs float32)
- func (fb *Params) Update()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Inhib ¶
type Inhib struct {
FFsRaw float32 `desc:"all feedforward incoming spikes into neurons in this pool -- raw aggregation"`
FBsRaw float32 `desc:"all feedback outgoing spikes generated from neurons in this pool -- raw aggregation"`
GeExtRaw float32 `desc:"all extra GeExt conductances added to neurons"`
FFs float32 `desc:"all feedforward incoming spikes into neurons in this pool, normalized by pool size"`
FBs float32 `desc:"all feedback outgoing spikes generated from neurons in this pool, normalized by pool size"`
GeExts float32 `desc:"all extra GeExt conductances added to neurons, normalized by pool size"`
FSi float32 `desc:"fast spiking PV+ fast integration of FFs feedforward spikes"`
SSi float32 `desc:"slow spiking SST+ integration of FBs feedback spikes"`
SSf float32 `desc:"slow spiking facilitation factor"`
FSGi float32 `desc:"overall fast-spiking inhibitory conductance"`
SSGi float32 `desc:"overall slow-spiking inhibitory conductance"`
FSGiOrig float32 `desc:"original value of the FS inhibition (before pool or other effects)"`
LayFSGi float32 `` /* 127-byte string literal not displayed */
SSGiOrig float32 `desc:"original value of the FS inhibition (before pool or other effects)"`
LaySSGi float32 `` /* 127-byte string literal not displayed */
}
Inhib contains state values for computed FFFB inhibition
func (*Inhib) InitRaw ¶
func (fi *Inhib) InitRaw()
InitRaw clears raw spike counters -- done every cycle prior to accumulating
func (*Inhib) LayerMaxFS ¶ added in v1.6.0
LayerMaxFS updates given pool-level inhib values from given layer-level with resulting value being the Max of either
func (*Inhib) LayerMaxSS ¶ added in v1.6.0
LayerMaxSS updates given pool-level inhib values from given layer-level with resulting value being the Max of either
func (*Inhib) PoolMaxFS ¶ added in v1.6.0
PoolMaxFS updates given layer-level inhib values from given pool-level with resulting value being the Max of either
func (*Inhib) PoolMaxSS ¶ added in v1.6.0
PoolMaxSS updates given layer-level inhib values from given pool-level with resulting value being the Max of either
func (*Inhib) SaveOrig ¶
func (fi *Inhib) SaveOrig()
SaveOrig saves the current Gi values as original values
func (*Inhib) SpikesFmRaw ¶
SpikesFmRaw updates spike values from raw, dividing by given number in pool
type Params ¶
type Params struct {
On bool `desc:"enable this level of inhibition"`
Gi float32 `` /* 236-byte string literal not displayed */
FB float32 `viewif:"On" min:"0" def:"0.5" desc:"amount of FB spikes included in FF for driving FS"`
FSTau float32 `` /* 188-byte string literal not displayed */
SS float32 `` /* 152-byte string literal not displayed */
SSfTau float32 `` /* 284-byte string literal not displayed */
SSiTau float32 `` /* 215-byte string literal not displayed */
FS0 float32 `` /* 145-byte string literal not displayed */
FSDt float32 `inactive:"+" view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"`
SSfDt float32 `inactive:"+" view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"`
SSiDt float32 `inactive:"+" view:"-" json:"-" xml:"-" desc:"rate = 1 / tau"`
}
Params parameterizes feedforward (FF) and feedback (FB) inhibition (FFFB) based on incoming spikes (FF) and outgoing spikes (FB) across Fast (PV+) and Slow (SST+) timescales. FF -> PV -> FS fast spikes, FB -> SST -> SS slow spikes (slow to get going)
func (*Params) GiFmFFSS ¶
GiFmFSSS returns the overall inhibitory conductance from FS and SS components
func (*Params) Inhib ¶
Inhib is full inhibition computation for given inhib state which has aggregated FFs and FBs spiking values