让IBM和Intel争相投资的神经模态计算究竟是什么
扫描二维码
随时随地手机看文章
LinkedInIntel发布了基于其神经模态(neuromorphic)计算芯片Loihi的加速卡Pohoiki Beach,该加速卡包含了64块Loihi芯片,共含有八百多万个神经元。继IBM发布True North、Intel发布Loihi之后,Pohoiki Beach又一次让神经模态计算走进了聚光灯下。本文将为读者重点介绍神经模态计算芯片的发展前景以及市场情况——事实上除了IBM和Intel之外,一些优秀的初创公司如aiCTX等也正在积极探索超低功耗神经模态芯片在不同领域的应用,我们认为在未来几年内随着AI+IoT的发展,神经模态计算将会迎来一波新的热潮。
让IBM和Intel争相投资的神经模态计算究竟是什么
神经模态计算是一种从生物神经元获得启发的计算方式。在生物学中,神经细胞之间的工作原理大致可以概括为:当一个神经元中积累的电荷数量足够多时,将会发射出脉冲,该脉冲一方面清空了发射脉冲神经元内部的电荷,另一方面脉冲会沿着神经突触进入其他神经元,并在其他神经元中积累电荷,如此反复。大量神经元和突触之间形成的网络就是神经网络,而脉冲可以认为是神经元之间传递信息的方法;另一方面神经元A和神经元B突触之间连接的强度则决定了当神经元A发射脉冲时,会有多少电荷进入神经元B。而神经模态计算可以认为就是重现了这样的一个过程,它使用电路来实现神经元和神经突触以及神经网络,并且模仿生物神经元之间使用脉冲通信的工作方式。
提起神经网络,大家一定非常熟悉,因为今天得到广泛应用的深度学习人工智能正是基于神经网络。那么神经模态计算中的神经网络和深度学习中的神经网络是否是一个东西?从原理上说,两者是一致的,两者都是在模仿生物神经元之间连接和通信的过程,区别在于深度学习中的神经网络是从较抽象的角度来描述生物神经网络,而神经模态计算则更贴近真正的生物神经网络。举例来说,深度学习的神经网络中也有神经元以及神经元激活的概念,在前馈过程中每个神经元的输出值即该过程中该神经元被激活的次数,而神经元之间的连接强度则用网络权重来表征,每个神经元的输出乘以网络权重再传播给下一层的神经元,因此可以认为深度学习中的神经网络是使用数学计算的方法在模仿生物神经系统。与之相对,神经模态计算的前馈过程中,每个神经元电路模块每被激活一次就会真的发射出一个电脉冲(而不是直接输出整个前馈过程中被激活的)并传播给相连的其他神经元,因此可以认为神经模态计算是在真正重现生物神经系统的物理过程。
为什么神经模态计算得到了这么多重视?目前来看,首先人类的大脑还有太多未解之谜,今天的深度学习仅仅能实现人类大脑极小一部分的功能,距离人类的智能还有非常远的距离,而使用神经模态计算直接模仿神经元系统在人工神经元数量足够多时,或许有希望能实现比起深度学习更好的效果,更接近人类的大脑。此外,从实际的应用角度出发,目前深度学习计算在部署上遇到的困难是能效比和延迟问题,在对于功耗要求非常低的领域(如物联网等)以及对于延迟要求非常高的领域(如无人驾驶等)部署深度学习会遇到很大的挑战。而神经模态计算则可以解决这两大问题。首先,深度学习由于是从数学上模仿神经系统,因此神经元被激活的次数事实上对于计算的功耗改变不大。例如神经元被激活两次还是四次,在深度学习里无非是该神经元的输出是2还是4,这只是一个乘法运算的输入改变,几乎不改变乘法计算的功耗。但是,如果使用神经模态计算,那么神经元被激活两次相比神经元被激活四次可以少发射两次脉冲,这样就节省了功耗,因此神经模态计算也可以说是利用了其“事件驱动”的特性来降低功耗。因此,神经模态计算的一大优势就是其计算功耗与输入有关,在输入不会激活大量神经元的情况下,其功耗可以做到非常低;相反使用深度学习则无论神经元被激活的程度,其功耗几乎是一样的。对于物联网应用来说,许多场景或许99%以上的时间并没有事件发生,神经模态计算可以利用这样的规律,仅仅在需要的时候激活神经元消费能量来完成事件识别,而在其他没有事件的时候由于神经元未被激活因此功耗很低,从而实现远低于深度学习芯片的平均功耗。另一个神经模态计算的优势是存算一体,这是因为神经模态计算并非常规的冯诺伊曼架构,神经模态计算芯片一般也不会搭配DRAM使用,而是直接将信息储存在了神经元里(相当于生物神经网络中每个神经元储存的电荷)。这样就避免了内存墙带来的功耗和延迟问题,因此神经模态计算芯片的延迟和能效比都会好于传统的深度学习。
神经模态芯片发展的方向
神经模态芯片的发展方向首先是规模化,即扩大神经元的规模,这也是Intel和IBM等大厂主要押注的方向。如果我们回顾深度学习的发展历程,我们会发现其实神经网络的原理早在上世纪60年代就已初见雏形,但是由于训练数据量不够以及算力不够,因此直到2012年才被人们重新发现,并且发现了众多之前完全没有想到的应用场景和市场。对于神经模态计算,大厂押注的也是类似的情况:神经模态计算的原理看起来是正确的(尤其是今天深度学习已经获得了很大的成功,那么基于相似原理的神经模态计算应该不会很不靠谱),目前或许只要把神经元的数量和神经突触连接数量跨过一个阈值(就像当年AlexNet跨过网络深度的门槛一样),那么神经模态计算就有可能爆发出巨大的能量,甚至远超之前的想象。这次Intel发布的超过八百万神经元的Pohoiki Beach系统显然就是在往规模化的方向大力发展。根据Intel的官方消息,下一步将继续发布神经元数量更大的Pohoiki Spring计划,可见Intel是在往大规模神经模态计算的方向大力推进。
除了发展规模化之外,另一个方向就是利用神经模态计算低功耗和低延迟的特点并进一步优化芯片设计来开发出高能效比低延迟的芯片。这类芯片或许神经元数量不多,但是可以实现非常低的功耗和非常好的能效比,从而可以部署在传统深度学习无法部署的场景。事实上,目前如何高效训练大规模神经模态神经元的算法还没有找到,因此在现有训练框架的基础下,或许优先把能效比做到极致是比把神经元数量做大更接地气的方向。瑞士苏黎世理工大学的Giacomo Indiveri教授就是这个方向的代表性人物,研究组在十数年内已经发表了多篇电路和系统论文,其研发的芯片作为欧洲神经模态计算研究的代表性工作在2018年ISSCC主题演讲中被重点介绍。
神经模态芯片近几年来的落地方向按照神经元规模可以分成两类。
对于Intel和IBM这类在大规模神经元领域大量投资的公司,事实上也并不急着在几年内让神经模态芯片系统落地,而是希望在这几年内把神经模态计算的研究、生态先做起来,等到神经模态计算研究取得突破(例如神经元跨过了某个阈值或者新的训练算法出现,在一些关键领域能解决其他方法无法解决的问题)时就能获得先机。在近几年,大规模神经模态计算芯片的主要应用估计还是在研究上,包括作为脑科学研究(模拟大脑神经系统)系统平台供各大高校和研究机构使用。另外,Intel和IBM估计也在积极寻找一些传统图灵机算法和冯诺伊曼架构难以高效处理但适合神经模态计算的问题(例如优化问题等),和其他有需求的行业公司合作,以此作为神经模态计算的初步落地尝试。
另一方面,在中等规模神经元规模、主打低功耗的神经模态芯片方向上,最近兴起的物联网将会成为最佳的落地应用。物联网配合人工智能将会给社会带来巨大的变化,然而目前基于深度学习的芯片难以实现物联网对于低功耗的需求(小于毫瓦级的功耗)。这时候就是神经模态芯片大展身手的地方。在这个方向上,技术和商业化都较领先的是位于瑞士初创公司的aiCTX,该公司的技术来自于前述苏黎世理工大学Indiveri组的研究,其芯片平均功耗可以到达微瓦数量级,目前主打的场景就是超低功耗物联网场景,包括边缘视觉应用(安防、机器人等场景)、可穿戴设备等等。不久前aiCTX刚发布了含有一百万神经元的芯片DynapCNN,并且获得了CES Asia 2019颁发的创新奖。