SNN系列|神经元模型篇(2) Izhikevich

Izhikevich Model

参考

[1] IZHIKEVICH QUADRATIC MODEL FOR SPIKING NEURONS

[2] 神经妙算

[3] 原始论文

[4] 快速了解

[5] Izhikevich神经元控制参数对可塑性神经元网络动力学的影响

  • Izhikevich博士于2003年提出,使用二叉树对HH数学上的简化
  • 对神经元的简化,最简化的是只保留firing rate
  • 于HH与LIF之间进行计算复杂与动态性能的权衡
对二次整合神经元的改进:

出发点:

在这里插入图片描述

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(vvrest)(vvthresh)+I(t)if vvpeak,   then vc
优点:
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(vvr)(vvt)u+Sdtdu=a(b(vvr)u)if  vvpeak,  then  vc,  uu+d

各参数意义:
参数含义典型值单位
a u u u的时间常数,用于膜电势缓慢恢复0.02 m s − 1 ms^{-1} ms1
b u u u v v v的依赖程度参数0.2 1 0 − 9 Ω − 1 10^{-9}\Omega^{-1} 109Ω1
c脉冲后reset的值-65mV m V mV mV
dreset后 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是膜电位恢复变量,主要用于统计火花钾离子和钝化钠离子的流动规律,并对膜电位起负反馈作用。

每个参数对神经元的动态性能都是有影响的(可以进行实验仿真)

  • 在一定范围内,恢复变量的时间尺度参数的存在一个能够决定网络放电节律中 γ \gamma γ节律是否存在的临界值;此外时间尺度参数的变化会影响 γ \gamma γ节律出现的时间
  • 恢复变量对膜电位的依赖程度参数能够影响可塑性网络的放电行为,低依赖程度参数下的网络,可能会出现体现无标度性质的“单神经元放电”放电行为
简化模型:

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+140u+Iu=a(bvu)if  v>30mV,  then   vc,   uu+d

  • 0.04 v 2 + 5 v + 140 0.04v^2+5v+140 0.04v2+5v+140的取值是为了将膜电势限制在mv水平,时间限制在ms水平,选用其他参数亦可

动态特性

能模拟丰富的脉冲形式,同时具有很高的计算性能。

在不同的参数下,Izhikevich神经元能够产生不同频率的电波,进而通过神经元的同步放电在可塑性网络中形成不同的放电节律,因此非常适合于大型网络的仿真。

在这里插入图片描述
在这里插入图片描述

Matlab代码

四个参数定天下

%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),'.');
  • 13
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的Spike Response Model (SRM)的Matlab实现代码: ``` % SRM model parameters tau_m = 10; % Membrane time constant (ms) theta = -50; % Membrane threshold (mV) tau_s = 2; % Synaptic time constant (ms) w = 1; % Synaptic weight % Simulation parameters dt = 0.1; % Time step (ms) T = 1000; % Simulation time (ms) t = 0:dt:T; % Time vector % Input spike train spikes = zeros(size(t)); spikes(1:100:end) = 1; % Membrane potential and spike train v = zeros(size(t)); spike_train = zeros(size(t)); % Simulation loop for i = 2:length(t) dvdt = (-v(i-1) + w*spikes(i-1))/tau_m; v(i) = v(i-1) + dt*dvdt; if v(i) > theta spike_train(i) = 1; v(i) = 0; end end % Plot results figure; subplot(2,1,1); plot(t, spikes); title('Input spike train'); xlabel('Time (ms)'); ylabel('Spike train'); subplot(2,1,2); plot(t, spike_train); title('Output spike train'); xlabel('Time (ms)'); ylabel('Spike train'); ``` 在上面的代码中,我们首先设置了SRM模型的参数,包括膜时间常数tau_m、膜阈值theta、突触时间常数tau_s和突触权重w。然后,我们设置了模拟的参数,包括时间步长dt、模拟时间T和时间向量t。接下来,我们创建了一个输入脉冲列spikes。我们使用一个简单的方法,在每100个时间步长之间设置一个脉冲,以模拟一个周期为100ms的输入信号。然后,我们使用模拟循环来计算SRM模型的膜电位v和输出脉冲列spike_train。如果膜电位v超过了阈值theta,我们就会发射一个脉冲,并将膜电位v重置为0。最后,我们绘制了输入脉冲列和输出脉冲列。 希望这个代码能够帮助你更好地理解SRM模型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值