Izhikevich neuron has no stable state

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Izhikevich neuron has no stable state

Alexander_aka_Casper
Hello Jeff, I have a small qestion.

First, I make new network. Then I put Izikevich neuron to workplace and push "simulate" button. I see, that it is fireing again and again whithout any affection on it. Can i set it to some stable state? (like integrate-and-fire have it at 0.4?). I run example "SinusoidalInput" (i need to do something like that), but insted of IAF i need to use Izhikevich, but i can't. So, that is the qwestion... Can i do it and how i can? (Sorry for my bad English).

Thanks before.
Reply | Threaded
Open this post in threaded view
|

Re: Izhikevich neuron has no stable state

jyoshimi
Administrator
The Izhikevich model can capture lots of different types of neuron behavior, including behavior where it simply bursts and spikes spontaneously (like real neurons do).   Check out this site:

http://vesicle.nsi.edu/users/izhikevich/publications/whichmod.htm#izhikevich

If you have matlab then the script on that site (which I just discovered today) is a nice way to get a feel for the model.  I've attached a small network file (for Simbrain v. 2; see the bottom of this post) that has the parameter values for the "integrator," which I am guessing is something like the integrate and fire model.  It stays in a stable state absent input but it increases its rate of firing as the value of the neuron on the left is increased (just select it and press the up button).

The matlab script at Izhikevich's site has a nice summary of parameter values for different types of neural behaviors:

A            B        C      D       I (Input from other neurons)
0.02      0.2     -65      6       14 % tonic spiking
0.02      0.25    -65      6       0.5  % phasic spiking
0.02      0.2     -50      2       15 % tonic bursting
0.02      0.25    -55     0.05     0.6 % phasic bursting
0.02      0.2     -55     4        10  % mixed mode
0.01      0.2     -65     8        30  % spike frequency adaptation
0.02      -0.1    -55     6        0   % Class 1
0.2       0.26    -65     0        0   % Class 2
0.02      0.2     -65     6        7   % spike latency
0.05      0.26    -60     0        0   % subthreshold oscillations
0.1       0.26    -60     -1       0   % resonator
0.02      -0.1    -55     6        0   % integrator
0.03      0.25    -60     4        0   % rebound spike
0.03      0.25    -52     0        0   % rebound burst
0.03      0.25    -60     4        0   % threshold variability
1         1.5     -60     0      -65   % bistability
1       0.2     -60     -21      0   % DAP
0.02      1       -55     4         0   % accomodation
-0.02      -1      -60     8        80  % inhibition-induced spiking
-0.026     -1      -45     0        80 % inhibition-induced bursting

