Spiking neural networks, an introduction

脉冲神经网络的生物学背景+两种采用脉冲编码的神经元模型

概论

本文介绍了脉冲神经网络的生物学背景,并将介绍两种采用脉冲编码的脉冲神经元模型。

人工神经元的历史

  • 第一代:十五年之前McCulloch-Pitts提出,当神经元的加权的输入信号累积值高于阈值时,神经元输出一个二进制的高信号。

  • 第二代:应用了一个连续的激活函数,让他们更适应对输入和输出的模拟,可以更好的逼近任意模拟函数,有一定的通用性。

  • 总结:第一代和第二代没有应用单个脉冲,使用平均速率编码。平均机制没有脉冲,即没有中间值,神经元的输出值在迭代中计算。真实的神经元有一个基本的放电频率,连续激活函数可以模拟这些中间的输出频率,因此第二代神经元更加真实。

    • 突触可塑性:调整突触权重可以改变通过神经网络的信息流,神经元输入信号的强度会发生变化,因此输出信号的强度很可能也会发生变化。
    • 反向传播算法:使用连续激活函数允许我们应用梯度下降学习算法,如反向传播 ,这是一种非常常用且功能强大的监督学习算法,用于训练网络为某个输入向量提供所需的输出。
  • 第三代:不使用速率编码,而是使用脉冲编码,允许将多路信息复用为声音的频率和幅度。生物学研究证明,人脑处理信息的速度是很快的,因此无法实现平均速度编码这样的平均机制。在对速度要求很高的时候,脉冲编码方案有优势。

    速率编码:每个元素在相同的时间间隔的脉冲数量不同,例如相同时间间隔内,红色像素可以转换为16个刻度的八个脉冲,蓝色像素可以转换为十二个脉冲。(泊松编码,依据概率编码)

    时间编码:将输入像素值在特定的时间转化为单个脉冲,例如红色像素值导致第八个刻度的单个脉冲,而蓝色像素值导致第十二个刻度的单个脉冲。

生物背景

  • 神经元使用脉冲进行通信。神经递质释放的物质有兴奋性信号(EPSP)和抑制性信号(IPSP)。当电位总和达到阈值,会释放一个尖峰信号,之后神经元进入不应期。
  • 突触后神经元是大多数神经网络学习和发展模型的基础。

脉冲编码

本文只讨论两个模型:spike-response模型和integrate-and-fire模型。这两者都是threshold-fire模型的实例。

先介绍spike-response型再介绍integrate-and-fire模型,因为前者更简单。spike-response型接近于Hodgkin–Huxley模型,应用了神经元的一般特性,非常易于实现。

spike-response(脉冲响应)模型

神经元的脉冲序列可以描述为:

\(F_i={t^{(1)},……,t^{(n)}}\)

变量\(u_i\)​用来表示神经元\(i\)​的膜电位和内部状态。如神经元的膜电位从下方超过阈值\(\Theta\)​​,则会产生脉冲。将事件添加到\(F_i\)​中:

