classification error

Request or post your example code here
Post Reply
nsf2000
Posts: 16
Joined: Thu Nov 05, 2015 2:35 pm

classification error

Post by nsf2000 »

Hello,

I am back again to ask questions :P. Recently, I found another issues on 2015 orchestrated paper, but I am not sure whether the problem comes from model or my site. Instead of trying the 28x28 input, I also tried 64x64 input image to the orchestrated repository. I fetched the 5 patterns (0,1,2,3,4), in when I looked at the rf2.pact. it shows as in the first figure, you can find that cyan color (pattern digit 4) and green color (pattern digit 1) are hard to classify, the same happens on the pink (pattern digit 2) and purple (pattern digit 3). The figure 2 is a more clear picture, it seems that the neuron network has some difficulties to distinct patterns (pink responses(digit 3) suppose not to fire for the blue color stimuli (digit 2)). I also looked at the rf1.pat file which generated by 1run_init.sh, I found that the neuron ID between 2 and 3 (also, 1 and 4) are almost the same, only different on the firing rate. Do you have insights on it? I have checked my configuration many times, it suppose have no problems. The input are printed digits image

Thank you very much

Sufeng
Attachments
figure1.jpg
figure1.jpg (125.61 KiB) Viewed 11907 times
Figure2.jpg
Figure2.jpg (93.7 KiB) Viewed 11907 times
User avatar
zenke
Site Admin
Posts: 156
Joined: Tue Oct 14, 2014 11:34 am
Location: Basel, CH
Contact:

Re: classification error

Post by zenke »

Hi Sufeng,

usually you will be able to tell from the spike raster by eye what is happening. It seems as if your network only learns two patterns which seem to be somehow the merged versions of the four inputs, but I am not sure. Keep in mind the network needs to learn two things at the same time. The input connections and the recurrent connections. It might be worth to start with a network in which the input connections are fixed. It might be easier to understand what's happening. Unfortunately there are many factors which influence the success of learning in this simulation, and I cannot tell you what is going wrong with the pattern you are trying to learn in particular. However, as a rule of thumb: The external input initially needs to ensure that a substantial fraction of all the cells responds to each stimulus. Substantial is around several hundred cells. The network as it is set up has ~4000 exc cells and the stable plasticity firing rate fixed points are at around ~1Hz and 30-50Hz. The overall network population firing rate fixed point is at 4Hz. So if you consider (1Hz*(4000-n)+40Hz n)/4000=4Hz ==> n = 4000/13. So to be stable some of the network cells need to fire at the high rate while the others fire at the low rate. Now, to get the right cells fire together the stimulus needs to be strong enough initially to drive the postsynaptic firing of almost orthogonal sets of cells for each stimulus. However, it can't be too strong such that the heterosynaptic term dominates. If that happens then the consolidation weights are never pushed across the unstable fixed point in the middle and no weights are consolidated. This point is probably the one the requires the most tuning in the model. If you keep the external weights fixed you will need to ramp the stimulus down as you keep stimulating. Because as you learn cell assemblies in the network the firing rates will increase until the heterosynaptic term will dominate. The advantage of plastic input connections is that these can to a certain degree compensate for increase recurrent connections by decreasing the inputs slightly. I am not sure I am explaining his well, but that's essentially the mechanism.

Best,

F
nsf2000
Posts: 16
Joined: Thu Nov 05, 2015 2:35 pm

Re: classification error

Post by nsf2000 »

Hi Zenke,

Thank you very much for your answer, it is very clear. You are right that the network only learns two patterns which suppose to be four, and same situation also happened when I try 10 digits (for example, when the stimulus 7 fetched, digit 1 neuron group fired too much that even stronger than 7). I have tried several ways, one is that I fixed the input connections (I changed the P10Connection to be SparseConnection for con_stim_e). However, after fix the input connection, the neuron actually failed to learn any patterns (the raster plot is shown in Figure1). I also change the shape of the digit one to be more like a l. I found that the network can distinct between 1 and 4, but I know that is not a correct way to fix it.

As you mentioned that, finally the heterosynaptic dominates the excitatory synapse LTP.
If that happens then the consolidation weights are never pushed across the unstable fixed point in the middle and no weights are consolidated
I am not quite get this point. Do you mean in the consolidation term I need to tune the Parameter w^P in paper equation (16)?

Here is my thoughts: the homosynaptic terms will keeps firing once the input is fetched, for example when digit 1 comes in, population for digit 1, 4, 7 all fired (they suppose to have some overlapped population). When firing rate goes high, heterosynaptic dominates. The heterosynaptic term performs slow consolidation dynamics that "tune" different neuron population firing rate to more clearly distinct different patterns, while the inhibitory synapse suppose to inhibit firing rate for some input patterns. let's first ignore the function that inhibitory synapse keep the network balancing, but for classification, for example, when saw digit 1, inhibitory synapse suppose to inhibit the digit 4 and 7 neuron population to fire.

Am I understand correctly here? Do you think the problem comes from the inhibitory synapse model or anything wrong with what I have done? from the paper result, it seems that it can classify very noisy data, but I don't know why in the digit case, it doesn't work well

