本文将描述脉冲神经网络以及神经元信息处理过程。都是个人理解,有错误望指出,谢谢!

脉冲神经网络

概念

脉冲神经网络是一种模拟生物神经系统工作原理的人工神经网络,通过使用脉冲信号来传递信息,模仿神经元在生物大脑中如何处理信息。而神经元只有在其膜电位达到一定阈值时,才会发放脉冲。一旦脉冲被触发,神经元会向连接的其他神经元发送脉冲。跟传统神经网络不同的是脉冲神经网络使用离散脉冲信号进行信息传递和计算,传统神经网络则是基于连续激活值来传递信息。

脉冲神经网络根据结构和信息传递方式的不同,分为前馈型、递归型混合型三种类型。

前馈型脉冲神经网络

信息从输入层到输出层,沿单一方向流动,无回馈链接。网络结构较为简单,适合处理某些基本的任务。

递归型脉冲神经网络

信息通过反馈连接在网络中循环传递。因此网络的输出不仅受当前输入的影响,还会受到之前状态的影响,这使得递归型网络能够处理时间序列数据或动态系统,具有记忆个自适应能力。

混合型脉冲神经网络

具备两者特点,既有前馈连接,也有反馈连接,适用于更加复杂和动态的任务。典型结构有同步发放链,液体状态机

同步发放链

一种基于时间序列的脉冲神经网络模型,同步发放链的神经元通过突触连接形成一个链式结构,由多个脉冲神经元同步发放脉冲来实现信息的处理和传播,适用于处理图像识别,语音处理等。

液体状态机(LSM)

一种递归型脉冲神经网络模型,液体指的是网络中的神经元集合,它们通过随机的连接和突触形成一个高度动态的网络,通过一个复杂的动态网络(液体)来“储存”输入信号的时间信息,并通过读取层来提取这种时间信息,这个过程类似于生物大脑中的信息传递和处理方式。它不需要训练网络中每个神经元的连接,而是依赖于“液体”状态的动态变化来进行信息的处理。由于LSM具有动态特性,它可以有效地捕捉输入信号中的时间序列模式和动态变化,因此特别适合处理需要长期记忆或时序依赖的数据。

神经信息的处理过程

神经信息的处理可以分为两个基本环节:编码(Encoding)解码(Decoding)。

编码:将外界的连续信号或数字信号转换成神经元可处理的脉冲序列;

解码:将神经元产生的脉冲序列还原为有意义的输出,例如控制信号,重构原始输入。

编码过程

总体流程是将外部输入信号进行归一化预处理,根据信号幅度带宽选择编码策略,最终输出脉冲序列:                  

 S(t)=Encode(x(t))

x(t) :连续输入信号;S(t) :输出的脉冲序列(由0/1组成,1表示在时刻t有脉冲)

常见编码方法
1.频率编码

将输入信号的幅度大小映射为神经元在单位时间内的脉冲发放频率

f_{i} =k\cdot \frac{x_{i}-x_{min}}{x_{max}-x_{min}}

 f_{i}:第 i个输入的发放频率,k:最大脉冲频率(超参数),x_{min}x_{max}:输入信号的最小值和最大值

2.时间编码

通过脉冲发放的时间延迟表示输入信号,值越大,脉冲发放越早。

t_{spike} = t_{max} - \alpha \cdot \frac{x_{i}-x_{min}}{x_{max}-x_{min}}

 t_{spike}​:脉冲发放时间,t_{max}:最大延迟,\alpha:缩放因子

3.脉冲概率编码

脉冲在时间步内以泊松分布概率出现,概率大小与输入值成正比。

P(spike at t) =\frac{x_{i}}{x_{max}}

在每个时间步,生成一个0到1的随机数,如果小于 P,则发放脉冲。

解码过程

脉冲序列 → 特征提取(频率/时间/模式) → 输出值计算 → 任务结果

\hat{x}(t)=Decode(S(t))

S(t):脉冲序列输入,\hat{x}(t):重构的连续信号或分类结果

常见解码方法
1.频率解码

通过计算脉冲在时间窗口内的发放次数来估计输出值

\hat{x} =\frac{1}{T}\sum_{t=0}^{T}s(t)

  s(t):时刻 t 是否发放脉冲(1 或 0),T:总时间步长

2.时间解码

利用第一个脉冲的发放时间表示输出大小。

\hat{x}=t_{max}-t_{first\_spike}

 t_{first\_spike}​:第一个脉冲发放时间

总结

通过编码解码计算形成完整的信息流动:外部信号 → 编码 → SNN计算 → 解码 → 任务结果

脉冲神经网络广泛应用在机器人控制,模式识别和分类等需要模拟生物神经系统的计算任务中。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