SNN是什么
个人参考链接:
- 🔗:SNN脉冲神经网络总结
- 🔗:SNN系列|学习算法篇(2)SpikeProp
- 🔗:SNN系列|学习算法篇(1)Tempotron
- 🔗:SNN系列|学习算法篇(5) Hebbian Rules
- 🔗:SNN系列|学习算法篇(3)ReSuMe
- 🔗:SNN系列|学习算法篇(5) Hebbian Rules
- 🔗:SNN综述(2):生物可解释的脉冲神经网络
- 🔗:[脉冲神经网络] PSD (Precise-Spike-Driven) 规则学习算法
1.SNN的背景
1.1 NN的进化
到目前为止,神经网络的进化之路,可以化为如下三个阶段:
- 第一代nn:感知器,一个简单的神经元只能处理二进制数据。
- 第二代nn:通常是全连接的神经网络,它们输入连续的值,然后输出连续的值 ,也就是目前我们一直在使用各种神经网络,BP,CNN,RNN等,本质来讲,这些神经网络都是基于神经脉冲的频率进行编码( rate coded)。
- 第三代nn:脉冲神经网络(spiking neural networks),其模拟神经元更加接近实际,把时间信息的影响也考虑其中 。旨在弥合神经科学与机器学习之间的鸿沟,使用接近真实的生物神经模型来进行计算。SNN可以归类为类脑计算,是认为生物智能是人工智能想要达到的目标和方向,标榜自然智进行改进与深化。
理论上我们现在的神经网络已经从连续的输出转变为了二元输出,表面看起来退化了。然而,脉冲训练给了我们更强大的处理 时空数据 的能力,而这些时空数据通常就是我们的真实世界的感官数据
- 空间:神经元只与其本地的神经元相连接,可以分别处理输入块的输入(类似于CNN使用过滤器一样)
- 时间:脉冲训练是随着时间发生的,因此我们损失了二进制编码,但是获得了脉冲发生时间相关的信息
这使得可以非常自然的处理时间相关的数据而不需要引入RNN而带来复杂性
1.2 脉冲神经网络的诞生原因
- 人工神经网络需要高性能的计算平台
- 人工神经网络仍不能实现强人工智能,人们认为是因为其与生物大脑仍存在巨大差距
1.3 SNN vs ANN
SNN与ANN最主要的不同是使用离散的脉冲信号替代ANN网络中传播的连续的模拟信号。SNN的网络结构与ANN类似,主要使用类似于全连接网络或者CNN结构的网络。为了在这种网络结构上产生脉冲信号,SNN使用了更加复杂也更加贴近于生物的神经元模型,目前使用最多的是Integrity-Fire(IF)模型和Leaky integrity-Fire(LIF)模型。对于这类神经元模型来说,输入信号直接影响的是神经元的状态(膜电位),只有当膜电位上升到阈值电位时,才会产生输出脉冲信号。
脉冲是在时间点上发生的离散的事件,而不是连续的值。当一个神经元被激活,它会产生一个信号传递给其他神经元,提高或降低其膜电位。(自然生物神经网络的“神经递质”),然后该神经元的值会被重置。SNN通常是稀疏连接的,并且通过特殊的网络拓扑结构来实现。
ANN的两个功能:
- 对前一层神经元传递的信号计算加权和,用于模仿生物神经元之间传递信息的方式
- 二是采用一个非线性激活函数输出信号,后者用来提高神经网络的非线性计算能力
相比于人工神经元,脉冲神经元则从神经科学的角度出发,对真实的生物神经元进行建模。脉冲神经网络,其模拟神经元更加接近生物实际
脉冲神经元存在源于生物神经网络中神经元的侧向抑制作用(侧向抑制:指处于同一层中的不同神经元之间的相互作用)。当一个神经元接受刺激被激活以后,它除了将刺激传递到下一层神经元,还会因为本身被激活而抑制其同一层内周边神经元被激活的概率。从神经元模型中体现的就是膜电位高于静息电位(-65mV或者是其他预设值)的神经元会抑制其周围甚至同层内所有神经元的膜电位增长。这种侧向抑制作用使得受到刺激较多的神经元比其他神经元有更大概率产生脉冲信号输出,从ANN的角度来看,这有点类似于Attention机制,但是又比Attention机制更加强烈和粗暴。
SNN特点:
- 采用了生物神经元模型如IF,LIF等,比之前ANNs的神经元更接近生物。
- 信息的传递是基于脉冲进行。所以网络的输入要进行额外编码,例如频率编码和时间编码等,转现在的数据(例如图片的像素)转换成脉冲
- 基于脉冲的编码,能蕴含更多的信息
神经元模型特点:
- 神经元的输入输出信号形式与ANN不同
- 脉冲神经元不需要额外的激活函数
- 脉冲神经元不需要输入偏置(bias)
1.4 脉冲神经元模型
神经元动力学可以被设想为一个总和过程(有时也称为“集成”过程),并结合一种触发动作电位高于临界电压的机制。 一般来所,Vrest < Vth,当Vi(t)(对所有所输入求和后的所得到电压)上升到阈值θ时就会引起动作电位从而产生脉冲。发放的脉冲的形状是相似的,其传递的信息实质在于某时刻脉冲的有无。
动作电位被称为事件(忽视脉冲的形状)的神经元模型被称为IF模型。对于描述IF模型,我们需要两样东西:
- 1.膜电位Vi(t)的公式
- 2.产生脉冲的机制
IF模型,HH模型,LIF模型
1.5 脉冲编码方式
现在主流的认为神经元的编码方式有两种:
- 速率编码(rate code):TT的时间内的mean firing rate,一段时间内脉冲数的平均值
- 时间编码(temporal code):是基于单个脉冲的精准时间,可以理解成他们时刻关注着外部的刺激,一般该种细胞存在在听觉系统或听觉回路中。
1.6 SNN的局限性
理论上SNN比第二代神经网络更为强大,但没有被广泛使用的主要原因是:
- SNN目前的主要问题在于 如何训练。尽管我们有无监督的生物学习方法,比如Hebbian和STDP,但是还没有找到比第二代生成网络更为高效的有监督的SNN训练方法。由于脉冲训练是不可微分的,我们不能在SNN训练中使用梯度下降而不丢失脉冲的精确时间信息。
- 在通用硬件上模拟SNN是非常的计算密集型的,因为它需要模拟不同的微分方程。但是类似于IBM的TrueNorth等模拟神经元的硬件通过特殊的模拟神经元的硬件可以来解决这个问题,它可以利用神经元脉冲的离散和稀疏的特性。
2.脉冲神经网络
2.1 脉冲神经网络的拓扑结构
分类:
- 前馈型脉冲神经网络
- 递归型脉冲神经网络
- 混合型脉冲神经网络
2.1.1前馈型脉冲神经网络
在多层前馈脉冲神经网络结构中,网络中的神经元是分层排列的,输入层各神经元的脉冲序列表示对具体问题输入数据的编码,并将其输入脉冲神经网络的下一层。最后一层为输出层,该层各神经元输出的脉冲序列构成网络的输出。输入层和输出层之间可以有一个或者多个隐藏层。
此外,在传统的前馈人工神经网络中,两个神经元之间仅有一个突触连接,而脉冲神经网络可采用多突触连接的网络结构,两个神经元之间可以有多个突触连接,每个突触具有不同的延时和可修改的连接权值。多突触的不同延时使得突触前神经元输入的脉冲能够在更长的时间范围对突触后神经元的脉冲发放产生影响。突触前神经元传递的多个脉冲再根据突触权值的大小产生不同的突触后电位。
2.1.2递归型脉冲神经网络
递归型神经网络不同于多层前馈神经网络和单层神经网络,网络结构中具有反馈回路,即网络中神经元的输出是以前时间步长上神经元输出的递归函数。递归神经网络可以模拟时间序列,用来完成控制、预测等任务,其反馈机制一方面使得它们能够表现更为复杂的时变系统;另一方面也使得有效学习算法的设计及其收敛性分析更为困难。
传统递归人工神经网络的两种经典学习算法
- 实时递归学习(real-time recurrent learning)算法
- 随时间演化的反向传播(backpropagation through time)算法
这两种算法都是递归地计算梯度的学习算法。
递归脉冲神经网络是指网络中具有反馈回路的脉冲神经网络,由于其信息编码及反馈机制不同于传统递归人工神经网络,由此网络的学习算法构建及动力学分析较为困难。递归脉冲神经网络可应用于诸多复杂问题的求解中,如语言建模、手写数字识别以及语音识别等。
递归脉冲神经网络分类:
- 全局递归脉冲神经网络(fully recurrent spiking neural network)
- 局部脉冲神经网络(locally recurrent spiking neural network)。
2.1.3 混合型脉冲神经网络
混合型脉冲神经网络=前馈型结构 + 递归型结构
2.2 信息的脉冲序列编码方法
在进行脉冲神经网络的模拟与计算时,包含以下步骤:
- ① 当输入数据或神经元受到外界刺激时,经过特定的脉冲序列编码方法,可将数据或外界刺激编码成特定的脉冲序列;
- ② 脉冲序列在神经元之间传递并经过一定的处理,处理之后将输出的脉冲序列通过特定的解码方法进行解码并给出具体的响应。
2.3 脉冲神经网络的学习方法
人工神经网络主要基于误差反向传播(BP)原理进行有监督的训练,目前取得很好的效果。对于脉冲神经网络而言,神经信息以脉冲序列的方式存储,神经元内部状态变量及误差函数不再满足连续可微的性质,因此传统的人工神经网络学习算法不能直接应用于脉冲神经神经网络。
突触可塑性(synaptic plasticity):突触连接强度随时间的变化过程
脉冲神经网络的学习方式:
- 无监督学习(unsupervised learning)
- 监督学习(supervised learning
- 强化学习(reinforcement learning
- …
2.3.1 无监督学习算法
脉冲神经网络的无监督学习算法大多是借鉴传统人工神经网络的无监督学习算法,是在Hebb学习规则不同变体的基础上提出的。神经科学的研究成果表明,生物神经系统中的脉冲序列不仅可引起神经突触的持续变化,并且满足脉冲时间依赖可塑性 (spike timing-dependent plasticity,STDP) 机制。在决定性时间窗口内,根据突触前神经元和突触后神经元发放的脉冲序列的相对时序关系,应用STDP学习规则可以对突触权值进行无监督方式的调整。
STDP:在一个事件中,对于相邻的位于前后两层的两个都产生了神经冲动的神经元,如果前一个神经元先产生脉冲,那么随着两个脉冲之间的时间间隔的减小,两个神经元之间突触连接的可能性逐渐增大。反之,如果前一个神经元后产生脉冲,则随着两个脉冲之间的时间间隔的减小,两个神经元之间突触连接的可能性逐渐减小。应用在SNN中,这里的突触连接可能性可以转变为突触连接强度。
赫布法则 (Hebbian Rule):当两个在位置上临近的神经元,在放电时间上也临近的话,他们之间很有可能形成突触。而突触前膜和突触后膜的一对神经元的放电活动(spike train)会进一步影响二者间突触的强度。
2.3.2 脉冲神经网络的监督学习
脉冲神经网络的监督学习是指对于给定的多个输入脉冲序列和多个目标脉冲序列,寻找脉冲神经网络合适的突触权值矩阵,使神经元的输出脉冲序列与对应的目标脉冲序列尽可能接近,即两者的误差评价函数最小。对于脉冲神经网络来说,神经信息以脉冲序列的形式表示,神经元内部状态变量及误差函数不再满足连续可微的性质,构建有效的脉冲神经网络监督学习算法非常困难,同时也是该领域的一个重要的研究方向。
监督学习算法分为三类:
- 基于梯度下降的监督学习算法的基本思想是利用神经元目标输出与实际输出之间的误差以及误差反向传播过程,得到梯度下降计算结果作为突触权值调整的参考量,最终减小这种误差。 基于梯度下降的监督学习算法是一种数学分析方法,在学习规则的推导过程中,要求神经元模型的状态变量必须是有解析的表达式,主要采用固定阈值的线性神经元模型,如脉冲响应模型(spike response model)和Integrate-and-Fire神经元模型等。
- 基于突触可塑性的监督学习算法的基本思想是利用神经元发放脉冲序列的时间相关性所引起的突触可塑性机制,设计神经元突触权值调整的学习规则,这是一种具有生物可解释性的监督学习。
- 基于脉冲序列卷积的监督学习算法通过脉冲序列内积的差异构造脉冲神经网络的监督学习算法,突触权值的调整依赖于特定核函数的卷积计算,可实现脉冲序列时空模式的学习。
也可以划分为两类:
- Off-line的方法主要是先训练ANN网络,然后再将连边权重等训练所得参数以及各种超参数固化到SNN网络中。这种方法虽然效果较好,但是很显然丢掉了SNN本身仿生的意义。
- On-line的方法则是将目光聚焦在神经元模型的膜电位上。 脉冲信号是不可求导的,那么现有的众多基于梯度的优化方法也就没法直接应用于SNN。但是与网络中传播的信号不同,神经元的膜电位在很多情况下都是连续可导的,而且前后两个神经元的膜电位变化状况也能反应它们之间传递的脉冲信号。所以很多研究也就集中在使用膜电位制造可导信号上。除此之外,on-line的另一类方法则是关注了脉冲信号累积的效果,同样可以产生类似于连续模拟信号的可导信号。这两类on-line学习方式虽然在传统任务上与off-line方式还有一点差距,但是在动作信号、动画信号甚至文字的识别上展现了强大的能力,在一定程度上实现了将多种任务整合的能力。
除了以上两类优化方式,基于规则的优化方法也逐渐显现出其强大的分类能力
2.3.3 脉冲神经网络的进化方法
进化算法(evolutionary algorithm) :模拟生物进化过程的计算模型,是一类基于自然选择和遗传变异等生物进化机制的全局性概率搜索算法
分类:
- 遗传算法(genetic algorithm)
- 进化规划(evolutionary programming)
- 进化策略(evolutionary strategy)
- …
将进化算法与脉冲神经网络有机结合起来,研究者开辟了进化脉冲神经网络(evolutionary spiking neural network)的研究领域,以提高对复杂问题的求解能力。进化脉冲神经网络可以作为自适应系统的一种一般性框架,在没有人为干预的情况下系统自适应调整神经元的参数、连接权值、网络结构和学习规则。
3.SNN学习算法
3.1 监督学习基本框架
监督训练的一般过程:
- 确定编码方式,将样本数据编码为脉冲序列(得到Si(t));
- 将脉冲序列输入脉冲神经网络计算得输出脉冲序列So(t);
- 将期望脉冲序列和实际输出脉冲序列对比得到误差,并根据误差调整W。
脉冲神经网络的难点:
- 如何确定编码方式,即如何将样本信息合理地转化为脉冲序列进行训练;
- 如何设计脉冲神经元模型,如何模拟脉冲神经网络;
- 如何度量实际输出脉冲序列和期望输出脉冲序列误差,即误差函数的合理的定义。
当前对上述难点的solution:
- 延迟编码、相位编码、Time-to-First.Spike编码、BsA(Bens Spike AlgoIithm)编码等时间编码策略。
- LIF,IF,IM,HH模型等;
- 误差定义(举例):
脉冲神经网络监督学习算法的关键是构建合适的突触学习规则,其涉及到的方法和技术:
- 神经信息的编码与解码方法,已有的编码方法:
- 神经信息的频率编码
- 相位编码
- Time-to-First-Spike编码
- BSA(Bens Spike Algorithm)编码
- 神经元模型与网络模拟策略,根据复杂程度将脉冲神经网络分为:
- ①具有生物可解释性的生理模型
- ②具有脉冲生成机制的非线性模型
- ③具有固定阈值的线性模型
- 脉冲序列的相似性度量方法
3.2 基于梯度下降的监督学习算法
3.2.1 SpikeProp算法
SpikeProp是对经典的反向传播算法的一种改编,是第一个为SNNs开发的监督学习算法。该算法采用基于spike响应模型的快速时间编码。
核心:最小化误差函数
误差函数:E =
- a:实际的
- d:预期的
- t:时刻
- j:神经元编号
梯度计算:
===-
3.2.2 Multi—SpikeProp算法
对SpikeProp算法改进,应用链式规则推导了输出层和隐含层突触权值的梯度下降学习规则,并将其应用到标准XOR问题,以及更加实际的Fisher Iris和脑电图的分类问题,实验结果表明Multi—SpikeProp算法比SpikeProp算法具有更高的分类准确率。
3.2.3 Tempotron算法
核心:实际输出膜电位更符合期望输出膜电位
神经元模型LIF:
V(t)=K(t-) +
K(t-)=
- 代表脉冲发放时刻
- 标识膜电势整合的延迟参数
- 表示突出电流的延迟参数
- 归一化因子
突触传递效率更新:
= K
Tempotron采用的神经元模型是Integrate-and-fire模型,成功实现了单脉冲的时空模式分类,但该神经元输出仅有0和1两种输出,此外它无法拓展到多层网络结构。
3.3 基于突触可塑性学习算法
Hebb最先提出一个突触可塑性的假说:
- (1) 如果突触两侧的两个神经元(即连接)同时被激活,则该突触的强度会选择性地增加。
- (2) 如果突触两侧的两个神经元被异步激活,则该突触被选择性地削弱或消除。
3.3.1 Hebbian学习算法
基于脉冲发放时间的Hebbian学习算法。在每个学习周期,学习过程由3个脉冲决定,包括两个突触前脉冲和1个突触后脉冲。第一个突触前脉冲表示输入信号,第2个突触前脉冲表示突触后神经元的目标脉冲。
权值的学习规则可表示为: = ( - )
- 表示学习率
- 和分别表示突触后神经元的实际和目标脉冲时间
3.3.2 ReSuMe学习算法
STDP和anti-STDP两个过程结合->远程监督方法(Remote Supervised Method, ReSuMe)
应用ReSuMe算法训练脉冲神经网络,突触权值的调整仅依赖于输入输出的脉冲序列和STDP机制,与神经元模型和突出类型无关,因此该算法可用于各种神经元模型,但仅适用于单层神经网络的学习。
ReSuMe算法的突触权值随时间变化的学习规则为: = [(t) - (t)][ + (s)(t-s)ds]
- Si和So分别表示突触前输入脉冲序列和突触后输出脉冲序列
- Sd表示目标脉冲序列
- 对于兴奋性突触,ad参数 取正值,学习窗口 adi(s)表示为STDP规则
- 对于抑制性突触,adad参数 取负值, adi(s)表示为anti-STDP规则。
3.3.3 SWAT学习算法
BCM(Bienenstock-Cooper-Munro)学习规则 + STDP -> SWAT(Synaptic Weight Association Training)算法
脉冲神经网络由输入层、隐含层和输出层构成,网络中隐含层神经元作为频率滤波器,输入和目标输出表示为具有固定频率的脉冲序列。隐含层突触包含兴奋性和抑制性两类。输出层包含一个训练神经元和多个输出神经元。
3.4 基于脉冲序列卷积的监督学习算法
3.4.1 SPAN算法
SPAN(Spike Pattern Association Neuron)算法 应用LIF (Leaky Integrate-and-Fire)神经元模型 主要特点是应用核函数将脉冲序列转换为卷积信号,通过转化后的输入脉冲序列,神经元目标和实际输出脉冲序列,应用Widrow-Hoff规则调整突触权值
LIF神经元模型:详细的基于电导的神经元模型能够高度准确地重现电生理信号,但是其计算相当复杂。计算消耗低的、简单的现象级脉冲神经元模型在神经编码、记忆和网络动力学中非常受欢迎。
LIF模型的子阈值动力学方程如下: = - ((t) - ) + I(t)
- (t)是膜电势
- 为细胞膜时间常数
- 是细胞膜静息电位
- 是细胞膜电阻
- I(t)是输入突触提供的电流的和
3.4.2 Precise-Spike-Driven (PSD)算法
目的:处理和记忆时空相关的输入
PSD从传统的Widrow-Hoff规则衍生,作为监督学习规则,利用实际输出脉冲和目标输出脉冲之间的误差修改神经元连接权值:突触权值的调整根据目标输出脉冲与实际输出脉冲的误差来判断,正误差(positive errors)会导致长时程增强,而负误差(negative errors)会导致长时程的抑制。
优势:在计算上效率较高并且是符合生物学原理的,当编码方式正确时它可以取得很好的识别效果.
3.5 传统ANN向SNN的转化算法
由于脉冲神经网络的训练算法不太成熟,一些研究者提出将传统的人工神经网络转化为脉冲神经网络,利用较为成熟的人工神经网络训练算法来训练基于人工神经网络的深度神经网络,然后通过触发频率编码将其转化为脉冲神经网络,从而避免了直接训练脉冲神经网络的困难。
ANN转SNN中,我们实际需要的只有ANN中训练的权重,权重又受到ANN中的激活函数,dropout,正则化,池化,权重归一化(如batch Normalization,还有很多类型),输入数据的归一化范围之类的影响。这些技术都会影响到权重值得取值。一般来说,ANN转SNN后,准确度肯定会下降,我们要做的就是尽量将损失减低。而损失的多少直接由权重决定。
4.最新进展
🔗:学界 | 浙大&川大提出脉冲版ResNet:继承ResNet优势,实现当前最佳
5.SNN相关知识点汇总
1、兴奋性突触与抑制性突触的作用是分别是神经元细胞膜电位的增加与减少。
2、现在流行的人工神经网络所使用的神经元模型(例如ReLU)都是第二代神经元模型。它们主要用于处理模拟数值
3、脉冲神经网络使用的第三代神经元模型,第三代神经元的构建是受生物真实性的启发,它能处理基于脉冲处理的信号
4、脉冲神经网络的两个优势:1、计算效率高。2、具有更强的生物真实性
5、脉冲神经元因其本身具有时间的属性,所以更适合处理有关时序的输入信息
6、脉冲神经元相对复杂,针对输入,它们能提供复杂的非线性映射,从理论上分析,针对一个复杂的任务,一个小型的网络就能解决该任务。
7、神经元模型中的参数τmτm表示的是膜时间常数,它与膜电压的衰减有关,τmτm越大,膜电压Vm(t)Vm(t)衰减的速度越慢
8、从概念和计算的角度来看,与其他尖峰神经元模型相比,LIF模型相对简单,所以采用最广泛。同时LIF模型有个优点就是该模型很容易通过硬件实现,而且运行速度很快。
9、SRM(Spike Response Model)是LIF模型的一个推广,它在神经元动力学中使用了核方法。
10、Hodgkin-Huxley(HH)模型是根据在乌贼身上的大量实验结果所构建的。它是迄今为止最详细和最复杂的神经元模型,然而,该神经元模型的需要很大的计算量,因此该模型不适用于大型网络的仿真。
11、Izhikevich(IM)模型可以通过在神经元动力学方程中设置不同的参数,使神经元具有不同的功能(例如连续激发一系列脉冲或只发射一个脉冲)
12、脉冲神经元本质上是为了处理和产生这种时空脉冲序列。
25、STDP是今年来最常使用的学习算法,它是基于Hebbs理论
26、Tempotron rule 算法只能学习神经元是否产生脉冲,不能是神经元发放脉冲的精准时间,所以该算法不能支持输入和输出峰值中使用的相同的编码方案(因为脉冲输出时间没法确定),基于Tempotron的改进型算法PSD,可以学习到神经元产生脉冲的精准时间。
27、SpikeProp rule可以训练神经元在特定时间产生单个脉冲用于进行时空分类。该算法是一种基于梯度的监督学习算法。该算法的主要缺点是它的输出神经元只能发放一个脉冲,不能产生多个脉冲
28、为了解决SpikeProp输出只能发放一个脉冲的问题,提出Chronotron rule、ReSuMe relu,他们的输出可以是多个脉冲。
29、SPAN relu和Chronotron E-learning relu的权重更新都是基于误差梯度。他们之间的误差梯度有所不同。但这这些基于梯度(数学)所设计的学习算法不具备生物真实性。
6.参考文献
脉冲神经网络汇总:https://blog.csdn.net/edward_zcl/article/details/90755592
tempotron:
https://blog.csdn.net/sadfassd/article/details/78463893
https://blog.csdn.net/y1187926460/article/details/78419767
https://blog.csdn.net/sadfassd/article/details/78278595
https://www.cnblogs.com/yifdu25/p/8124119.html
脉冲神经网络学习笔记(综述)
https://blog.csdn.net/sadfassd/article/details/78637718
PSD算法:
https://blog.csdn.net/sadfassd/article/details/78463966
脉冲神经网络基础性知识
https://blog.csdn.net/qq_34886403/article/details/82715629
脉冲神经网络:
https://blog.csdn.net/lu_fun/article/details/80221194
https://blog.csdn.net/edward_zcl/article/details/89031904
https://blog.csdn.net/zjccoder/article/details/40148417
https://blog.csdn.net/h__ang/article/details/90513919
https://blog.csdn.net/qq_34886403/article/details/84504483
https://blog.csdn.net/wydbyxr/article/details/83956277
https://baike.baidu.com/item/脉冲神经网络/4452657?fr=aladdin
脉冲神经元模型:
https://blog.csdn.net/u011853479/article/details/61414913
仿生脉冲神经网络--揭开生物智慧之谜:
http://www.spikingnn.net/
脉冲神经网络与小样本学习附PPT:
https://cloud.tencent.com/developer/news/392411
脉冲编码方式: