首先本文是读完
如何看待第三代神经网络SNN?详解脉冲神经网络的架构原理、数据集和训练方法 原创-CSDN博客
一文通俗入门·脉冲神经网络(SNN)·第三代神经网络-CSDN博客
两篇文章的总结,文章仅用于学习。
本文主要讨论STDP和STBP方法。
我们都知道,SNN网络由于其复杂的动力学和脉冲的不可微性质导致训练困难,于是有两种方法解决,
1、STDP(Spike-Timing-Dependent Plasticity,脉冲时间依赖可塑性)是一种基于神经元之间的相对脉冲发放时间来调整突触权重的无监督学习规则。这种学习方式不需要标签数据,而是通过神经元的活动本身来指导学习过程。
2、STBP是一种直接训练SNN的方法,它能够同时利用空间域和时间域的信息进行训练,它通过引入梯度下降训练,可以有效地优化网络权重,提高学习性能。STBP需要解决脉冲活动的不可微分问题,通常通过引入近似导数的方法来实现。
1、脉冲神经网络简介
脉冲神经网络(SNN,Spiking Neural Network)是一种受生物神经系统启发的计算模型,它与传统的人工神经网络(ANN)在信息处理方式上存在显著差异。以下是SNN网络的一些基本特点:
生物可解释性:SNN模仿了生物神经元的工作机制,包括脉冲发放、突触权重变化等,因此在神经科学和认知科学领域具有较高的生物可解释性。
脉冲编码:在SNN中,信息通过神经元的脉冲(或称为尖峰)序列来编码和传递,而不是像ANN那样通过连续的激活值。
时间动态:SNN能够处理时间动态信息,即网络的输出不仅取决于当前的输入,还取决于输入的时间历史。
事件驱动:SNN是事件驱动的,这意味着它们对输入信号的变化做出反应,而不是在每个时间步长都进行计算,这使得SNN在处理动态视觉传感器数据等方面表现出色。
稀疏激活:SNN中的神经元通常不会同时激活,这种稀疏性有助于提高计算效率和降低能耗。
突触可塑性:SNN中的突触权重可以根据学习规则(如STDP)动态变化,这使得网络能够通过突触权重的调整来学习输入数据的统计特性。
多样化的神经元模型:SNN中可以使用多种神经元模型,如Leaky Integrate-and-Fire (LIF) 模型、Izhikevich模型等,以适应不同的生物学特性和计算需求。
学习算法:SNN的训练可以使用不同的学习算法,包括无监督学习(如基于STDP的规则)、间接监督学习(如先训练ANN再转换为SNN)和直接监督学习(如STBP算法)。
硬件兼容性:SNN的脉冲特性使其非常适合在神经形态硬件上实现,这些硬件可以高效地执行SNN模型,有望在能效和速度上超越传统计算平台。
应用领域:SNN在多个领域都有潜在的应用,包括图像和语音识别、机器人控制、生物信号处理、以及需要处理时间序列数据的场景。
SNN的研究和应用正在快速发展,它们提供了一种与传统ANN不同的视角,以理解和模拟智能信息处理机制。
然而我们的大脑在绝对识别准确性方面,通常比现有的人工智能机器表现得差。这反映了我们需要更全面和公平的衡量标准来评估和模拟生物大脑工作方式的 SNN。我们需要考虑 SNN 网络的 Efficiency,而不仅仅是 Accuracy。评价一个 SNN 时要从多个角度考量,比如:application accuracy,memory cost, compute cost 。
在以 ANN 主导的评价指标和任务中,相同大小的 SNN 无法打败 ANN。但是在以 SNN 主导的评价指标和任务中,SNN 的表现会更好。
2. LIF模型的两种数学模型
从这里我们可以看出,ANN处理的是连续的数据,而SNN处理的是离散的数据。
2.1 第一种LIF模型
脉冲神经元电位动力学的数学模型最常用的是漏电积分放电模型(leaky integrate-and-fire ( LIF )),这个模型工作过程与生物神经元充电、漏电、放电过程类似。下面详细讨论LIF模型。
我们知道,每个脉冲神经元内部有电压v,当没有接收到任何脉冲输入时,电压v会随着时间指数稳定到平衡电压,这个过程用LIF模型描述为:
这是一个一阶线性非齐次微分方程,求解后得到
其中,