Connecting two neurons based on their respective connections to others?

21 views
Skip to first unread message

Eric Morgan

unread,
Jan 24, 2017, 3:54:44 PM1/24/17
to CARLsim: A GPU-accelerated Spiking Neural Network (SNN) Simulator
I am currently working on models of visual perception, and am trying to figure out if CARLsim can meet my needs.  I would like to create a model that uses lateral connections between simple cells in V1 based on overlap between their receptive fields (roughly based on this paper: http://www.jneurosci.org/content/18/15/5908.short).  As a simplified explanation, I need to determine the strength of connection between neuron A and neuron B by querying both neurons' connections from group C (finding group C neurons that project to both A and B, and the weights of those projections) and calculating a connection weight between A and B from the ratio of connections from the same group C neurons to connections from differing group C neurons.  Note that this is only done to generate connections between A and B during the initial setup of the network, not while running.  Once the network has been set up so that neuron A and neuron B both have connections to group C, is it possible to then query those connections?  If so, how?

Thanks
-Eric Morgan

Michael Beyeler

unread,
Jan 24, 2017, 8:34:57 PM1/24/17
to CARLsim: A GPU-accelerated Spiking Neural Network (SNN) Simulator
Hi Eric,

Yes and no.

In the generic form you describe, during the network setup process it's not possible to query other groups for their connections. The reason is that depending on the order of groups, these other connections might not have been created yet.

However, I suspect there is an easier way to achieve your desired connection scheme in CARLsim. I'm assuming you're trying to do something like Fig. 6 of the paper you mentioned. If you do the bookkeeping externally, so that you know which neuron in the population does what, you can set up an arbitrary connectivity pattern between two groups.
For example, when I used CARLsim to do vision experiments, I would routinely do Gaussian connectivity in both visual and feature space, such as Fig. 3B. I would organize my neurons on a grid, so that the i-th neuron in each group would code for the same spatial location. Then it's easy to do 2D Gaussians in space. If you make your Grid three-dimensional, so that the 3rd dimension stands for orientation, you can even do Gaussians across orientation (i.e., the third dimension of the grid), much like Fig. 3B. That should help you make a V1 cell from a bunch of LGN cells.

Once the network is set up and running, you can query all existing connections (including their strength over time) using a ConnectionMonitor.

Best,
Michael

P.S. Alternatively, have you thought about letting STDP do the job for you? ;) After all that's supposed to shape connectivity based on correlated activity. :)

Eric Morgan

unread,
Jan 24, 2017, 10:35:43 PM1/24/17
to CARLsim: A GPU-accelerated Spiking Neural Network (SNN) Simulator
Yes, I'm trying to implement something like fig. 6.  The grid approach may be the best bet, but unfortunately that limits me to homogeneous sheets of ideal neurons, and I would like the ability to play with some variability.

I would actually be interested in seeing your CARLsim vision models, if they are available to share.  STDP is not appropriate at this point, as I am trying to test whether the connectivity rules as described in the paper (and others) lead to certain features of visual perception, and I don't want to go through the trouble of also finding the exact series of training data to go through to get those connections to arise through STDP. :)

-Eric

Michael Beyeler

unread,
Jan 25, 2017, 11:44:27 AM1/25/17
to CARLsim: A GPU-accelerated Spiking Neural Network (SNN) Simulator
I've started a while ago to put together a tutorial on vision networks. Of course it's still not done ^^, but it's close. If you give me a bit more time, I will add it to the CARLsim3 repo on GitHub.

When you talk about homogeneous sheets of ideal neurons, what parameters are you looking to vary? CARLsim *does* offer a way to choose the Izhikevich parameters (excitability, reset voltage, etc.) for each neuron in a group from a random normal distribution.

Eric Morgan

unread,
Jan 25, 2017, 1:41:03 PM1/25/17
to CARLsim: A GPU-accelerated Spiking Neural Network (SNN) Simulator
I'm looking to vary the receptive fields - slight variations in angle, symmetry, etc.

-Eric

Reply all
Reply to author
Forward
0 new messages