7」ANN与SNN的分析与讨论

过犹不及,止于至善

Your follow means everything to me, hahaha, thanks!

目录

对人工神经网络的分析和讨论👉

对脉冲神经网络的分析和讨论👉

结语👉

       经过三起两落的发展,人工神经网络在包括图像处理、自然语言处理和强化学习在内的许多领域都有了优异的表现,甚至有些成熟的算法和架构已经能够为社会作出贡献、产生经济效益。例如人工神经网络构成的深度神经网络在无人驾驶领域的发展,造就了特斯拉电动汽车的传奇;人工神经网络在自然语言处理方面的发展,使得科大讯飞的品牌越来越大、越来越有商业竞争力。

       而人工神经网络的起源也是从人类对于脑科学的研究发展而来。从对巨型乌贼的轴突进行的实验开始,人类对于大脑的研究和开发就从未停止。人类大脑计划(Human Brain Project, HBP)是继人类基因组计划之后,又一国际性科研大计划。就原理而言,无论是ANN还是SNN,其发展仍然受限于人类对于脑的认知和研究。人脑能够执行惊人的任务(例如,同时识别多个目标、推理、控制和移动),而能量消耗只有接近2瓦左右。相比之下,标准计算机仅识别1000种不同的物体就需要消耗250瓦的能量。仅仅是这么一个指标,就足以看出当前的人工神经网络和脉冲神经网络的局限性,这也显示出当前的脑科学研究已经不能满足其他领域的要求,需要进一步的科研进展。

       与人工神经网络中的神经元模型不同,生物的神经元是通过离散动作电位或者“脉冲”进行信息的交换和传递。突触是是记忆和学习的基本存储元素。人脑拥有数十亿个神经元网络,通过数万亿个突触相互连接。基于脉冲的时间处理机制使得稀疏而有效的信息在人脑中传递。研究还表明,灵长类动物的视觉系统由分层级的关联区域组成,这些关联区域逐渐将视觉对象的映像转化为一种具有鲁棒性的格式,从而促进了感知能力。 这种技术上的“欠缺”催生了脉冲神经网络的出现和发展。脉冲神经网络被称为是继人工神经网络之后的“第三代神经网络”,旨在弥合神经科学和机器学习之间的差距,使用最拟合生物神经元机制的模型来进行计算。脉冲神经网络与目前流行的神经网络和机器学习方法有着根本上的不同。SNN 使用脉冲——这是一种发生在时间点上的离散事件——而非常见的连续值。SNN通过对人脑功能的复现从而能够带来一定的优势,但同时受限于技术的发展,仍有许多问题存在。这也需要我们对ANN和SNN进行深入的探索和分析。

