特不靠谱的论文总结机+十级废话bb机

日常焦虑ing

导航

SNN_LIF模型

LIF模型

Leaky integrity-Fire(LIF)模型

输入信号直接影响神经元的状态,即神经元膜电位,只有当膜电位上升到阈值的时候,才会产生输出信号。

  • 膜电位:细胞膜两侧的电位差。只有当膜电位到达阈值的时候,才会发送脉冲信号,影响下一个神经元。
  • 动作电位:细胞膜受到外界刺激之后产生的电位变化。
  • 静息电位:细胞膜未收到外界刺激的时候的电位。
  • 过程:细胞膜受到脉冲刺激之后,变化过程为\(极化\to 去极化 \to 阈值\to 再极化\to 超极化\to 极化\to 不应期\)

基本思想:如果上一个神经元输入不超过阈值的时候,获得的电位会回到静息状态;如果神经元接收到的脉冲进行积分之后到达阈值,会发射一个脉冲信号,对下一个神经元进行刺激,激发之后会引起不应期,即使给予刺激也不会给出相应的反应。


公式

\(q=\int I(t)dt\) 细胞膜电位积累,给细胞膜充电的过程

细胞膜的等效电流公式:

\(I(t)=I_R+I_C\)

\(I_C=C\frac{du(t)}{dt}\)

\(I_R=\frac{u(t)-u_{res}}{R}\)

\(RC\dot{u}(t)+u(t)-RI(t)=0\)

对方程进行求解:

\(u(t)=RI(t)+C_1e^{-\frac{t}{RC}}\)

计算\(t=0\)的时候,\(u(t)=u_0\)\(C_1\)的值为:

\(C_1=u_0-RI(t)\)

最终得出:

\(u(t)=RI(t)+[u_0-RI(t)]e^{-\frac{t}{RC}}\)

如果\(I(t)=0\),则\(u(t)=u_0e^{-\frac{t}{RC}}\)

如果要输入给计算机计算,则需要进行离散化和递归求解:

\(\tau\frac{du(t)}{dt}=-u(t)+RI(t)\)

\(\tau\frac{u(t+\Delta t)-u(t)}{\Delta t}=-u(t)+RI(t),\Delta t\to 0\)

\(u(t+\Delta t)=u(t)+\frac{\Delta t}{\tau}[-u(t)+RI(t)]\)


仿真参数设计

仿真步长:0.001

初始状态:\(I(0)=0\)

\(R=5\times 10^{7}\)

\(C=1\times 10^{-10}\)


Python实现

import matplotlib.pyplot as plt
def LIF(u,R=5e7,C=1e-10,I=0,step_time=1e-3):
    u = u + step_time/(R*C)*(-u + R*I)
    return u
u = 0.9
num_step = 100
u_trace = []
for step in range(num_step):
    u_trace.append(u)
    u = LIF(u)
plt.plot(u_trace)
plt.xlabel("Time step")
plt.ylabel("Membrane Potential")
plt.title("LIF")
plt.xlim([0, 50])
plt.ylim([0, 1])
plt.show()

posted on 2022-05-09 17:59  橙汁不吃糖  阅读(912)  评论(0编辑  收藏  举报