\(F_i=\{t|u_i(t)= \Theta\and u'_i(t)>0\}\)​​​​​​

神经元产生动作电位之后,膜电位突然升高后是一个持续很长时间的负后电位。这种超过阈值的急剧上升使得神经元短时间内不可能产生另一个脉冲,称为绝对不应期。相对不应期(SAP)就是变成负电位之后的一段电位,这个过程使得神经元再次产生新的脉冲的可能性降低。

用\(\eta\)​​来对绝对不应期和负不应期来进行建模:

\(\eta(s)=-n_0e^{-\frac{s-\delta^{abs}}{t}}H(s-\delta^{abs})-KH(s)H(\delta^{abs}-s)\)​​

\(H(s)=\left\{ \begin{array}{lr} 1,s>0\\ 0,s\leq0 \end{array} \right.\)

绝对不应期时间由\(\delta^{abs}\)决定,\(K\)确保膜电位高于阈值,\(n_0\)表示负后电位的持续时间。

对于传入突触后电位影响的描述:

\(\epsilon_{ij}(s)=(e^{(-\frac{s-\Delta^{ij}}{\tau_m})}-e^{(-\frac{s-\Delta^{ij}}{\tau_s})})H(s-\Delta^{ij})\)​

\(\Delta^{ij}\)​是传输时间延迟,\(0<\tau_s<\tau_m\)​定义了突触后电位效应持续时间常数。\(\epsilon\)​定义了兴奋性突触后电位影响,值为负为抑制性电位。使用\(\omega_{ij}\)​​​来模拟突触权重,使用负值对抑制性突触进行建模。​突触只能是兴奋性的或者抑制性的。

第二代神经网络是运用了基于时钟的迭代的方式,也可以处理模拟的信号,但因为没有反应的时间,所以不适合用于临时任务,而脉冲神经网络有反应时间。但是第二代神经网络的值不能被直接输入到脉冲神经元中,必须转化为脉冲,或者采用另一种方法来改变膜电位。实现后者的方法是通过\(h^{ext}(t)\)函数来描述外部影响对于膜电位的改变,公式如下:

\(h(t)=h^{ext}(t)+\sum_{j\in\Tau_i}\sum_{(f)\in F_j}\omega_{ij}\epsilon_{ij}(t-t_j^{(f)})\)

对于非硬件系统,将模拟信号转化为可直接送到网络的脉冲信号可能更方便。一个解决办法是应用泊松过程来用传感器神经元形成脉冲,较高的输入信号对应较高的脉冲,对脉冲进行处理并形成影响神经元的膜电位。神经元的激发式:

\(u_i(t)=\sum_{t_i^{(f)}\in F_i}n_i(t-t_i^{(f)})+h(t)\)​​​​​

上述公式与\(F_i\)形成脉冲响应模型,是一个强大且易于实现的模型,用于处理脉冲时间网络。

短期记忆神经元

常用的脉冲神经网络模型简化只考虑了最后一个脉冲的折射效应。将上述公式替换为:

\(u_i(t)=n_i(t-t_i^{'})+h(t)\)​

这个模型有利于“忘记”早起不稳定时期的影响,这个模型也很现实,使分析更加容易。对于这种模式的记忆称为“短期记忆神经元”。

IF神经元

最广泛使用的阈火神经元和一般的脉冲神经元模型是集火神经元。这个模型基于电子学原理,最容易解释。一个脉冲沿轴突向下传递,通过一个低通滤波器之后,将短脉冲转换为电流脉冲\(I(t-t_j^{(f)})\),为集成电路点火电路充电,由此产生的电压升高可以看做突触后电位\(\epsilon (t-t_j^{(f)})\),一旦电容器上电压超过阈值\(\theta\),神经元就会发出脉冲。

\(\tau _m\frac{\partial u}{\partial m}=-u(t)+RI(t)\)​

上式描述了随时间变化膜电位\(u\)​​的影响,\(\tau _m\)​​为表示电压“泄漏”的膜时间常数。与脉冲反应的模型一样,一旦超过某个阈值\(\theta\)​​,神经元就会产生短脉冲\(\delta\)​​。为了在点火后增加一个不应期,我们将\(u\)​​设置为\(K<0\)​​,持续时间为\(\delta _{abs}\)​​​。

\(I_i(t)=\sum_{j\in \tau _i}c_{ij}\sum_{t_j^{(f)}\in F_j}\delta(t-t_j^{(f)})\)

由于输入脉冲长度有限,所以神经元\(i\)​的输入电流\(I\)​​​通常为0。一旦一个脉冲信号到达,就乘以突触效应因子\(c_{ij}\)​​实现倍增,形成突触后电位,给电容器充电。该模型计算简单,易于硬件实现,且与一般的峰值相应模型密切相关,可以将其改写为正确的核\(\eta\)​​和\(\epsilon\)​​​​​来使用。

硬件中的脉冲神经元

超大规模集成电路(VLSI)技术将许多强大的功能集成到小芯片中,这样的系统可以使用二进制(数字VLSI)或连续(模拟VLSI)电压数据表示。数字系统发展快,需要大量能量的同步时钟实现时序的同步。模拟系统消耗的时间和空间更小,并且易于与现实世界实现接口,但是设计困难,因为不能忽略噪声的影响,足够可靠的非易失性模拟存储器还不存在。

噪声是随机效应的影响,在正常工作环境温度下运行的一切事物都有噪声,对于数字系统来说噪声并不是什么问题,但是模拟西戎没有实际的方法消除噪声的影响。然而大脑是模拟系统的一个完美的例子,在噪声下也可以运行良好。

神经网络的性能甚至因为噪声的存在而增加,脉冲神经元模型可以很容易的配备噪声模型,比如噪声阈值、重置或者集成。

混合系统可以提供一个可能完美的解决方案——使用可靠的数字通信和内存,同时使用快速、可靠和廉价的模拟计算和接口。在这个方案中,神经元可以发送短的数字脉冲,就像我们在集火模型中看到的一样,这个模型可以很好的在超大规模集成电路中实现。超大规模集成电路是并行工作的,神经系统的本质也是大规模并行计算,通过使用连续硬件解决方案,可以大规模提升速度。同时数字模拟要重新计算每个时间片,虽然计算机模拟在适应性方面有优势,但是将网络扩展到更多的神经元通常意味着离开实时模拟领域。超大规模集成电路可以被特别设计的能连接起来,形成一个可扩展的系统,由许多部分组成。

突触可塑性

突触是非常复杂的信号预处理器,在神经结构的发育、记忆和学习中起着重要作用。突触可塑性是预处理的一种变化形式,用突触效能的长期或者短期变化更好的描述即将发生的事情。

Hebbian可塑性是突触长时间增强(LTP)和长时间抑制(LTD)的一种基于突触前后神经元之间放电活动相关性的局部形式,通常可以采用速率编码轻松实现。类似的神经元活动意味着强相关性,当我们使用脉冲编码方案的时候,必须考虑单个脉冲定义神经活动中的相关性。纯Hebbian可塑性作用于每一个单独的突触,作用力强大而且难以控制,是一个正反馈过程,无休止的增强有效突触和削弱无效突触来改变突触后放电率,所以最好利用一种生物学的规则合理避免这种行为。

脉冲定时相关突触可塑性(STDP)是一种竞争性Hebbian学习形式,使用精确的脉冲定时信息。实验表明如果突触前动作电位在突触后峰出现五十毫秒内到达,则长期强化;如果突触前动作电位超过五十毫秒到达,则长期减弱。这种机制可以使LTP和LDP的稳定分布,使突触后神经元对传入动作电位的时间敏感。这种敏感性导致突触前神经元之间的竞争,从而导致更短的延迟、更短的脉冲同步时间和信息通过网络传播的速度更快。

Hebbian可塑性是无监督学习的一种形式,对于聚类输入数据很有用,但对于网络预期结果已知的情况下不太适合。反向传播算法是一种广为人知且经常使用的监督式学习算法,但由于其复杂的时空动态和对连续操作的要求,它不能被直接用于脉冲神经网络,但如果把单个脉冲信号和它的时间考虑在内,反向传播算法也存在一定适应性。

讨论

脉冲神经网络可以将多路信息转化为单一信号流。

本文介绍了非常通用和现实的脉冲神经网络模型以及在神经元中使用脉冲编码的更常见的集火模型。这两种模型都很强大逼真,易于在计算机模拟和硬件的超大规模集成电路中实现。标准的神经网络训练算法使用速率编码,因此不能用于脉冲神经网络。因此脉冲神经网络依赖突触可塑性使用精确的脉冲时间来优化网络信息流,在无监督的Hebbian学习中加强神经元之间的竞争。

脉冲编码在时间信息需要处理的时候具有强大的计算能力,切合于真实世界的输入输出。

SNN_文献阅读_Spiking neural networks, an introduction的更多相关文章

  1. 《Graph Neural Networks: A Review of Methods and Applications》阅读笔记

    本文是对文献 <Graph Neural Networks: A Review of Methods and Applications> 的内容总结,详细内容请参照原文. 引言 大量的学习 ...

  2. 【文献阅读】Self-Normalizing Neural Networks

    Self-Normalizing Neural Networks ,长达93页的附录足以成为吸睛的地方(给人感觉很厉害), 此paper提出了新的激活函数,称之为 SELUs ,其具有normaliz ...

  3. 【文献阅读】Augmenting Supervised Neural Networks with Unsupervised Objectives-ICML-2016

    一.Abstract 从近期对unsupervised learning 的研究得到启发,在large-scale setting 上,本文把unsupervised learning 与superv ...

  4. 【DeepLearning学习笔记】Coursera课程《Neural Networks and Deep Learning》——Week1 Introduction to deep learning课堂笔记

    Coursera课程<Neural Networks and Deep Learning> deeplearning.ai Week1 Introduction to deep learn ...

  5. [C1W1] Neural Networks and Deep Learning - Introduction to Deep Learning

    第一周:深度学习引言(Introduction to Deep Learning) 欢迎(Welcome) 深度学习改变了传统互联网业务,例如如网络搜索和广告.但是深度学习同时也使得许多新产品和企业以 ...

  6. Introduction to Deep Neural Networks

    Introduction to Deep Neural Networks Neural networks are a set of algorithms, modeled loosely after ...

  7. 【论文阅读】Learning Dual Convolutional Neural Networks for Low-Level Vision

    论文阅读([CVPR2018]Jinshan Pan - Learning Dual Convolutional Neural Networks for Low-Level Vision) 本文针对低 ...

  8. 【MobileNet-V1】-2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications-论文阅读

    2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications Andrew H ...

  9. 论文阅读 Streaming Graph Neural Networks

    3 Streaming Graph Neural Networks link:https://dl.acm.org/doi/10.1145/3397271.3401092 Abstract 本文提出了 ...

  10. 阅读笔记 The Impact of Imbalanced Training Data for Convolutional Neural Networks [DegreeProject2015] 数据分析型

    The Impact of Imbalanced Training Data for Convolutional Neural Networks Paulina Hensman and David M ...

随机推荐

  1. postgresql + timescaledb离线安装笔记(zabbix数据库准备工作)

    实验环境 操作系统:centos 7.6 PostgreSQL:14.6 timescaledb:2.8.1 网络:本地无网络 1 编译源码安装 1.1 准备工作 useradd postgres m ...

  2. shell 代码风格

    以终为始 initramfs_cgz=/srv/initrd/osimage/$os/$os_arch/${os_version%-iso}/$(date +"%Y%m%d").0 ...

  3. 【go语言】2.1.3 函数的定义和使用

    在 Go 语言中,函数是一种代码抽象和复用的方式.函数可以接受参数,执行特定的操作,并返回结果. 函数的定义 函数的定义以 func 关键字开始,后面跟着函数名.参数列表.返回值列表(可选)以及函数体 ...

  4. Amiya 前端UI

    最近在使用一个基于Ant Design 二次封装的组件 Git文档地址 Index - Amiya (gitee.io)

  5. 如何找到docker容器中的网卡外联的veth pair的另一张网卡

    1.概述 在Docker容器中,每个容器都有一个或多个网络接口(网卡),用于连接容器内部与宿主机或其他容器进行通信.这些网络接口中的一些可能是veth pair,也就是虚拟以太网对,它们以成对的方式存 ...

  6. ELK环境部署-Filebeat数据收集(三)

    一.安装JAVA环境 1.解压jdk压缩包 abc@elk:~$ sudo tar -zxvf jdk-11.0.18_linux-x64_bin.tar.gz -c jdk11 2.添加环境变量 a ...

  7. Linux下MySQL备份指定数据库命令

    比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump 命令格式如下: [root@linuxsir01 root]# mysqldump -u root -p li ...

  8. k8s1.25版本上实践 Ingress-nginx

    背景: 领导要求的最新最新版本k8s...使用ingress-nginx 对外暴露内部服务 环境 节点 master worker 主机/ip calico-master01/192.168.195. ...

  9. Python比较字符串格式类型时间大小

    已知的格式是 06/24/2021 15:47:01.491 时间比较的思路是,把数据转换成时间戳比较: 第一步是把 06/24/2021 15:47:01.491 格式转换称 2021-06-24 ...

  10. 其它——paramiko模块的使用

    文章目录 paramiko 一 介绍 二 通过用户名密码方式远程执行命令 三 通过用户名密码方式上传下载文件 四 通过公钥私钥远程执行命令 五 通过公钥私钥远程上传下载文件 六 通过私钥字符串远程连接 ...