Neuromorphic Computing | 基础知识

Neuromorphic Computing | 基础知识

现有形式

https://github.com/lava-nc/lava-dl/blob/main/tutorials/lava/lib/dl/slayer/pilotnet/train.ipynb

Spiking Neural Networks (SNNs)

只能输出脉冲,即0或1的神经元,都可以称之为“脉冲神经元”。使用脉冲神经元的网络,进而也可以称之为脉冲神经元网络(Spiking Neural Networks, SNNs)。

我们可以用充电、放电、重置,这 3 个离散方程来描述任意的离散脉冲神经元。

https://arxiv.org/pdf/2302.14311

在实际应用中多为离散状态,此时时间步长为 1,所以充电、放电、重置方程为:

  • 充电(Integrate): H [ t ] = f ( V [ t − 1 ] , X [ t ] ) H[t] = f(V[t-1], X[t]) H[t]=f(V[t1],X[t])
    • 如果结合前面的权重变换,这里的实际上可以写成 H [ t ] = f ( V [ t − 1 ] , ∑ i w i S [ t ] i p r e + b ) H[t] = f(V[t-1], \sum_iw_iS[t]_i^{pre}+b) H[t]=f(V[t1],iwiS[t]ipre+b),相当于是对前一层所有神经元的加权组合。所以脉冲神经元之间可以放置一些线性层,包括卷积、全连接等操作。(Towards memory- and time-efficient backpropagation for training spiking neural networks
  • 放电(Fire): S [ t ] = g ( H [ t ] − V t h r e s h o l d ) = Θ ( H [ t ] − V t h r e s h o l d ) , Θ ( x ) = { 1 , x ≥ 0 0 , x < 0 \begin{gather} S[t] = g(H[t] - V_{threshold}) = \Theta(H[t] - V_{threshold}), \\ \begin{split}\Theta(x) = \begin{cases} 1, & x \geq 0 \\ 0, & x < 0 \end{cases}\end{split} \end{gather} S[t]=g(H[t]Vthreshold)=Θ(H[t]Vthreshold),Θ(x)={ 1,0,x0x<0
  • 重置(Reset):( V [ 0 ] = 0 V[0]=0 V[0]=0
    • hard: V [ t ] = H [ t ] ⋅ ( 1 − S [ t ] ) + V r e s e t ⋅ S [ t ] V[t] = H[t] \cdot (1 - S[t]) + V_{reset} \cdot S[t] V[t]=H[t](1S[t])+VresetS[t]
    • soft: V [ t ] = H [ t ] − V t h r e s h o l d ⋅ S [ t ] V[t] = H[t] - V_{threshold} \cdot S[t] V[t]=H[t]VthresholdS[t]

其中 V [ t ] V[t] V[t] 是神经元的膜电位; X [ t ] X[t] X[t] 是外源输入,例如电压增量;使用 H [ t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值