Documentation ¶
Index ¶
- type Linear
- func (ls *Linear) Cycle(nr *Neuron, expInt float32, cyc int)
- func (ls *Linear) Defaults()
- func (ls *Linear) Init()
- func (ls *Linear) InitTable()
- func (ls *Linear) Regress()
- func (ls *Linear) Run()
- func (ls *Linear) SetBins(sn, rn *Neuron, off, row int)
- func (ls *Linear) SetSynState(sy *Synapse, row int)
- func (ls *Linear) StartTrial()
- func (ls *Linear) Trial(sendMinusHz, sendPlusHz, recvMinusHz, recvPlusHz float32, ti, row int)
- func (ls *Linear) Update()
- type Neuron
- type Synapse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Linear ¶
type Linear struct { // Kinase CaSpike params CaSpike kinase.CaSpikeParams `display:"no-inline" new-window:"+"` // SynCaBin sets the SynCa integration parameters. SynCaBin kinase.SynCaBin // total number of cycles (1 MSec) to run per learning trial Cycles int `min:"10" default:"200"` // number of plus cycles PlusCycles int `default:"50"` // NumBins is the number of bins to accumulate spikes over Cycles NumBins int `default:"8"` // CyclesPerBin = Cycles / NumBins CyclesPerBin int `edit:"-"` // MaxHz is the maximum firing rate to sample in minus, plus phases MaxHz int `default:"120"` // StepHz is the step size for sampling Hz StepHz int `default:"10"` // NTrials is number of trials per Hz case NTrials int `default:"100"` // Total Trials is number of trials for all data TotalTrials int `edit:"-"` // Sending neuron Send Neuron // Receiving neuron Recv Neuron // Standard synapse values StdSyn Synapse // Linear synapse values LinearSyn Synapse // ErrDWt is the target error dwt: PlusHz - MinusHz ErrDWt float32 // binned integration of send, recv spikes CaBins []float32 // Data to fit the regression Data table.Table }
Linear performs a linear regression to approximate the synaptic Ca integration between send and recv neurons.
func (*Linear) Cycle ¶
Cycle does one cycle of neuron updating, with given exponential spike interval based on target spiking firing rate.
func (*Linear) SetSynState ¶
func (*Linear) StartTrial ¶
func (ls *Linear) StartTrial()
type Neuron ¶
type Neuron struct { // Neuron spiking (0,1) Spike float32 // Neuron probability of spiking SpikeP float32 // CaSyn is spike-driven calcium trace for synapse-level Ca-driven learning: // exponential integration of SpikeG * Spike at SynTau time constant (typically 30). // Synapses integrate send.CaSyn * recv.CaSyn across M, P, D time integrals for // the synaptic trace driving credit assignment in learning. // Time constant reflects binding time of Glu to NMDA and Ca buffering postsynaptically, // and determines time window where pre * post spiking must overlap to drive learning. CaSyn float32 // neuron-level spike-driven Ca integration CaM, CaP, CaD float32 TotalSpikes float32 // binned count of spikes, for regression learning CaBins []float32 }
Neuron has Neuron state
func (*Neuron) StartTrial ¶
func (kn *Neuron) StartTrial()
type Synapse ¶
type Synapse struct { CaSyn float32 // CaM is first stage running average (mean) Ca calcium level (like CaM = calmodulin), feeds into CaP CaM float32 // CaP is shorter timescale integrated CaM value, representing the plus, LTP direction of weight change and capturing the function of CaMKII in the Kinase learning rule CaP float32 // CaD is longer timescale integrated CaP value, representing the minus, LTD direction of weight change and capturing the function of DAPK1 in the Kinase learning rule CaD float32 // DWt is the CaP - CaD DWt float32 }
Synapse has Synapse state
Click to show internal directories.
Click to hide internal directories.