[1] IZHIKEVICH QUADRATIC MODEL FOR SPIKING NEURONS
[2] 神经妙算
[3] 原始论文
[4] 快速了解
[5] Izhikevich神经元控制参数对可塑性神经元网络动力学的影响
出发点:
HH神经元无疑是生物可解释性最强的,但参数太多,计算复杂,因此需要基于合理的假设作出比较好的妥协。二次整合神经元相较于整合发放神经元(IF)脉冲不是人为添加,而是靠二次函数短时间内快速上升。
C v ′ = k ( v − v r e s t ) ( v − v t h r e s h ) + I ( t ) i f v ≥ v p e a k , t h e n v ← c Cv^{\prime} = k(v-v_{rest})(v-v_{thresh}) + I(t)\\ if\ v \geq v_{peak},\ \ \ then\ v\leftarrow c Cv′=k(v−vrest)(v−vthresh)+I(t)if v≥vpeak, then v←c
优点:
1、平滑的脉冲生成机制和脉冲的自动上冲
2、硬的峰后自动复位
使用分叉方法将HH模型简化为二阶常微分方程,Izhikevich在上述基础上加入恢复变量,使得神经元具有更加丰富的动态特性,而没有显著提高计算复杂度。
C d v d t = k ( v − v r ) ( v − v t ) − u + S d u d t = a ( b ( v − v r ) − u ) i f v ≥ v p e a k , t h e n v ← c , u ← u + d C\frac{dv}{dt} = k(v-v_r)(v-v_t)-u+S\\ \frac{du}{dt} = a(b(v-v_r)-u)\\ if\ \ v\geq v_{peak}, \ \ then \ \ v \leftarrow c,\ \ u \leftarrow u+d Cdtdv=k(v−vr)(v−vt)−u+Sdtdu=a(b(v−vr)−u)if v≥vpeak, then v←c, u←u+d
参数 | 含义 | 典型值 | 单位 |
---|---|---|---|
a | u u u的时间常数,用于膜电势缓慢恢复 | 0.02 | m s − 1 ms^{-1} ms−1 |
b | u u u对 v v v的依赖程度参数 | 0.2 | 1 0 − 9 Ω − 1 10^{-9}\Omega^{-1} 10−9Ω−1 |
c | 脉冲后reset的值 | -65mV | m V mV mV |
d | reset后 u u u增加程度 | 2 | |
S | 刺激,包括兴奋的、抑制的、内部的、噪声等 | p A p A pA | |
v | 膜电势 | m V m V mV | |
u | 恢复变量 | p A pA pA | |
vt | 瞬时阈值电位 | m V mV mV | |
vr | 静息电位 | m V m V mV |
u是膜电位恢复变量,主要用于统计火花钾离子和钝化钠离子的流动规律,并对膜电位起负反馈作用。
每个参数对神经元的动态性能都是有影响的(可以进行实验仿真)
p ′ = 0.04 v 2 + 5 v + 140 − u + I u ′ = a ( b v − u ) i f v > 30 m V , t h e n v ← c , u ← u + d p^\prime = 0.04v^2+5v+140-u+I\\ u^\prime = a(bv-u)\\ if \ \ v>30mV, \ \ then \ \ \ v\leftarrow c,\ \ \ u\leftarrow u+d p′=0.04v2+5v+140−u+Iu′=a(bv−u)if v>30mV, then v←c, u←u+d
能模拟丰富的脉冲形式,同时具有很高的计算性能。
在不同的参数下,Izhikevich神经元能够产生不同频率的电波,进而通过神经元的同步放电在可塑性网络中形成不同的放电节律,因此非常适合于大型网络的仿真。
四个参数定天下
%Created by Eugene M. Izhikevich, February 25, 2003
% Excitatory neurons Inhibitory neurons
Ne=800;
Ni=200;
re=rand(Ne,1);
ri=rand(Ni,1);
a=[0.02*ones(Ne,1); 0.02+0.08*ri];
b=[0.2*ones(Ne,1); 0.25-0.05*ri];
c=[-65+15*re.^2; -65*ones(Ni,1)];
d=[8-6*re.^2; 2*ones(Ni,1)];
S=[0.5*rand(Ne+Ni,Ne), -rand(Ne+Ni,Ni)];
v=-65*ones(Ne+Ni,1); % Initial values of v
u=b.*v; % Initial values of u
firings=[]; % spike timings
for t=1:1000 % simulation of 1000 ms
I=[5*randn(Ne,1);2*randn(Ni,1)]; % thalamic input
fired=find(v>=30); % indices of spikes
firings=[firings; t+0*fired,fired];
v(fired)=c(fired);
u(fired)=u(fired)+d(fired);
I=I+sum(S(:,fired),2);
v=v+0.5*(0.04*v.^2+5*v+140-u+I); % step 0.5 ms
v=v+0.5*(0.04*v.^2+5*v+140-u+I); % for numerical
u=u+a.*(b.*v-u); % stability
end
plot(firings(:,1),firings(:,2),'.');