It should be fun to try these out (just open the neuron property dialog for an Izhikevich neuron and enter appropriate values.  For I values it's a little more complicated and I can explain if you ask; but most of them are 0 anyway).   I'll include this list in the next version of the documentation.

Now, since you asked about this, I'll point out that I implemented the Izhikevich neuron quickly and without any optimization, and I never really tested it.  So I'd love it if you or anyone in the open  source community could validate (or even optimize!) the behavior of Simbrain's implementation of the Izhikevich model.  As I noted in another post on this forum just now, I only have time to work on this in my spare time so not everything works perfectly...

All best,

- Jeff

izhik_test.net


Reply | Threaded
Open this post in threaded view
|

Re: Izhikevich neuron has no stable state

Alexander_aka_Casper
Thank you very much for the answer and link! It is very interesting. Yesterday I read another article: http://vesicle.nsi.edu/users/izhikevich/publications/spikes.pdf
and simulate matlab algorithm. I think, that the best is picture 2 of fig.2. Its good for understanding the meaning of parameters.  Tonight i'll try your net and matlab script from site.

jyoshimi wrote
As I noted in another post on this forum just now, I only have time to work on this in my spare time so not everything works perfectly...
No, no! Everything is great! That problem was because i do't understand the model and its params propely and also i understan how hard it is to write such application in spare time!

And, if it will interest you, here is another simulator (as toolbox for matlab):
http://www.ymer.org/amir/software/biological-neural-networks-toolbox/ 

Thanks a lot!
Reply | Threaded
Open this post in threaded view
|

Re: Izhikevich neuron has no stable state

Alexander_aka_Casper
In reply to this post by jyoshimi
It's me again. You say:

jyoshimi wrote
It should be fun to try these out (just open the neuron property dialog for an Izhikevich neuron and enter appropriate values.  For I values it's a little more complicated and I can explain if you ask; but most of them are 0 anyway).
I try all you suggested me. It's working! But i have a qestion again. :( About net, You'v gave me. It has 2 neurons. 1st - clamped, 2nd - Izhikevich. I set activation of 1st neuron to 40, 2nd neuron fireing. Great! But, what is "Activation" (40) for the 1st neuron? Is it current to 2nd neuron (40mV)? I could not understand, so:

I made another experiment. I set params of 2nd as for A neuron (tonic spiking). Connect to it Clamped neuron with Activation = 14 (if it is current, should it fire?), but nothing has happend...

I download *.m file from site, you'v advice me. And test Izh neuron with current = 14mV, and it fires as in picture. So, activation is not a current! Am I right?

As we can see from picture, tonic spiking neuron should fire each 50 ms. To achive this result, activation of 1st neuron should be 280. Why?

May be i don't understand something again? Could you explain me about "I" values? May be this is the problem?
Reply | Threaded
Open this post in threaded view
|

Re: Izhikevich neuron has no stable state

jyoshimi
Administrator
Hello,

Though I said this was somewhat complex, it actually isn't (things are more complex for the "post-synaptic" neuron of a spiking neuron, which must convert a spike into a number, but that's not at issue here).   The input current to the Izhikevich neuron is just weighted input.  So, assuming the weight is set at its default value of 1, then yes, the activation of the clamped neuron in your example just is the current I.

So, if you are getting different results in Simbrain than you do with the matlab script, then it may be something with the current implementation of the Izhikevich model (sigh...).  

There are a few things I can think of that might be causing the discrepancy, but I have not looked at it myself and alas, my next few days are pretty busy.  I'll try to have a look this weekend.  If you're itching to figure this out before then email me or post another message and I can at least tell you what my suspicions are.

- Jeff
Reply | Threaded
Open this post in threaded view
|

Re: Izhikevich neuron has no stable state

jyoshimi
Administrator
In reply to this post by Alexander_aka_Casper
Hello again,

A friend and I did some work validating Simbrain 2's Izhikevich implementation against the matlab scripts, including the tonic spiking case.   We did not find any discrepancies, so perhaps you can send more detail about the issue you ran into?  

One thing that was an issue is that the time-step in Simbrain does not, by default, match the tau parameter in the matlab scripts.   So that should be set to .2

Attached is a network that simulates tonic spiking with input current of 14.

Let me know if you have more questions or run into problems.

- Jeff


TonicSpiking_A.net 
Reply | Threaded
Open this post in threaded view
|

Re: Izhikevich neuron has no stable state

Alexander_aka_Casper
Hello, Jeff.

May be i'm not right. But i don't Understand one thing (the same i tried to explain in my previous post). I'll try to explain again, form other side.
Steps, i made:
1. I get Network form your's previous post.
2. Set time-step to 1 (second).
3. Connect output of Izh neuron to DataWorld. Add many Rows to it in CSV file.
4. Run simulation and got а row of states of Izh neuron. Each row is state in each second (with this time-step). Am I right? (see fig.1)

5. I import this data to MatLab and draw plot. (see fig.2)

6. As we can see from fig.2, destination between 1st two spikes is 28 seconds (you see - seconds!!! ). It is impossible!
7. Now, let's take a look to fig.3, taken from one of Izhikevich's articles.

You see, destination between pulses is about 20-40 ms (!! milliseconds) (look at small line, wich is eqal to 20 ms at right-bottom coner).
8. So, as I can understand, model is working propelly, but timeframe is wrong? if we consider, that time in SimBrain for this model not in seconds, but in milliseconds, they will be eqal.
(
9. If i set time-step to .001. In data world each line will be one millisecond. So, after 100-150 iteretions, i hope get smth like fig.3, but pulses are overblowed.
)
==
May be, I don't understand anything again?
==
It's not a problem, if i'll use only Izh neurons. But i want to combine them with Naka-Rushton model. and i can't, because of various timeframes.
==

Thank you.
Reply | Threaded
Open this post in threaded view
|

Re: Izhikevich neuron has no stable state

jyoshimi
Administrator
Hi Casper,

You are absolutely right.  It's a little embarrassing that I've missed this for so long.    I had a look at the Izhikevich article I used to implement the equation, and the Wilson book I used for Naka Rushton, and both differential equations have time in milliseconds.   Come to think of it, Neuron and Genesis default to milliseconds, and it seems to be a standard unit in computational biology.

So, the text in the Simbrain GUI should read "msec" instead of "seconds," since that's already what's assumed in all the Simbrain neuron models that are based on differential equations.  The mistake is just in that bit of GUI text.    Since all these models assume msec, you should be able to mix Naka Rushton and Izhikevich neurons without a problem.

I think this warrants an update to 2.0.  I'll try to fix a few other things too (like the Izhikevich default values), and perhaps even scrollbars in the data table.   I'll get to it as soon as possible and put the updated  "2.01" download on the website.

Thanks very much for raising these issues.

- Jeff

Reply | Threaded
Open this post in threaded view
|

Re: Izhikevich neuron has no stable state

Alexander_aka_Casper
Thanks very much. Now I understand. I'll try to construnct my net again as soon as possible.