SNN_文献阅读_Spiking neural networks, an introduction
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的更多相关文章
- 《Graph Neural Networks: A Review of Methods and Applications》阅读笔记
本文是对文献 <Graph Neural Networks: A Review of Methods and Applications> 的内容总结,详细内容请参照原文. 引言 大量的学习 ...
- 【文献阅读】Self-Normalizing Neural Networks
Self-Normalizing Neural Networks ,长达93页的附录足以成为吸睛的地方(给人感觉很厉害), 此paper提出了新的激活函数,称之为 SELUs ,其具有normaliz ...
- 【文献阅读】Augmenting Supervised Neural Networks with Unsupervised Objectives-ICML-2016
一.Abstract 从近期对unsupervised learning 的研究得到启发,在large-scale setting 上,本文把unsupervised learning 与superv ...
- 【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 ...
- [C1W1] Neural Networks and Deep Learning - Introduction to Deep Learning
第一周:深度学习引言(Introduction to Deep Learning) 欢迎(Welcome) 深度学习改变了传统互联网业务,例如如网络搜索和广告.但是深度学习同时也使得许多新产品和企业以 ...
- Introduction to Deep Neural Networks
Introduction to Deep Neural Networks Neural networks are a set of algorithms, modeled loosely after ...
- 【论文阅读】Learning Dual Convolutional Neural Networks for Low-Level Vision
论文阅读([CVPR2018]Jinshan Pan - Learning Dual Convolutional Neural Networks for Low-Level Vision) 本文针对低 ...
- 【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 ...
- 论文阅读 Streaming Graph Neural Networks
3 Streaming Graph Neural Networks link:https://dl.acm.org/doi/10.1145/3397271.3401092 Abstract 本文提出了 ...
- 阅读笔记 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 ...
随机推荐
- 智能制造之路—从0开始打造一套轻量级MOM平台之仓库管理(WMS)
一.前言 讲仓库管理(WMS)之前,我们先来谈一谈ERP.前一篇文章,大家可以看出,我在做MOM平台规划的时候并没有提到任何ERP的信息,并不是被忽略掉了:而是对于制造企业来说,ERP是重中之重. M ...
- 模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)
目录 流程 版本 安装 Docker 安装 PaddleNLP 安装 环境准备 模型准备 压缩模型 下载模型 模型部署 环境配置 启动服务 测试 -- 暂时还没通过 重启 图像识别 + 信息抽取(UI ...
- Typescript: 当出现错误时,不编译文件成js文件
在tsconfg.json文件中添加如下选项 "noEmitOnError": true, /* Disable emitting files if any type checki ...
- word中查找替换不能使用 解决方案
打开查找,然后点更多,最下面点不限定格式
- 快速掌握Vue3:速成Vue3前端开发看这篇就够啦
一.Vue基本概念 1.1-Vue3的优点 Vue3支持Vue2额大多数特性. 更好的支持TypeScript. 打包大小减少41%. 初次渲染快55%,更新渲染快133%. 内存减少54%. 使用p ...
- 在 Spring 6 中使用虚拟线程
一.简介 在这个简短的教程中,我们将了解如何在 Spring Boot 应用程序中利用虚拟线程的强大功能. 虚拟线程是Java 19 的预览功能,这意味着它们将在未来 12 个月内包含在官方 JDK ...
- 你能看到这个汉字么“ ” ?关于Unicode的私人使用区(PUA) 和浏览器端显示处理
如果你现在使用的是chrome查看那么你是看不到我标题中的汉字的,显示为一个小方框,但是你使用edge查看的话,这个字就能正常的显示出来,不信你试试! 本故事源于我在做数据过程中遇到Unicode编码 ...
- Microsoft Build 2021大会开始后,Develop Blog一系列更新
.NET BLOG 发布.NET 6预览版4 https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-4/ 发布.NET MAUI ...
- 什么是 x10 开发工具?「GitHub 热点速览」
都听过 10x 工程师,一个人顶得过十个人.但是并不是每个人都是 10x 工程师,但是有些效率工具可能让你变成 2x.3x 的工程师.比如,这周火爆的 3D 游戏引擎 FlaxEngine 有着强大的 ...
- 若依框架的startPage( )函数怎么自动关联查询SQL语句?
Question Description 使用JAVA语言的若依框架的时候,发现只要使用了startPage()函数, 并不需要前端传递分页的数据,也不需要注解,就能完成分页功能.预判他应该是使用类似 ...