【SNN脉冲神经元】【附模型代码】|Yamamoto2024论文精读|SNN如何与体外实验结合

脉冲神经网络(SNN)是模拟生物神经行为的计算模型,它们通过模拟神经元的脉冲活动来处理信息。SNN的研究可以追溯到最早的被动膜模型,这些模型试图描述神经元的电生理特性。

本博客将从SNN的起源讲起,逐步深入到HH模型的基本原理,再到Izhi模型的简化与应用。我们将通过Yamamoto2024的论文,探讨SNN如何与湿实验相结合,以及这种结合如何推动了神经科学和人工智能的交叉发展。

本文框架如下:

  1. 什么是SNN脉冲神经元模型?
  2. SNN如何用于实验?
  3. SNN的适用场景?
  4. 参考链接(附SNN|Izhikevich神经元网络仿真代码

什么是SNN

神经网络模型
  • 第一代神经网络:感知器,在1950年被提出,算法只有两层,输入层和输出层。只含有线性结构

在这里插入图片描述

  • 第二代神经网络:BP神经网络,于1980年左右,Rumelhart、Williams 等人提出第二代神经网络多层感知器 (MLP)。可以引入一些非线性的结构

    在这里插入图片描述

  • 第三代神经网络:脉冲神经网络 (SNN) ,除了神经元和突触状态之外,还将时间概念纳入了其中,更能模拟大脑神经元动力学。

    在这里插入图片描述


SNN的常见模型

最基础SNN - 1902 被动膜模型

从生物机理的角度对模型进行构建,神经元可以认为是:

“盐水中的小袋子,上面有一些孔”

在这里插入图片描述

其中,

  • 绝缘的细胞膜:认为是电容 C ,
  • 膜上面的离子通道:认为是电阻 R,
  • 通过树突接受其他神经元的电信号:表示为电流 I I I
  • 静息电位为 u rest u_{\text{rest}} urest:静息电位,由于浓度扩散效应和离子通道不均匀所导致
  • 膜内外的电压差为 u u u:这就是主要关注膜电位的时间序列

被动膜模型 - 公式推导

在这里插入图片描述

  1. 电流 I ( t ) I(t) I(t) 进来之后分成2部分,写成

    I ( t ) = I R ( t ) + I C ( t ) I(t)=I_R(t) + I_C(t) I(t)=IR(t)+IC(t)

  2. 根据电容 C 的公式 C = Q / U C=Q/U C=Q/U,移向后关于时间求导

    C ⋅ d U d t = d d t Q C \cdot \frac{d U}{d t}=\frac{d}{d t} Q CdtdU=dtdQ

    根据电荷量与电流的公式: d d t Q = I C \frac{d}{d t} Q=I_C dtdQ=IC,所以

    I C = C ⋅ d U d t I_C=C\cdot \frac{dU}{dt} IC=CdtdU

  3. 根据电压电流的关系: U = R ⋅ I U=R\cdot I U=RI,以及电压并联电压相等,

    U = U r e s t + U R U=U_{rest}+U_R U=Urest+UR

    我们可以得到: U − U r e s t = U R = R ⋅ I R U-U_{rest}=U_R=R\cdot I_R UUrest=UR=RIR,从而
    I R = 1 R ( U − U r e s t ) I_R=\frac{1}{R}(U-U_{rest}) IR=R1(UUrest)

  4. 将上面两个公式带回公式(1),得:

    I ( t ) = 1 R ( U − U rest  ) + C ⋅ d U d t I(t)=\frac{1}{R}\left(U-U_{\text {rest }}\right)+C \cdot \frac{d U}{d t} I(t)=R1(UUrest )+CdtdU

    移项:

    C ⋅ d U d t = − 1 R ( U − U rest  ) + I ( t ) C \cdot \frac{d U}{d t}=-\frac{1}{R}\left(U-U_{\text {rest }}\right)+I(t) CdtdU=R1(UUrest )+I(t)

    两边同时乘R:
    R ⋅ C ⋅ d u d t = − ( U − U rest  ) + R ⋅ I ( t ) R \cdot C \cdot \frac{d u}{d t}=-\left(U-U_{\text {rest }} \right)+R \cdot I(t) RCdtdu=(UUrest )+RI(t)
    R C RC RC记为 τ \tau τ,得:

    τ ⋅ d d t U = − ( U − U r e s t ) + R I ( t ) \tau \cdot \frac{d}{d t} U=-\left(U-U_{r e s t}\right)+R I(t) τdtdU=(UUrest)+RI(t)

    这就是最终的被动膜模型,也可以对这个模型稍作化简

    V = U − U r e s t V=U-U_{rest} V=UUrest,得:

    τ ⋅ d d t V = − V + R I ( t ) \tau \cdot \frac{d}{d t} V=-V+R I(t) τdtdV=V+RI(t)


被动膜模型 - 稳态分析

τ ⋅ d d t V = − V + R I ( t ) \tau \cdot \frac{d}{d t} V=-V+R I(t) τdtdV=V+RI(t)

对上述公式稍做分析:

  • 如果 I = 0 I=0 I=0,则V会指数衰减到0
  • 如果 I > 0 I>0 I>0,则当V变到与RI一样大时停止
  • 当施加了一段时间得I之后取消,则V会先上升之后再衰减到0.

SNN模型种类 - LIF模型

在被动膜模型的基础上增加阈值重置条件,并在发放后设置绝对不应期之后,
得到LIF模型

τ ⋅ d d t U = − ( U − U r e s t ) + R I ( t )  if  U ≥ U thresh   then  U ← U rest  \tau \cdot \frac{d}{d t} U=-\left(U-U_{r e s t}\right)+R I(t) \\ \text { if } U \geq U_{\text {thresh }} \text { then } U \leftarrow U_{\text {rest }} τdtdU=(UUrest)+RI(t) if UUthresh  then UUrest 

在这里插入图片描述


SNN模型种类 - HH模型

将钠钾离子通道考虑其中,得到HH模型

在这里插入图片描述

{ V ˙ = 1 C [ − g ˉ N a h ( V − V N a ) m 3 − g ˉ K ( V − V K ) n 4 − g ˉ L ( V − V L ) + I ] m ˙ = a m ( V ) ( 1 − m ) − b m ( V ) m h ˙ = a h ( V ) ( 1 − h ) − b h ( V ) h n ˙ = a n ( V ) ( 1 − n ) − b n ( V ) n \left\{\begin{array}{l} \dot{V}=\frac{1}{C}\left[-\bar{g}_{\mathrm{Na}} h\left(V-V_{\mathrm{Na}}\right) m^3-\bar{g}_{\mathrm{K}}\left(V-V_{\mathrm{K}}\right) n^4-\bar{g}_{\mathrm{L}}\left(V-V_{\mathrm{L}}\right)+I\right] \\ \dot{m}=a_m(V)(1-m)-b_m(V) m \\ \dot{h}=a_h(V)(1-h)-b_h(V) h \\ \dot{n}=a_n(V)(1-n)-b_n(V) n \end{array}\right. V˙=C1[gˉNah(VVNa)m3gˉK(VVK)n4gˉL(VVL)+I]m˙=am(V)(1m)bm(V)mh˙=ah(V)(1h)bh(V)hn˙=an(V)(1n)bn(V)n

其中,

  • V \mathrm{V} V 是膜电位,
  • C \mathrm{C} C 是用来代表细胞膜的电容
  • I ( t ) I(t) I(t) t \mathrm{t} t 时刻的外接电流
  • V N a , V K V_{N a}, V_K VNa,VK 是钠钾通道的电势,
    V L V_L VL 是其他通道平衡电势
  • g ˉ N a , g ˉ K \bar{g}_{\mathrm{Na}}, \bar{g}_{\mathrm{K}} gˉNa,gˉK 是不同通道的电导
  • m , h , n m, h, n m,h,n 用来控制离子通道的开关

{ a m ( V ) = 0.1 ( V + 40 ) 1 − exp ⁡ ( − V + 40 10 ) b m ( V ) = 4 exp ⁡ ( − V + 65 18 ) a h ( V ) = 0.07 exp ⁡ ( − V + 65 20 ) b h ( V ) = 1 1 + exp ⁡ ( − V + 35 10 ) a n ( V ) = 0.01 ( V + 55 ) 1 − exp ⁡ ( − V + 55 10 ) b n ( V ) = 0.125 exp ⁡ ( − V + 65 80 ) \left\{\begin{array}{l} a_m(V)=\frac{0.1(V+40)}{1-\exp \left(-\frac{V+40}{10}\right)} \\ b_m(V)=4 \exp \left(-\frac{V+65}{18}\right) \\ a_h(V)=0.07 \exp \left(-\frac{V+65}{20}\right) \\ b_h(V)=\frac{1}{1+\exp \left(-\frac{V+35}{10}\right)} \\ a_n(V)=\frac{0.01(V+55)}{1-\exp \left(-\frac{V+55}{10}\right)} \\ b_n(V)=0.125 \exp \left(-\frac{V+65}{80}\right) \end{array}\right. am(V)=1exp(10V+40)0.1(V+40)bm(V)=4exp(18V+65)ah(V)=0.07exp(20V+65)bh(V)=1+exp(10V+35)1an(V)=1exp(10V+55)0.01(V+55)bn(V)=0.125exp(80V+65)

一般认为钠离子通道的作用是去极化,钾离子通道是恢复变量。 V N a > V K V_{N a}>V_{K} VNa>VK

V < V N a V<V_{N a} V<VNa且钠离子通道打开后,钠离子流入导致正电流,从而膜电位上升;

同理可以分析,钾离子的作用主要作为恢复电位。


将SNN用于实验

本文使用SNN - lzhikevich模型 2003

这个模型主要对神经元的上升阶段,用二次函数来进行简化刻画。用

d v i   d t = 0.04 v i 2 + 5 v i + 140 − u i + η + I i , d u i   d t = a ( b v i − u i ) , \begin{gathered} \frac{\mathrm{d} v_i}{\mathrm{~d} t}=0.04 v_i^2+5 v_i+140-u_i+\eta+I_i, \\ \frac{\mathrm{d} u_i}{\mathrm{~d} t}=a\left(b v_i-u_i\right), \end{gathered}  dtdvi=0.04vi2+5vi+140ui+η+Ii, dtdui=a(bviui),

当神经元发放之后,与LIF模型类似,直接将膜电位和恢复变量重置

 if  v i > 30 m V , then  { v i ← c u i ← u i + d \text { if } v_i>30 \mathrm{mV} \text {, then }\left\{\begin{array}{l} v_i \leftarrow c \\ u_i \leftarrow u_i+d \end{array}\right.  if vi>30mV, then {vicuiui+d

  • 其中 v i v_i vi表示膜电位, u i u_i ui表示恢复变量。

  • 0.04 v i 2 + 5 v i 0.04 v_i^2+5 v_i 0.04vi2+5vi刻画了钠离子通道去极化的过程,

  • 钾离子通道或恢复变量,用 u i u_i ui 统一刻画。

  • η \eta η是噪声,噪声强度这里取1

  • 为了简化,本文将所有神经元的参数都设为相同

    a = 0.02, b = 0.2, c = −65 mV, d = 8


突触电流的作用方式

从第 i 个节点到第 j 个节点的电流,由下面公式给出

I i j ( t ) = ∑ t l < t W i j exp ⁡ ( − t − t l − Δ i j τ ) H ( t − t l − Δ i j ) I_{i j}(t)=\sum_{t_l<t} W_{i j} \exp \left(-\frac{t-t_l-\Delta_{i j}}{\tau}\right) H\left(t-t_l-\Delta_{i j}\right) Iij(t)=tl<tWijexp(τttlΔij)H(ttlΔij)

其中

  • W i j W_{i j} Wij为连边权重,

  • t l t_l tl是第 l l l 次发放的时间

  • t > 0 t>0 t>0 H ( t ) = 1 H(t)=1 H(t)=1,否则 H ( t ) = 0 H(t)=0 H(t)=0

  • exp ⁡ ( − t − t l − Δ i j τ ) \exp \left(-\frac{t-t_l-\Delta_{i j}}{\tau}\right) exp(τttlΔij) 描述了外部电流的作用时间

    τ = 10 ms \tau=10\text{ms} τ=10ms 是突触常数 (Orlandi et al., 2011)

  • Δ i j \Delta_{i j} Δij 是发放的作用时延,取均值为0.6ms,标准差0.1ms的随机数
    (Shimba et al., 2021)


连边权重的设置

考虑一个拓扑培养皿群的结构如下

在这里插入图片描述

  • 如果 i 和 j 位于不耦合的培养皿,则 W i j = 0 W_{ij}=0 Wij=0

  • 如果培养皿耦合,且顺着培养皿的连接方向,则设为 ( 1 + D ) p inter  (1+\mathcal{D}) p_{\text {inter }} (1+D)pinter 
    若逆着培养皿的方向,则设为 ( 1 − D ) p inter  (1-\mathcal{D}) p_{\text {inter }} (1D)pinter  p inter  ∈ [ 0 , 0.5 ] p_{\text {inter }} \in[0,0.5] pinter [0,0.5]

    D = 1 \mathcal{D}=1 D=1 意味着完全按照方向来连接, D = 0 \mathcal{D}=0 D=0 意味着没有方向。
    如右图所示

  • 同一个培养皿中的神经元连接概率为1。右图只是示意

  • 有连接之后,再确定连接权重 W i j W_{ij} Wij,连接权重设置为均值为3而标准差为1。


分析SNN仿真结果

方向性对同步的影响

在这里插入图片描述

  • 无方向性实验:设置D=0,此时培养皿没有方向性,此时神经元之间的连接为随机连接。神经元的发放频率较低,而且发放的模式比较同步。
  • 严格的方向性实验:设置D=1,此时神经元连接完全按照拓扑结构的方向进行连接,此时神经元的发放频率更高,而且不那么同步。

统计指标:全局网络激活 global network activation (GNA)

全局网络激活(GNA),符号表示为Φ,被定义为参与集体活动事件的神经元的平均比例。如每次集体活动,参与神经元比例为100%,认为这个系统是完全同步的。

识别集体活动的算法。

  1. 从第一个尖峰神经元i开始,在 2 τ 2\tau 2τ时间窗口扫描从神经元 i i i接受信号的神经元的尖峰, τ \tau τ是突触时间常数10ms
  2. 拿到新的峰进来之后,对新的峰再在 2 τ 2\tau 2τ的时间内迭代执行,直到没有进一步的尖峰被检测到

如果一轮检测完成,有超过5个尖峰被检测到,就被定义为集体时间。


统计指标:平均相关系数
  1. 将尖峰序列与高斯核卷积,得到平滑波形。记平滑之后的波形为 J i ( t ) J_i(t) Ji(t)
  2. 将神经元 i 与神经元 j 的平滑后波形进行逐点乘积,然后对乘机进行积分
  3. 将得到的结果除以两个波形个字的标准差,即得到相关系数。

统计指标 - 功能复杂性指标

因为不同的状态最终是以概率分布的形式呈现,皮尔逊相关系数也存在一个概率分布。将概率分布从 0 到 1 切分成 B = 20 B=20 B=20 份,第 k 份的相关系数的概率大小用 p k ( r i j ) p_k(r_{ij}) pk(rij) 表示。注意这里k表示份数,而不是状态索引

Θ = 1 − B 2 ( B − 1 ) ∑ k = 1 B ∣ p k ( r i j ) − 1 B ∣ \Theta=1-\frac{B}{2(B-1)} \sum_{k=1}^B\left|p_k\left(r_{i j}\right)-\frac{1}{B}\right| Θ=12(B1)Bk=1B pk(rij)B1

其实我感觉公式应该是

Θ = 1 − B ( B − 1 ) ∑ k = 1 B ∣ p k ( r i j ) − 1 B ∣ \Theta=1-\frac{B}{(B-1)} \sum_{k=1}^B\left|p_k\left(r_{i j}\right)-\frac{1}{B}\right| Θ=1(B1)Bk=1B pk(rij)B1

比如

  • 当相关系数平均分布于每一个小格子中时,此时意味系统在某个时刻的状态,完全平均的处于任何一种状态。
    此时每个格子中的概率都是 1 / B 1/B 1/B,此时 Θ = 1 \Theta=1 Θ=1

  • 当系统的复杂性没那么强,对于某一个特定的相关系数有很大的概率,比如某个相关系数的概率为1。此时

    Θ = 1 − B ( B − 1 ) ⋅ ( B − 1 B ) = 0 \Theta=1-\frac{B}{(B-1)} \cdot\left(\frac{B-1}{B}\right)=0 Θ=1(B1)B(BB1)=0


方向性对统计指标的影响
方向性对培养皿的影响

在这里插入图片描述

方向性对SNN的影响

在这里插入图片描述

  • 左图:展示了 Φ ( GNA ) \Phi (\text{GNA}) Φ(GNA)无方向有方向SNN模型 中的差异。小方块标识了它们的中位数。可以看到,增加了方向性之后,全局网络激活 指标变小了。这意味着方向性的增加会导致同步性的减弱。这与实验的数据是一致的。
  • 中图:平均相关系数。增加方向性之后,平均相关系数变小了。
  • 右图:功能复杂度。增加方向性之后,网络的功能复杂度增加了。

SNN的适用场景

  • 优点:

    • SNN可以产生连续化的输出
    • SNN的方程形式较简单,仿真速度块
  • 缺点:

    • SNN作为不连续的模型,缺乏有效的数学工具对SNN的长期的动力学进行分析。只适用于仿真场景

下期预告

SNN部分讲完了,很感激您能看到这里,大家如果对于文中的内容有什么问题或建议,都可以在评论区提出。我们之后也会努力去改正!

下一期我们将讲解 状态转移模型 的用法,这是一个更简单但更数学的模型,很容易进行大规模的神经元仿真,并且可以用来系统的长期稳态

欢迎点赞+关注呀。


相关链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值