对人工神经网络的分析和讨论

       生物神经元作为人脑“计算”的基本元素,有许多不同的特征。生物神经元是有阈值响应的,即神经元只有当输出的刺激累积到一定阈值之后才会向下一个神经元发送神经递质。同时,每个神经元能合成一种或多种神经递质,并根据刺激条件而单独释放或共同释放。例如,不同频率的刺激能引起同一个神经元释放不同的神经递质。多数情况下,神经递质对突触后神经元的作用取决于突触后神经元而不是神经递质本身。 从结构上分析,在人工神经网络的运行机制中,通过激活函数的设计和选择,可以实现生物神经元的“阈值响应”的特性;但是,由于受限于算法设计的复杂性和计算能力的限制,人工神经网络中并没有所谓的“不同的神经递质”。在人工神经网络中,基本单元是相同的,并没有体现出不同的神经递质的机制。然而,当前的脑认知研究中,并没有明确说明这些不同的神经递质单独作用和共同作用所起到的不同的效果,这也就无法对当前的神经网络算法的研究提供一些启示和建议。

       从运算性能上分析,人工神经网络相比于生物神经网络而言,其运算速度较低,同时耗能又是较高的,在各个指标上生物神经网络都有着人工神经网络无法比拟的优势。其中一个很重要的原因在于神经元可以持续性工作。目前的人工神经网络只能是一次一次的运行。例如,在进行目标检测任务时,当网络计算图运行到深层时,此时的浅层网络是处于“静息状态”的,也就是此时的神经元并没有处于被计算的状态,这也是受限于目前计算机架构的原因。然而如果所有的神经元能够并行的进行计算,在同一时间,所有的神经元都参与计算,深层神经元对应的是之前图像的检测任务,由深至浅对应距离当前时间更近的输入图像,因此计算将被极快的加速。受限于串行计算,上述任务无法像生物神经网络一样同时进行。人脑的计算原理和硅基计算机之间存在着鲜明区别。其中包括:(1)计算机中计算(处理单元)和存储(存储单元)是分离的,不同于人脑中计算(神经元)和存储(突触)是一体的;(2)受限于二维连接的计算机硬件,人脑中大量存在的三维连通性目前无法在硅基技术上进行模拟;(3)晶体管主要为了构建确定性布尔(数字)电路开关,和人脑基于脉冲的事件驱动型随机计算不同。

       然而可以通过FPGA的编程,将整个计算图用硬件进行实现,这样上述的同步计算就可以实现,从而能够提高人工神经网络的速度。这也是当前人工智能芯片的一个研究热点。而当前的脉冲神经网络先把输入进行编码,再将编码后的信息输入到脉冲神经网络中去,并通过特定机制进行网络模型的更新。然而脉冲神经网络也没有实现上述的并行计算,但相比之下,脉冲神经网络好能更少。这是由于神经元的计算只发生在神经元被激活的情况下,而在一轮计算任务重,神经元并不是每次都被激活和参与计算的,输入信息的不同会导致神经元有可能被激活或者一直处于静息状态,因此整个计算任务中,平均每个神经元并没有每次都参与计算,从而能够大幅降低运行所需的耗能。

对脉冲神经网络的分析和讨论

       脉冲神经网络被誉为“第三代神经网络”,在自身的发展更迭中也有三次较大的进步。McCulloch–Pitt感知机是第一代脉冲神经网络,它只能执行阈值运算,并输出二进制结果。第二代神经单元使用sigmoid模块或修正线性单元(ReLU),使得模型增加了连续非线性,能够计算一组连续值,使得模型能够用于更多、更复杂的任务。同时,非线性和连续性的扩展,使得导函数能够使用,这就可以支持基于梯度下降的反向传播算法,这也是目前人工神经网络最常用的模型优化算法。而第三代神经网络,主要使用“整合放电”(integrate-and-fire)型尖峰神经元,通过脉冲交换信息。第二代神经元使用的连续实值是通过例如振幅等信息进行编码的,然而第三代神经元使用脉冲进行编码和传递信息。脉冲实际上可以理解为二进制的编码,通过改变脉冲的频率和初值发送时间可以进一步对神经元进行变换。由于神经元只有累积接收到足够的脉冲才会向下一层神经元发送脉冲,因此并不是所有的神经元在一次计算中全部都被激活,因此可以大大降低模型计算的耗能。 然而目前的脉冲神经网络由于缺乏较好的训练策略,直接用于图像处理等任务时并没有很好的表现。尖峰神经元虽然能够实现非连续的信息传递,发出不可微分的离散脉冲,能够降低耗能,但也使得基础的梯度下降算法无法被应用于模型的训练中。就精度而言,脉冲神经网络在大多数的学习任务中的表现都不如现在的人工神经网络。目前已有一些算法能够对脉冲神经网络进行训练,SpikeProp及其相关变体已派生出通过在输出层固定一个目标脉冲序列来实现SNNs的反向传播规则。最近的成果对实值膜电位使用随机梯度下降法,是为了让正确输出神经元随机激发更多的脉冲,而不是具有精确目标的脉冲序列。这些方法在深度卷积SNNs的小规模图像识别任务上取得了最新进展,例如MNIST手写数字数据库的数字分类。

       训练方法的缺失催生出基于转换的方法。其思路为在一项学习任务中,首先使用人工神经网络的方式完成对任务的训练和测试,将性能最好的模型和模型参数用脉冲神经网络进行复制,将非线性连续输出神经元的特征和尖峰神经元的泄漏时间常数(leak time constants),不应期(refractory period)、膜阈值(membrane threshold)等功能相匹配。这种方法已经能够达到和人工神经网络模型性能能够比较的标准。在保证模型精度和任务要求的基础上,通过转换方法生成的脉冲神经网络模型还兼具能耗低的特点。然而,模型的转换并不能保证性能上的完全统一,受限于基本原理的不同,人工神经网络中很多的运算并不能完全用脉冲神经网络进行替换。例如在使用双曲线正切(tanh)或归一化指数函数(softmax)后,非线性神经元的输出值可以得正也可以得负,而脉冲神经元的速率只能是正值。因此,负值总被丢弃,导致转换后的SNNs的精度下降。转换所带来的另一个问题是在不造成严重的性能下降的前提下,使得每一层的脉冲神经网络最优。同时,转换和推理所需的时间和能耗也是不可忽视的一个问题。

