历史文章:人工智能前沿学生论坛

「综述专栏」类脑运算:脉冲神经收集阐述_神经元_脉冲 AI快讯

作者:CSDN—Yannan_Strath地址:https://blog.csdn.net/Yannan_Strath

01

Spiking Neural Network简述

传统神经网络包括现存的各种以perceptron为基本单元的拓扑变种, 比如卷积神经网络系列(CNNs), 循环神经网络系列(RNNs), 天生对抗网络(GANs), 自编码器(Autoencoders) 等等。
由于反向传播算法的存在和各种数学优化器的发展, 使得第二代神经网络在各项任务上有着出色的表现。

Spiking Neural Network(SNN) 被公认为继现有的MLP为根本的第二代神经网络(ANN)之后发展的第三代神经网络。
虽然传统神经网络已然在各项任务上取得了精良的成绩, 但它们的事理和运算过程仍旧和真正的人脑信息处理过程依然相差甚远。
紧张的差异可以总结为以下几点:

1. 传统神经网络算法仍旧依据于利用高精度的浮点数进走运算, 然而人脑并不会利用浮点数进走运算。
在人的传感系统和大脑中, 信息会以动作电压或称之为电脉冲(electric spike)的形式通报,接管,和处理。
2. ANN的演习过程对反向传播算法(梯度低落)的依赖程度非常之高, 然而在真实的人脑学习过程中,科学家们还没有不雅观察到这种学习类型。
更多的, 人脑的影象和学习依赖于突触后细胞受到刺激后所产生的突触可塑性。
详见:Hebbian learning3. ANN常日须要大量的标签数据集来驱动网络的拟合。
这与我们平时经理的有所不同。
我们在很多情形下的感知和学习过程都是非监督式的。
并且, 人脑常日不须要如此大量反复的数据来学习同一件事情。

综上所述, 为了使神经网络更加靠近于人脑, SNN随而出身了。
创造它的灵感,就来自于生物大脑处理信息的办法—spikes。
读到这里,就该当已经明白SNN并不是一个像CNN,RNN这样的网络构造, 而是一个新型的,更加靠近人脑的一种神经网络算法的统称。

02

SNN和ANN的差异

那么, SNN和传统方法的差异在哪里呢?

1,信息载体(information carrier)

首先, 最基本的差异是SNN和ANN的信息载体不一样。
ANN 利用的是高精度浮点数而SNN利用的是spikes 或可以理解为1和0,这就大大增加了信息在网络中的稀疏性。
这些spike在网络中有相同的幅度和duration.

图1左:传统神经网络构造。
右:SNN构造

那么,在SNN中, 信息是如何用spike来表达的呢?这就涉及到脉冲编码的知识了。
这里做大略先容,之后我会再详细阐明它。
在SNN中, 很主要的一点是引入了时序(temporal)干系的处理形式。
信息是被编码在脉冲序列的韶光序列(spike train)中的。
例如:高频率的一组脉冲序列可以代表一个较高的值而低频率的脉冲则代表低值。
又例如:在一个固定的韶光窗中, 单个脉冲涌现的位置也可以代表相应的值/信息。

2,神经元

图2左:传统神经元。
右:spiking neuron

既然信息的载体不一样, 那么神经网络中的基本单元–神经元肯定也是不一样的。
对ANN有理解的同学们都知道, 基本神经元perceptron 是一个大略的 加乘运算器用来整合输入该神经元的值 而后接着一个非线性的激活方程(Non-linear activation function)。
然而这种针对确切数值的运算并不适用于二进制脉冲的处理。
在SNN中, 基本的运算单元为以生物突触构造为根本构建的脉冲神经元(spiking neuron)。
想象有两个spiking neuron 个中一个为突触前神经元(pre-synaptic neuron)作为spiking的发出者, 一个为突触后神经元(post-synaptic neuron) 作为spike的接管者。
spiking neuron所进行的处理是接管由突触通报而来的脉冲, 依据突触权重通过spiking function产生突触后膜电压(post synaptic potential (PSP))

图2 spiking neuron的示例。
PSP代表post synaptic potential.

