Thursday, June 27, 2013

Generating Coherent Patterns of Activity from Chaotic Neural Networks

Sussillo, D., Abbott, L.F. (2009). Generating Coherent Patterns of Activity from Chaotic Neural Networks. Neuron 63 544-557.

I wanted to get into the Larry Abbott stuff as it seemed to pertain to the local bending model I was envisioning. So this paper covers these ideas of using chaotic random networks as the basis for learning arbitrary patterns. Essentially because of the high dimensional space the pattern is easy to read out with some simple linear combination. They expand upon previous work and make the model more complex and incorporate "FORCE" learning.

The idea of FORCE learning is that you start with a fast learn (pretty easy because its just a linear thing), but you don't immediately try to get the error all the way to zero. You keep a small amount of error that then decreases slowly. The reason for this is that the networks tend to destabilize and ruin the output. Part of the key of keeping the network in line is that the output feedsback into the network, and the chaos gets overcome by the pattern. Essentially with no stimuli the network tends to be chaotic, but when given a periodic stimuli to learn, the network loses its chaos.

From the examples its quite good at learning arbitrary patterns. They do an interesting PCA analysis of the network after its learned a particular pattern. The network is initiated with the same random connectivity, and then taught to learn the same pattern. The readout weights are initiated at different random strengths. Once the pattern is learned, the major components (the first few PCs) converge to the same point, regardless of where the readout weights were initialized. The later components end up being at a different place.

The learning performs best right on the verge of chaos. By tuning a network parameter (essentially the average synaptic strength), they can vary the amount of chaos in the network. It performs poorly at learning tasks when the network is not in the chaotic regime, but it also cannot work when the network is too chaotic. The learned pattern has to be able to overcome the intrinsic network chaos, and the network needs some chaos so that it can learn the pattern.

Finally they show a network that can do interesting input-output transformations. They add some control inputs, which essentially connect to the network randomly and train the outputs when the appropriate control inputs come on.

(A) Network with control inputs used to produce multiple output patterns (synapses and readout weights that are modifiable in red).
(B) Five outputs (one cycle of each periodic function made from three sinusoids is shown) generated by a single network and selected by static control inputs.
(C) A network with four outputs and eight inputs used to produce a 4-bit memory (modifiable synapses and readout weights in red).
(D) Red traces are the four outputs, with green traces showing their target values. Purple traces show the eight inputs, divided into ON and OFF pairs associated with the output trace above
them. The upper input in each pair turns the corresponding output on (sets it to +1). The lower input of each pair turns the output off (sets it to  1). After learning, the network has implemented a 4-bit memory, with each output responding only to its two inputs while ignoring the other inputs.


The 4-bit memory is a pretty cool example. For each bit there is an on and off input pulse, which flips the state of the corresponding readout unit. So in the network there are 16 fixed points corresponding to all possible bit combinations.

Then they have a much more complex example of the network implementing running and walking like behaviors. They got some motion capture data and trained the network to mimic the joint angles for 95 different joints. And the network was able to learn both walking and running.

The network synaptic structure is linear. Firing rate model that goes through a tanh output non-linearity

Wednesday, June 26, 2013

Leech mechanosensory model - Fractional derivative

Ok, now I've incorporated the T cells, but I thought a simple linear filter would enable rates like in the animal. But it wasn't quite right -- the T cells didnt fire on the off phase of the steps. So instead of doing the linear filters, I implemented fractional derivatives for the "filters". So now the P cell filter is the 0.3 order fractional derivative of the sensory signal, and the T cell filter is the 1.6 order fractional derivative.
Figure 1: Sensory signal, P and T cell currents based on fractional derivative of signal.
Figure 2: receptive fields of P and T cells.
Figure 3: P cell responses to sensory signal.
Figure 4: T cell responses to stimulus



Leech mechanosensory model - sensory representation

Ok, I'm going to spend a few days just working on this new model of the leech sensory system.

It starts with the touch as being a set of "pixels" that go around the skin and the value for each pixel is the instant pressure on the skin. So here is like what the touch stimuli look like:
Figure 1: The upper panel is the actual touch stimulus. Here there are just 10 pixels that go around the circumference of the body. We are going to transform this touch stimulus to a train of P cell spikes by both incorporating the receptive field and a temporal filter. In the second panel is the touch stimulus convolved with the P cell temporal filter. This is just a very stupid filter right now that is supposed to fit the P cell a little, but is nowhere near accurate. The final panel is the actual currents that will be injected into each P cell (note that there are 4 rows for each P cell).
Figure 2: Here the P cells are just single compartment IF neurons, and this is there responses to the touch stimulus shown in Figure 1.. The first panel is the voltages, with threshold of -58 mV and Reset of -62. The second panel is the actual spike times of the 4 P cells, and the final panel is the ISI for all 4 P cells. 
Figure 3: This is the P cell temporal filter. 

Tuesday, June 25, 2013

Multi-subject dictionary learning to segment an atlas of brain spontaneous activity

Varoquaux, G., Gramfort, A., Pedregosa, F., Michel, V., Thirion, B. (2012). Multi-subject dictionary learning to segment an atlas of brain spontaneous activity. Information Processing in Medical Imaging 6801.

Ok so a lot of the registration algorithms for fMRI might be relevant for my VSD data. This paper was recommended to me by Stephan Gerhard (from NS&B).

They take an approach that combines ICA with dictionary learning.

Start with a linear signal decomposition. Y is data time series (n timeponts x p voxels). V describes functional processes or structured measurement artifacts with k spatial latent variables (p x k). U describes the time series of the latent variables (n x k). Y = U * V

So they are setting up the problem to create a hierarchical generative model of the data, and they have an optimization procedure to find U and V.