Thank you so much!

Sufeng
Attachments
figure1.jpg
figure1.jpg (179.14 KiB) Viewed 11841 times
User avatar
zenke
Site Admin
Posts: 156
Joined: Tue Oct 14, 2014 11:34 am
Location: Basel, CH
Contact:

Re: classification error

Post by zenke »

Hi,
First, let me clarify what I mean by my previous statement. To learn a lasting representation the weights w need to be pushed away from \tilde w such that the long-term consolidation dynamics of \tilde w can be "switched". However since heterosynaptic plasticity constitutes a restoring force towards \tilde w this can only happen if postsynaptic firing rates are in a sweet spot regime between the unstable fixed point (plasticity threshold; around 10Hz) and the upper stable fixed point (30-50Hz). So if you external connectivity gives you already very high firing rates, recurrent connections will not form associations is what I mean.

Second, it is not surprising that you do not get learning if you replace the inputs by random SparseConnections. Selectivity of the network neurons to the external stimuli is essential for learning. If you use static input connections you will have to add selectivity manually by loading the input connections from an external file for instance or by using the put_pattern functions or else it is going to be difficult.

Third, there are many things that can go wrong in such a complicated model and it might be good idea to implement some simpler models first to understand the full dynamics of the system. For instance, you could study emergence of selectivity in a feed-forward network first. Moreover, it might be good idea to study the full model with block patterns initially instead of MNIST (similar to the ones in of the figures in the paper) to understand what is going on. I am sorry, I cannot give you a more specific answer to your question other than suggesting that you will have to study in detail where the model fails to learn your stimuli. The key lies in understanding how individual synaptic weights respond over time to the stimuli you present. WeightMonitor allows you to record weights connecting populations of neurons and weights between populations. From the plot you are showing it seems as if the network gets stuck in one spontaneously formed attractor state which overrides all external inputs, but it is hard to tell. The initial response to external inputs is crucial to understand and to control.

I hope that helps. Good luck!

F
nsf2000
Posts: 16
Joined: Thu Nov 05, 2015 2:35 pm

Re: classification error

Post by nsf2000 »

Hi,

Thank you so much again for your hints and suggestions, I will test and inspect the the selectivity for the feed-forward network, and your answer is much clear. Following is a recent try, I understand that it is ridiculous to ask you where the problem is especially this is a complicated model, and anywhere could caused the problem. I just would like to get some insights and perceptions from research pioneer in neuroscience like you.

In terms of selectivity in feed-forward network, I looked at the receptive field plot; compared with block patterns, I find that block patterns has relatively more sensible receptive field (edge-like), while half of the receptive field in the digit pattern one are full filled as in Figure 1. I find that in the visual cortex in area I has 6 layers. Therefore, I tried manually organize the code to be multiple layers for feedforward network since multi-layer can better interpolate more complicated features in receptive field, for example, the digit 2 and digit 3 share the same edge on the top, but different in the bottom. What I did in the code is just copy and paste the con_stim_e to create con_ee2, con_e2e3 with recurrent connection in con_e3e3. Then, after 1run_init.sh, most of the neural firing rate in e2 layer actually droped below 10 Hz, so that if I inspect the e2 layer, the generated rf1.pat only show 2 neuron firing rate (only two neuron above 10 Hz). What I mean here is that if I made multi-layer connection, the neural activity actually become vanishing. I just wondering in this case, do you think 1. is multiple layer a good way for better selectivity property. 2. I think I need to tune the neuron and synapse parameters in second layer (also the following layer) not to limit the firing rate too much in order to propagate the 2nd and 3rd layer (like beta for heterosynaptic term and delta for transmitter induced term)?

also, just let you know that if I insert 3 patterns (digit 0, 2, 3) instead of 10 digit patterns (from 0 to 9), the original network can distinct the digit 2 and digit 3, which it failed to be classified previously.

Thank you very much

S
Attachments
figure1.jpg
figure1.jpg (54.03 KiB) Viewed 11791 times
User avatar
zenke
Site Admin
Posts: 156
Joined: Tue Oct 14, 2014 11:34 am
Location: Basel, CH
Contact:

Re: classification error

Post by zenke »

nsf2000 wrote: I just wondering in this case, do you think 1. is multiple layer a good way for better selectivity property. 2. I think I need to tune the neuron and synapse parameters in second layer (also the following layer) not to limit the firing rate too much in order to propagate the 2nd and 3rd layer (like beta for heterosynaptic term and delta for transmitter induced term)?
Hi nsf2000,

1) I think multiple layers are important for better classification performance, yes, but I don't think they will solve the selectivity issue. You need good selectivity in the first layer first before the second layer can learn anything.

2) Unsupervised learning of good receptive fields in the second layer is a hard task even when you are using a non-spiking network. My intuition is that it depends on some forms of homeostatic plasticity and knowing which ones I thought would be a major advance in the field.

3) I believe the RF of the cell you plotted is by the looks of it a cell which does not respond with elevated firing rates to any of the input patterns.

Cheers,
F
Post Reply