Syntax-07-08-29 - Tulane University

Programming the Khepera rat
Computational Neuroscience
NSCI 492
Spring 2008
Course organization
• Syllabus at
http://www.tulane.edu/~howard/CompNSCI/
3/14/08
Harry Howard, NSCI 492, Tulane University
2
Review
Two pathways between cortex
and basal ganglia
cortico-basal ganglionic loop
3/14/08
Harry Howard, NSCI 492, Tulane University
4
Basal ganglia as an action
selection mechanism
Our analysis of the basal ganglia intrinsic connectivity (Gurney et al., 2001a,b) indicated the
presence of two off-centre, on-surround, feed-forward networks. One instantiation: (a) makes
use of EP/SNr as its ‘output layer’ and is designated the selection pathway, the second (b)
targets GP and is designated the control pathway. The control signals emanating from GP are
evident when the two sub-systems are combined to give the overall functional architecture
shown in Figure c.
3/14/08
Harry Howard, NSCI 492, Tulane University
5
The robot control
architecture
3/14/08
Harry Howard, NSCI 492, Tulane University
6
The basal ganglia program
Matlab files
• intrinsic_model_ZOH.m
– script that replicates the Simulink version
• GPR_engine.m
– function that encapsulates multiple versions of the
model
• ramp_output.m, DA_ramp_output.m
– two different forms of the piece-wise linear output
function. The latter is a modified form given in
(Humphries, 2003) that captures the effects of
dopamine on striatal neuron output
3/14/08
Harry Howard, NSCI 492, Tulane University
8
Simulink files
• intrinsicBG.mdl
• Mpieclin.c, Mpieclin.dll, Mpieclin.mexlx
– Mpieclin.c is the piece-wise linear output
function, compiled as an S-function (called by
the Simulink model) under Windows (.dll) and
Linux (.mexlx)
3/14/08
Harry Howard, NSCI 492, Tulane University
9
Five components
3/14/08
Harry Howard, NSCI 492, Tulane University
10
Activation storage
• One level of activation for each component = 5 x 1
vector
– but since we want to keep track of activations, i.e. plot
them over time, this vector could be a matrix with rows
for units and columns for time steps
– but since each component evaluates 6 channels
(competing actions), we ultimately make a 6 x 1 vector
for each component a_id
– these activations are stored at each time step t in a 6 x t
matrix/array of outputs o_id
3/14/08
Harry Howard, NSCI 492, Tulane University
11
Weights
• Normally, the point of a neural network
simulation is to learn the weights between
the components that solve the problem.
• This implies a matrix of weights that
represent connections between the neurons
• Here, there is no learning, so the weights
are stipulated as constants W_id.
3/14/08
Harry Howard, NSCI 492, Tulane University
12
Processing
• At each time step, loop through every
channel for each unit
3/14/08
Harry Howard, NSCI 492, Tulane University
13
MATLAB output graph
plot(o_GPi(1,:),'r')
plot(o_GPi(2,:),'b')
3/14/08
Harry Howard, NSCI 492, Tulane University
14
Brainwave!
The basal ganglia do preemptive
multitasking
HumanOS
• How to compare the cortico-basal
ganglionic loop to the part of an OS that
does preemptive
multitasking/multitreading?
• For instance, do the BG provide a thread
life cycle with states like 'ready', 'waiting',
'running', 'blocked', 'dead', etc. ?
3/14/08
Harry Howard, NSCI 492, Tulane University
16
Next time
• Develop simulation for Webots
3/14/08
Harry Howard, NSCI 492, Tulane University
17