This page describes one of the possible project options for assignment 2; please read the general project description first before looking at this specific project option.
For this assignment you should again use the copy of Topographica installed in /group/teaching/cnv/topographica.
First, save a copy of the asst2.ty
example file into one of your own directories, e.g.
~/cnv/asst2.ty
, and launch it:
cd ~/cnv ln -s /group/teaching/cnv/topographica/topographica . ./topographica -g asst2.ty
The asst2.ty
file is a slightly modified copy of
examples/gcal.ty
, changed as described in the comments
at the top of the file. The main changes are to speed it up by
using a slightly lower cortex_density
by default and four input
patterns per iteration instead of two, and to add a new set of LGN
sheets. With the default parameters, the LGN sheets have no
significant effect, just acting as a copy of the retinal ganglion
cell activation. Connections like this effectively model an LGN
with one to one connectivity from retinal ganglion cells and no
circuitry intrinsic to the LGN.
You should run the network for a few iterations in the GUI and look at the various plots to verify that it works ok. In particular, run it with a step size of 0.05 while looking at activity plots, so that you can see how activity is drawn on the photoreceptors, propagates to the RGC cells, LGN cells, and V1, then is reduced in strength due first to divisive inhibition in the RGCs and then to lateral interactions within V1. As mentioned in the first assignment's tutorial, be sure to leave the time clock at an even multiple of 1.0 to avoid possible confusing behavior.
Also note the activation counting that goes on. First, the RGCs
only change once after their intial activity pattern, so that the
afferent pathway can then be left constant while simulating V1
settling. Second, V1 settles a fixed number of times (16) and then
stops, which is a reasonable approximation as long as the V1
activity has indeed stopped changing significantly by this point.
For your own simulations, if V1 activity is continuing to change
dramatically by the time settling is disabled at each iteration, you
could increase tsettle
, but instead you should probably
investigate whether the parameters are set incorrectly, e.g. causing
oscillations or unbounded activity spreading.
Now run asst2.ty
in batch mode to establish a
baseline for how the network self-organizes, before you make any
changes. Sample batch mode command for running to simulation time
2500 (which is usually sufficient to see how it will organize) and
analysing the map at times 100, 1000, and 2500:
./topographica -a -c "run_batch('asst2.ty',times=[100,1000,2500])" -c "save_snapshot()"
This command takes 5 minutes on my 3GHz Pentium 4 machine, but
could be more if your machine is slower or heavily loaded. The
output will be a set of .png images in
~/cnv/Output/201003031631_asst2
, where 201003031631 is
the year, month, hour, and minute when the command was started (to
provide a unique tag to keep track of results).
You can use your favorite image viewer to see the results,
e.g. gthumb *.png
. For gthumb, it works better if you
go to the Preferences and set the Viewer options to have a
Zoom quality
of Low
(to avoid smoothing)
and After loading an image
to Fit image to
window
(so that it's large enough to see).
You can then load the saved snapshot if you want, to explore the final map:
./topographica -g -c "load_snapshot('$HOME/cnv/Output/200903081631_asst2/200903081631_asst2_002500.00.typ')"(using the appropriate path to your copy of the simulation output).
Always be sure to examine the .out file in the batch output directory, so that you can detect any warnings that might be important (such as parameters that you thought you changed but the code warns you were not actually changed due to typos).
The main results can be compared with those in the GCAL paper in
/group/teaching/cnv/topographica/examples/gcal.pdf
on DICE; they
will be different in specifics, but should be qualitatively similar
(and much faster to get!). See that (currently unpublished) paper
for all the details on how GCAL works. When you need a citation for
GCAL in your report, you can use:
@Article{law:gcal11, title = "Mechanisms for Stable and Robust Development of Orientation Maps and Receptive Fields", author = "Judith S. Law and Jan Antolik and James A. Bednar", year = 2011, note = "In preparation", }
Next, to enable excitatory feedback from V1 to the LGN, pass in
a non-zero feedback_size
:
./topographica -g -p feedback_size=0.1 asst2.ty ./topographica -a -c "run_batch('asst2.ty',times=[100,1000,2500],feedback_size=0.1)" -c "save_snapshot()"
(or edit the file to change that value). The
feedback_strength
can be changed similarly; at 0.0
there's no effect, while at 1.0 the network will explode with
non-specific activity due to runaway excitation. Now you can repeat
the exploration described in step 1, watching how activity is fed
back to the LGN. The second command above will take a long time to
run, and so instead you'll probably want to add the feedback to your
saved adult network, which is much quicker and thus easier to study:
./topographica -g -p cortex_density=1 asst2.ty -c \ "load_snapshot('$HOME/cnv/Output/200903081631_asst2/200903081631_asst2_002500.00.typ')" >>> _connect_v1_lgn(feedback_size=0.1,feedback_strength=0.1)
Note that although the asst2.ty file is not normally needed when
loading a snapshot, in this case the -p cortex_density=1
asst2.ty
part of the command above forces
asst2.ty
to be run so that the
_connect_v1_lgn
command will be defined. The
cortex_density=1
setting makes sure that this extra
step doesn't take any significant time or memory, and the resulting
network is simply discarded once the snapshot is loaded.
The above commands show how to simulate a simple type of feedback to the LGN, set up as an example without reference to any particular observed phenomenon, functional role, etc. For the remainder of the assignment, you should go from this starting point to simulating something in particular, motivated by a theoretical idea of what LGN feedback accomplishes or by some experimental results about the feedback. To find such previous work, you will need to search the literature, e.g. using PubMed, with queries like "cortico-geniculate feedback", "corticothalamic feedback" "V1 LGN feedback", "corticofugal connections", etc. Good starting points include the CMVC book section 17.2.13 and review articles from Briggs & Usrey (2008), Cudeiroa & Sillito (2006), and Sillito, Cudeiroa, & Jones (2006).
Based on your reading,
Implement a modified form of feedback (at least with parameters chosen specifically to achieve some effect, and also probably changing in kind from the example provided (e.g. inhibitory, targeting some subset of cells, modulatory rather than excitatory, broader or narrower, etc.)). You may need several such implementations to compare different hypotheses.
Whichever type(s) of feedback you choose, analyze the resulting network to determine whether it is indeed implementing what you proposed to implement, whether the results match biological data, etc.
(If desired) simulate the process of development with feedback, not just adding feedback to the adult, although this is not required and will take much longer to run (could be half an hour).
Report and submit your results as described in the general project description.
Last update: assignment2lgnfb.html,v 1.10 2012/01/03 01:59:05 jbednar Exp
Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: school-office@inf.ed.ac.uk Please contact our webadmin with any comments or corrections. Logging and Cookies Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh |