* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download See the tutorial (network)
Premovement neuronal activity wikipedia , lookup
Neuroanatomy wikipedia , lookup
Synaptogenesis wikipedia , lookup
Neurotransmitter wikipedia , lookup
Artificial neural network wikipedia , lookup
Catastrophic interference wikipedia , lookup
Nonsynaptic plasticity wikipedia , lookup
Feature detection (nervous system) wikipedia , lookup
Single-unit recording wikipedia , lookup
Holonomic brain theory wikipedia , lookup
Metastability in the brain wikipedia , lookup
Central pattern generator wikipedia , lookup
Time series wikipedia , lookup
Pre-Bötzinger complex wikipedia , lookup
Neural coding wikipedia , lookup
Chemical synapse wikipedia , lookup
Mathematical model wikipedia , lookup
Neural modeling fields wikipedia , lookup
Convolutional neural network wikipedia , lookup
Recurrent neural network wikipedia , lookup
Synaptic gating wikipedia , lookup
Biological neuron model wikipedia , lookup
GUM*02 tutorial session UTSA, San Antonio, Texas Large-scale realistic modeling of neuronal networks Mike Vanier, Caltech Structure of the talk: General network modeling issues Details of how networks are modeled in GENESIS Part 1 General network modeling issues Details of how networks are modeled in GENESIS Why model networks? Goal: understand the brain Networks implement computations network of networks influence of NN theory Networks are where the action is! Why avoid modeling networks? networks are too complex dozens of cell types complex connectivities, interactions we don’t understand neurons yet not enough data want to graduate quickly Roots of GENESIS GENESIS: GEneral NEural SImulation System network modeling was orig focus and yet... most models still either single neuron models very small networks “abstract” network models maybe a 10:1 ratio or worse why is this? Network modeling is hard!!! need accurate data on: neuron models (ALL types) connectivities inputs outputs simplifications needed scaling issues More typical scenario data available for some neurons only inhibitory neurons? connectivities only vaguely known inputs vaguely known if at all outputs vaguely known if at all why bother? Motivations “Abandon all hope, ye who enter here.” more exploratory, less definitive refine conceptual model of system make implicit ideas about function explicit figure out what data to collect The process collect all the data you can!!! build simplified neuron models match to data build model of inputs build network model match to data graduate Example: piriform cortex neuron types well established little physiology for most connection patterns known inputs partially known outputs mostly unknown Neuron types Simplification Physiology: pyramidal neurons model real Physiology: inhibitory neurons inputs spike rasters ISI distribution Connectivities 1 afferents Connectivities 2 now the “fun” begins... pick network phenomenon to model PC: response to strong, weak shocks independent of details of bulb relatively simple adjust parameters to tune model leave neuron parameters alone connectivities results? see my talk tomorrow hint: I graduated Part 2 General network modeling issues Details of how networks are modeled in GENESIS GENESIS basics modeler creates simulation objects objects send messages to ea. other messages contain data most messages sent each time step field values or once per fixed interval [spikes break this rule] neurons compartmental models of neurons neuron composed of compartments compartments are isopotential channels connect to compartments voltage-dependent calcium-dependent synaptic setting up the neuron create neutral /neuron1 create compartment /neuron1/soma setfield ^ \ Em { Erest } \ Rm { RM / area } \ Cm { CM * area } \ Ra { RA * len / xarea } // // // // volts Ohms Farads Ohms spikes in genesis spikegen object monitors Vm of compartment when past threshold, sends SPIKE message to destination synchan object receives SPIKE message stores time of spike in buffer generates a-function when spike hits setting up the synchan create synchan /neuron1/syn setfield ^ \ gmax 1.0e-9 \ // 1 nS Ek 0.0 \ tau1 0.001 \ // rise time (sec) tau2 0.003 // fall time // Connect soma to synchan: addmsg /neuron1/soma /neuron1/syn VOLTAGE Vm addmsg /neuron1/syn /neuron1/soma CHANNEL Gk Ek setting up the spikegen // Create and connect spike detector: create spikegen /neuron1/spike setfield ^ thresh -0.020 abs_refract 0.002 addmsg /neuron1/soma /neuron1/spike INPUT Vm connecting two neurons // Assume we have neuron2 like neuron1 addmsg /neuron1/spike /neuron2/syn SPIKE // Set synaptic weight and delay: setfield /neuron2/syn \ synapse[0].weight 1.0 \ synapse[0].delay 0.001 // 1 msec // That’s all there is to it! building networks Why not just do this for all synapses? 100-1000 neurons, 10,000-100,000 synapses... gets pretty tedious faster way: large-scale connection commands volumeconnect [planarconnect] volumedelay [planardelay] volumeweight [planarweight] volumeconnect volumeconnect source_elements destination_elements -relative \ -sourcemask {box, ellipsoid} x1 y1 z1 x2 y2 z2 -sourcehole {box, ellipsoid} x1 y1 z1 x2 y2 z2 -destmask {box, ellipsoid} x1 y1 z1 x2 y2 z2 -desthole {box, ellipsoid} x1 y1 z1 x2 y2 z2 -probability p \ \ \ \ \ volumedelay volumedelay sourcepath [destination_path] -fixed delay \ -radial conduction_velocity \ -add \ -uniform scale \ -gaussian stdev maxdev \ -exponential mid max \ -absoluterandom \ volumeweight volumeweight sourcepath [destination_path] -fixed weight -decay decay_rate max_weight min_weight -uniform scale -gaussian stdev maxdev -exponential mid max -absoluterandom \ \ \ \ \ \ note on connection commands mainly useful for simple cases more realistic cases require more control GENESIS script language makes it easy to write own connection commands output Xodus graphical output dump neuron data to files binary files readable by “xview” conclusions network modeling is fun fascinating fundamental frustrating! NOT for the easily discouraged!