为了满足人工智能(AI)和机器学习各方面日益成长的需求,近年来有大量的研究均着重于大脑启发运算,以突破运算性能和内存需求爆发等挑战。
这一类的研究如今开始开花结果。最近就有一家神经形态运算(neuromorphic computing)芯片开发商BrainChip宣布将在今年9月发表其芯片架构细节。
今年初,CEA-Leti首席科学家Barbara de Salvo解释,半导体产业可以从生物学中获得启示,以解决在目前的传统运算架构下难以企及的性能与功率要求。她描述了大脑突触的特征——在单一架构中包含内存和运算,能够构成大脑启发的非冯诺依曼(non-von Neumann)计算机架构基础。神经形态运算的最新趋势之一就是将神经元的值编码为脉冲(pulse)或棘波(spike)。
然后是欧洲一项称为「人类大脑计划」(European Human Brain Project)的神经形态运算计划,长期以来致力于建构两个大规模且独特的神经形态机器,以及打造下一代神经形态芯片原型。该计划最近发表了成果论文,首次全面仿真基于SpiNNaker硬件的80,000个神经元和3亿个突触的皮层微电路模型,以展现其于运算神经科学应用的可行性。
Markus Diesmann
该论文的共同作者——德国于利希研究中心(Jülich Research Centre)运算和系统神经科学系主任Markus Diesmann说:「大脑的能量消耗与今天的超级计算机之间存在巨大差距。神经形态(大脑启发)运算让我们能够研究使用电子组件能达到多么接近大脑能量效率的程度。」
他补充说:「目前还不清楚哪一种计算机架构最适于有效地研究全脑网络。欧洲的人类大脑计划和于利希研究中心进行了深入的研究,找出最佳策略以克服这个高度复杂的问题。今天的超级计算机需要几分钟的时间才能模拟现实的一秒钟时间,因此,针对学习这一类在现实中需要数小时和数天的过程,目前仍难以企及。」
微电路模型的仿真是在一个由6个SpiNN-5 SpiNNaker板组成的机器上进行,一共使用了217个芯片和1,934个ARM9核心。每块板由48个芯片组成,每个芯片中有18个核心,总共有288个芯片和5,174个核心可用。其中,每个芯片上使用两个核心进行加载、检索结果和模拟控制。而在剩余的核心中,仅使用了1,934个核心,因为这是仿真网络中神经元数量所需的全部核心数,每个神经元核心包括80个神经元。
另一位共同作者——英国曼彻斯特大学(University of Manchester)计算机工程教授Steve Furber说:「这是第一次在SpiNNaker或任何神经形态平台上详细地模拟皮质。这项模拟研究只使用了6块板子——但占掉了整个机器的1%。这项研究的结果将用于改善软件,使其得以减少到仅使用1块板子。」
BrainChip希望以其商用化的棘波神经网络芯片或神经形态系统单芯片(SoC),率先进入这一市场。该公司于澳洲证券交易所(Australian Securities Exchange)上市,但大部份员工(30名)都位于加州橘镇和法国图卢兹。
该公司于2016年9月收购了位于图卢兹的Spikenet——这是一家专精于软件棘波神经网络(SNN)的供货商,SNN可实时学习任何视觉模式,但不必经过密集训练,而且也只需使用极少的影像样本。其方式是以执行于x86平台的软件仿真SNN,而BrainChip一开始只是为了将神经元放入芯片中。
Spikenet的客户来自安全和游戏领域(许多客户在拉斯韦加斯拥有众多赌场),因此,这于BrainChip能够取得营收以及互补的产品——从整合其棘波神经元自适应处理器中受益。
人工神经网络可以分为两个领域——卷积神经网络(CNN,或称为深度学习),以及棘波神经网络(SNN),也称为神经形态运算(由于其仿真神经元功能)。CNN的基本功能是数学函数。
Bob Beachler
BrainChip营销和业务开发资深副总裁Bob Beachler在接受《EE Times》采访时表示:「在CNN中进行的是线性代数矩阵乘法,而深度神经网络只是一堆过滤器试图撷取可以放在一起的显著特征,以协助机器或系统辨识某些对象——如视觉、财务或网络安全数据等。」。
Beachler补充说:「在棘波神经网络中,我们的基础功能并不是进行矩阵乘法,而是一种真实的神经元,让我们能将其建模为一连串的突触,其间的连接可能被抑制或强化。神经元本身则是一种整合功能,基本上用于计算棘波的数量——这些棘波透过突触传送数据。在SNN中的训练方式与在CNN中设置权重相反,如果不是加强就是抑制突触。这是它训练的方式之一。另一种方式则是在神经元本身设置阈值,但它是可加以修改的函数。」
Beachler补充道,「它训练了一种前馈控制途径,因此可说是无人监督的训练,而不是坐待记忆预先卷标好的数据集。他们直接看到也听到了现实世界,而且是无人监督的模式辨识。」
棘波神经网络与卷积神经网络
据Beachler表示,BrainChip以软件仿真模式证实其技术能在x86上执行,使用FPGA加速其棘波神经网络,同时,现在正开发其Akida NSoC。该公司预计在今年9月发布其芯片架构。
然而,为了利用其SNN推动市场进展,BrainChip已在本月推出其Akida开发环境——这是一个用于创建、训练和测试SNN的机器学习架构,为采用该公司Akida NSoC的边缘和企业产品提供系统开发的支持。
该开发环境包括其执行引擎、数据到棘波峰转换器,以及预先创建的SNN模型。该架构利用Python脚本语言及其相关工具和库,包括Jupyter、NumPy和Matplotlib。
Akida执行引擎包含Akida神经元、突触和多种支持训练方法的软件仿真。透过Python脚本中的API调用存取,用户可以指定其神经网络拓扑、训练方法和数据集以供执行。
该执行引擎以Akida神经元的结构为基础,可支持多种训练方法,包括无监督训练以及带有标签最终层的无监督训练。
棘波神经网络可在棘波模式上发生作用。开发环境本身接受由动态视觉感测(DVS)创建的棘波资料。然而,还有许多其他类型的资料可以与SNN搭配使用。嵌入于Akida执行引擎中的是数据到棘波转换器,可将诸如影像信息(画素)等常见的数据格式转换为SNN所需的棘波。开发环境最初将配备画素到棘波转换器,然后是用于网络安全、财务信息和物联网数据等存在大数据需求的转换器。用户还可以创建自己的专有数据,以便在开发环境中使用棘波转换器。
开发环境包括预先创建的SNN模型。目前,可用的模型包括以DVS格式现的MNIST多层感知建置、针对CIFAR-10数据集优化的七层网络,以及针对ImageNet数据集优化的22层网络。这些模型可以成为用户修改或创建自定义SNN模型的基础。
Beachler表示,BrainChip主要针对嵌入式视觉领域,此领域正积极应用机器学习,例如对象分类。「“我们从许多不同的市场都看到了这一点:先进驾驶辅助系统(ADAS)和自动驾驶汽车、无人机、机器视觉等。」该公司还瞄准了网络安全和金融技术,因为Akida能够在无人监督的训练模式和大规模数据分析中找到模式。
那么,BrainChip将在9月发布这款神经形态SoC的哪些技术细节呢?Beachler说:「我们将采用纯数字制程、标准CMOS以及我们最终决定的任何特征尺寸,无论是28nm还是14nm。我们并未进行任何深奥复杂的事情、相变内存、忆阻器之类的东西。我们坚信采用纯数字逻辑制程。
(原文发表于ASPENCORE旗下EDN姐妹网站EETimes,参考链接:Neuromorphic Computing Gets a Lift;Susan Hong编译)