那么PSP是什么呢?大略的阐明便是神经元上的膜电压变革。
例如图三便是一个神经元接管到spike后膜电压u(t)随着韶光t的变革。
在生物学中, 这种电脉冲的幅值和韶光常数是在特定例模内的, 例如图三中, 膜电压在接管到脉冲输入前会一贯保持在-70mV的地方, 这个值常日叫做静止值(resting value)。
当接管到刺激后, 会产生电压变革的幅值。
在变革结束后, 膜电压会归位回起始的静止值。
在实际操作中这种波形要若何产生呢?科学家们对生物神经元进行实验剖析后, 给出了许多神经元的差分方程(differential equation)模型:

例如:IF neuron(integrated and fire)

可以看出来式子为电容定律的韶光导数,Q = CV。
当施加输入电流时,膜电压会随韶光增加,直到达到恒定阈值Vth,此时将涌现增量函数尖峰,并且电压会重置为其静止电位,此后模型将连续运行。

除此之外Hodgkin–Huxley 模型, LIF模型, SRM模型等等。
但Neuron model在SNN中的浸染紧张还是作为脉冲序列的处理单元, 其真正的生物学仿真特性我个人认为在SNN的实际运用过程中不必要求过于苛刻的靠近于实际生物学的膜电压波形。

图3 单个spike产生的膜电压变革。

那么像图4一样, 当一个突触后神经元接管到多个channel的脉冲序列输入膜电压会发生什么样的变革呢?

图4 单个spiking neuron接管多个spike输入。

图5 膜电压变革仿真。

如图5所示。
突触后神经元会首先按照接管到的韶光整合脉冲, 将他们变为膜电压的变革的叠加。
当膜电压超过预先设置好的阈值(\vartheta)时,突触后neuron被认定为收到了足够的刺激从而发出一个脉冲(spike)。
在发出脉冲后, 膜电压会被重置并且突触后神经元会在一段韶光内无法处理吸收到的脉冲, 这段韶光称为神经元的refractory period。
在refractory period之后, 膜电压会规复到静止值从而可以准备下一次脉冲的产生。
这便是脉冲神经元一次完全的spike generation过程。

3,学习方法/利用方法

传统ANN紧张依赖于基于梯度低落的反向传播算法。
但在SNN中, 由于spiking neuron的function常日为不可导的差分方程, 在SNN中实现反向传播就显得非常的困难。
那么如何演习SNN呢?在实际运用N中, SNN implementation主流的办法大概有三种, 这里做简要的方法阐述:

1. 将传统ANN转换为SNN

既然SNN不可以利用BP来演习那么将传统的神经网络演习好转换为SNN是有可能的吗?答案是肯定的。
这种方法的优点是不用考虑任何SNN的特性, 但要将演习好的网络在输入,运算和输出上全面转换为以二进制spike为处理载体的网络。
在输入上,要将输入旗子暗记编码为脉冲序列。
所有神经元要用相应的spiking neuron来更换, 演习所得得权主要进行量化。

2. 反向传播

欸,作者。
你不是刚刚提到SNN得spike function是无法进行反向传播得嘛?那为啥这里又说它可以了?没错, 脉冲神经元得spike function的确无法直接求导做差打算出梯度。
但研究职员想出了很多聪明得方法来预估网络中得变革参数得梯度从而进行反向传播。
这样得算法虽然还存在辩论但它确实在某种程度上降落了SNN得演习繁芜度, 这样得算法比如有 spikeprop, Slayer 等等

3. 突触可塑性

这个比较前两种方法就更加靠近于生物学得学习了。
利用生物学得事理研究职员将spike time dependent plasticity (脉冲韶光干系可塑性)引入了SNN得演习。
然而这种演习方法虽然novel, 但演习过程非常繁琐, 而且是一种纯非监督式学习, 非常磨练设计者对神经科学和神经网络得理解, 我会后续连续写出干系得博客来先容并利用它。

03

ANN VS SNN

总结, SNN目前仍在快速发展中, 其上风展现在于比较ANN具有更大的移动设备运用潜能。
这紧张归于它的处理办法可以结合新型的类脑芯片(neuromorphic chips)实现高速低功耗的大规模网络运算。

所想所写都仅为个人理解, 如有缺点欢迎指出和更正。
期待与您共同在新兴领域进行探索和学习。

本文目的在于学术互换,并不代表本"大众年夜众号赞许其不雅观点或对其内容真实性卖力,版权归原作者所有,如有侵权请奉告删除。