The algorithms are written into the text as pseudo-code, varoquaux's website: http://gael-varoquaux.info/, and maybe some related code: https://github.com/GaelVaroquaux/canica

Theres also a package NiPy that has a lot of neuro-imaging algorithms. There may be some relevant algorithms there for my data. And also: http://scikit-learn.org/stable/

The rest of the paper is validation, but there are some other good references. I need to dive into the code to start getting some real insights into the applicability of this to my data.

Friday, June 14, 2013

Arbitrary heteroclinic orbits

Yeah so after hearing about crawling a bunch of times up here in MBL it seems clear that heteroclinic like orbits are more closely related to how CPGs work. This is in contrast to the Shilnikov style of doing CPGs, as they rely on intrinsic dynamics and pacemaker neurons -- effectively making CPGs out of coupled oscillators. The heteroclinic orbits don't require coupled oscillators and have the nice properties of being able to hold up the period in certain places like real CPGs. Plus, if you looked at a single CPG neuron that was part of a heteroclinic orbit, then you wouldn't see any intrinsic oscillatory dynamics. This seems to be the case most of the time for neurons.

So the question is how to make arbitrary types of heteroclinic orbits with neural-like models. There would have to be some population that begins to turn on and starts off as an attractor through some kind of recurrent feedback. But once the population turned on enough it acts like a source and the dynamics flow towards the next population. Each population would be a fixed point, but as you approach from one direction its attractive, and then it sends you off in another direction. But how to make this type of system is the question.

Wednesday, June 12, 2013

Dan Gerschwin

He came and gave a talk today at MBL. It was about genetics -- well really the "transcriptome", as reading all of the RNA is apparently much easier than the genome or the proteome. It was very interesting and the analysis he was doing was quite remarkable.

Most people look at up or down regulation of RNAs and try and correlate that with phenotype. He was actually looking at how different RNAs were correlated together, and then relating that to phenotype. Basically based on the correlation of different RNA expression levels he could build a distance matrix and then do graph-based analysis. He was showing how different RNAs cluster into "modules" and that modules were organized in reasonable ways -- many of the modules were related to the cell types and other pretty obvious differences. He had some cool ways of clustering and dimensional analysis that could be relevant to thesis work.

Thursday, June 6, 2013

Neural pointers

So how does info get routed into working or hippocampal memory? Pointers! Working and hippocampal memory are not encoding the information about a memory, but rather pointing to PTV where the information is stored. These pointers are stored in the sequence of spikes during each theta cycle. When Frontal wants to remember something, then it burst activates the neurons which leads to some plasticity. This plasticity is bi-directional. The PTV neurons that are currently active reinforce together (so that the memory can be recalled more easily ala a hopfield net/local minima), and then reinforce with a hippocampal sequence. The hippocampal sequence also reinforces with all of PTV, so that when the hippocampal sequence gets activated all of the info in PTV will be reactivated as well.

Lets think about working memory a little more. I vaguely remember some talks/papers I've read about how working memory would be implemented by the brain. there is a region in frontal cortex where a slow oscillation similar to theta dominates. During this slow oscillation, about 7 neural pointers can be stored (in the human brain). Each pointer was reinforced with some frontal burst feedback, so that each of the pointers can reactivate the PTV that has all of the information. You can imagine how the working memory structure can just maintain the 7 pointers in its slow oscillation through some sort of recurrent activation and plasticity or through that STP mechanism. This is how the working memory is maintained over longer time-scales. Then the different pointers being stored in working memory can be reactivated by another frontal area (another burst signal or something), which brings back the information stored in PTV.

Hippocampus is basically the same, but the pointers are built over a slow timescale (during each theta cycle), and then a memory over a larger time-scale can be recalled more quickly by activating a sharp-wave ripple.

Wednesday, June 5, 2013

PTV and Frontal

So we are starting to build this picture about what the PTV (Parietal-Temproal-Visual) cortex is doing and fitting it in with the rest of the brain. What it seems is that PTV is encoding/representing/building the current and recent state of the world. When you open your eyes and see the world around you, recognize the objects, hear the sounds, the 3D structure, etc. all of this information is being represented in PTV. . There is a tremendous amount of information continually being encoded by this circuit, and this information is the immediate state of the mind you are experiencing.

Now, this is too much information to make sense of all at once. And this is where frontal cortex comes into play. Frontal cortex essentially feedsback to all of PTV (via layer 1). Frontal cortex enhances the activity in subsets of PTV and can route subsets of PTV into working or long-term memory. To encode a long term memory, only the parts of PTV that are strongly modulated by top-down attentional feedback make it. Essentially attentional feedback activates the neurons and gets them to burst. This doesnt really change the information anywhere in PTV, but enhances is it. The burst is a signal that carries the same info about the sensory environment but tells other structures to operate differently. So to work something into say hippocampal memory (I guess this is more like medium-term), frontal cortex burst synchronizes every region of the brain it wants to remember. The entire hierarchy can be encoded in the local cortical circuits, and the hippocampus plays the role as the pointer and relates the cortical information being saved with a time-place pointer in the hippocampus. When the memory is recalled, the hippocampus can be reactivated which then reactivates the cortical areas.

PTV is creating a hierarchical model of the world from all of the information from the senses. This model is actually non-temporal (ugh, confusing in this case im referring to temporal as in time) -- it has temporal structure, but it is time-invariant. Your phone stays your phone, etc. Frontal cortex is more in charge of time. Frontal cortex is building a hierarchy to predict the future at different temporal scales. Frontal cortex is pulling information about the current state of the world from temporal cortex and routing it through working and long-term memory. Frontal routes PTV into working memory, and can reactivate hippocampal memory to route into working memory to make better predictions about the future.