结语

       在学习和调研的过程中发现,目前的SNN仍处于初级的阶段,很多典型的任务,SNN还不能直接胜任。例如简单的图像分类和图像检测任务,SNN并不没有很好的网络结构和训练方法。按照人工神经网络的发展,网络只有到达一定深度,才具有较大的目标函数空间,加上有效的训练策略,才能在广大的函数空间中搜索到准确的目标函数。然而,目前的脉冲神经网络并没有合适的训练策略,自然也无法将网络设计的很深,那么就无法胜任目前较难的任务,在大型数据集Pascal voc上进行的目标检测、图像分割等任务SNN都无法和目前的人工神经网络进行比较。虽然通过转换的方法,脉冲神经网络能够达到一定的精度,但这始终不是SNN的训练结果,有些张冠李戴的嫌疑。作为入门深度学习的研究生,目前的脉冲神经网络亟待解决的问题是模型训练的算法,只有训练算法成功且有效,脉冲神经网络才能真正地扛起神经网络的另一面大旗。

       相比于ANN,SNN在原理上对生物的神经元进行了更为相似的模拟,然而这里仍然需要质疑的是:对生物神经元更加准确的建模,就能够产生更接近人脑的性能么?这里我们无法证明。但从哲学的观点来说,即使能够设计出接近生物神经元的模型以及接近人脑的神经元链接结构,但如果缺乏类似人脑的运行环境也是无法真正实现人脑的高准确度和低能耗的优良性能。这也就对当前的芯片和处理器提出了更高的要求。生物神经元的运行和存储是相邻的,即每一个计算单元都有存储单元相邻,这是当前的计算机系统架构无法实现的,也就使得当前的计算性能大打折扣。目前提出的减轻这种影响的方法就是使用“近内存”、“内存中”计算。近内存的计算是通过在存储单元旁建立计算单元,能够实现内存和计算的共存。然而这仍有很多的研究需要进行。

       作为入门深度学习的研究生,通过这门课程对脉冲神经网络有了基本的了解和认识,我认为ANN和SNN都需要依赖于对脑的研究,同时二者也需要相互借鉴,相互启发,从而能提出更加优秀的结构和算法。

注意:此为国科大类脑智能导论课程作业,别抄!

参考文献

1.Gokhale, M., Holmes, B. & Iobst, K. Processing in memory: the Terasys massively parallel PIM array. Computer 28, 23–31 (1995).

2.Elliott, D., Stumm, M., Snelgrove, W. M., Cojocaru, C. & McKenzie, R. Computational RAM: implementing processors in memory. IEEE Des. Test Comput. 16, 32–41 (1999).

3. Roy K, Jaiswal A, Panda P. Towards spike-based machine intelligence with neuromorphic computing[J]. Nature, 2019, 575(7784): 607-617.

Written on May 25, 2020