本书主要关注如何构建高能效具有学习能力的脉冲型神经元网络硬件,并且提供建立具有学习能力的脉冲型神经元网络硬件协同设计、协同优化方法。完整地描述从高级算法到底层硬件实现的细节。本书同样涵盖了脉冲型神经元网络中的许多基础知识和关键点。
本书从对脉冲型神经元网络的概述开始,讨论基于速率的人工神经网络的应用和训练,介绍实现神经网络的多种方法,如通用处理器和专用硬件,数字加速器和模拟加速器。同时展示了一个为能适应神经网络动态编程而建立的高能效加速器,验证脉冲神经网络的基础概念和流行的学习算法,简介脉冲神经网络硬件。后面的章节为读者介绍三个实现前述章节学习算法的设计案例(两个基于传统CMOS工艺,一个基于新兴的纳米工艺)。本书的结尾对脉冲型神经元网络硬件进行总结与展望。
1.本书从脉冲神经元网络的概念和实现方法开始,通过构建能适应神经网络动态编程的高能效加速器,验证脉冲神经网络硬件设计与流行的学习算法有机结合,展示显著提高能效和计算效率的方法和实践;
2.本书由美国密西根大学计算机科学系马祖姆德教授团队结合多年类脑智能研究理论和成果撰写而成,由上海交通大学类脑智能研究中心刘佩林教授团队翻译,为类脑智能前沿研究和应用领域提供了详实的学习和研究指南。
1987年,我在伊利诺伊大学攻读博士学位时,有一个难得的机会去听加州理工学院的John Hopfield教授给厄巴纳香槟分校鲁姆斯物理实验室的学生讲述他在神经网络上的开创性研究。他绘声绘色地讲述了如何设计和制作一个循环神经网络芯片来快速解决基准旅行商问题(TSP)。TSP是指:当TSP中的城市数量增加到一个非常大的数目时,没有物理计算机能够在渐近有界的多项式时间内解决这个问题,从这个意义上说,TSP是一个可证明的NP完全问题。
神经网络领域的一个重要里程碑是,发现了可以解决复杂组合问题的硬件算法,因为现有的感知器型前馈神经网络技术只能对有限的简单模式进行分类。尽管如此,神经计算的创始人康奈尔大学的Frank Rosenblatt教授在20世纪50年代末建造了一台感知计算机,当时诸如IBM 650这样的波数字计算机刚刚商业化。后续的神经硬件设计进展受阻,主要是由于当时的技术(包括真空管、继电器和无源元件如电阻、电容和电感等)不具备集成实现大型突触网络的能力。1985年,美国贝尔实验室利用MOS技术制造出个固态电子晶体芯片,在概念上验证了John Hopfield教授解决TSP的神经网络架构,从而为在硅片上解决非布尔型计算和类脑计算开辟了道路。
John Hopfield教授的开创性工作表明,如果组合算法中的目标函数可以用二次型表示,循环神经网络中的突触连接可以相应地通过将大量神经元的连接进行编程来降低目标函数的值(即局部小值)。Hopfield的神经网络由横向连接的神经元组成,这些神经元可以被随机初始化。随后,该网络可以迭代地减少网络固有的Lyapunov能量函数值,使其达到局部小状态。值得注意的是,Lyapunov函数在循环神经网络的动态作用下呈单调下降,神经元不具有自反馈。
在Mazumder和Yih的著作中[1],我们证明了Hopfield网络所获得的解的质量可以通过选择性地提供自反馈使神经元远离局部小值而得到显著改善。这种方法类似于梯度下降搜索中的爬坡,通常会陷入局部小点。由于神经元的自反馈会影响Hopfield神经网络的稳定性,所以在网络收敛到局部小状态之前,我们没有对神经元施加任何自反馈。然后,通过爬坡机制提高网络的能量,将网络从局部小值中拉出。我们在上述文章中表明,通过使用这项创新技术,芯片修复提高约25%,改善了VLSI存储器的良率。
Hopfield教授使用四个独立二次函数的组合来表示TSP的目标函数。目标函数的部分确保若旅行商恰好一次穿越城市则能量函数小;第二部分确保旅行商访问行程中的所有城市;第三部分确保不同时访问两个城市;第四部分确定连接TSP中所有城市的短路径。因为神经元之间通过连接的突触有大量的同步交互作用,这些突触被精确地调整以满足上述二次函数的约束,所以简单的循环神经网络可以迅速生成质量非常好的解。然而神经网络由于其简单的连接结构,与经过良好测试的软件处理(例如模拟退火、动态规划和分支定界算法)不同,它通常无法找到解决方案。
在听了Hopfield教授的精彩演讲之后,我对他这种创新的感触颇深。一方面,我很高兴地从他的演讲中了解到,通过使用具有非常小的硬件开销的简单神经形态CMOS电路,可以快速地解决计算上困难的算法问题。另一方面,我认为Hopfield教授为了证明神经网络解决组合优化问题的能力而选择的TSP应用程序并不合适,因为精心设计的软件算法,可以获得神经网络几乎无法得到的解决方案。我开始考虑开发可自愈的超大规模集成电路(VLSI)芯片,利用受神经网络启发的自修复算法的力量来自动重组有缺陷的VLSI芯片。低开销和通过神经元之间的并行交互同时解决问题的能力是两点显著的特性,可以用来巧妙地通过内置的神经网络电路来自动修复VLSI芯片。
不久之后,我作为助理教授来到密歇根大学,与我的一个博士生\[2\]一起工作,起初,我们设计了一款具有异步状态更新的CMOS模拟神经网络电路,因晶元内部工艺变化等因素导致这个芯片鲁棒性不够好。为了提高自修复电路工作的可靠性,我和一名理科硕士\[3\]设计了一个同步状态更新的数字神经网络电路。这些神经网络电路通过在二分图中寻找节点覆盖、边覆盖或节点对匹配来确定修复问题,从而能够用于修复VLSI芯片。在我们的图的形式体系中,二分图中的一组顶点表示故障电路元件,另一组顶点表示备用电路元件。为了将故障VLSI芯片改造成无故障的可操作芯片,在通过嵌入式内置自检电路识别出故障元件之后,再通过可编程开关元件自动调用备用电路元件。
重要的是,与TSP一样,二维数组修复可以证明是一个NP完全问题,因为修复算法寻找的多余的行、列数,它们可以被分配以绕过故障组件(比如记忆细胞、字线和位线驱动),以及位于存储器阵列内部的读出放大器队列。因此,由计数器和其他块组成的简单数字电路无法解决这种棘手的自修复问题。值得注意的是,由于无法部署VLSI芯片的输入和输出引脚来查询深度内嵌的嵌入式阵列中的故障模式,因此无法使用外部数字计算机来确定如何修复嵌入式阵列。
在1989年和1992年,我获得了美国国家科学基金会的两项资助,将神经形态自愈设计风格扩展到更广泛的嵌入式VLSI模块,如内存阵列\[4\]、处理器阵列\[5\]、可编程逻辑阵列\[6\]等。但是,这种通过内置的自检和自修复提高VLSI芯片产量的方法比VLSI芯片应用的时代早了一点,因为在20世纪90年代初期,的微处理器仅包含数十万个晶体管。因此,在开发了基于神经网络的自愈VLSI芯片设计方法以用于各种类型的嵌入式电路模块之后,我停止了对CMOS神经网络的研究。我对神经网络应用于其他类型的工程问题并不是特别感兴趣,因为我想继续专注于解决VLSI研究中出现的问题。
另外,在20世纪80年代末,CMOS技术的预言者越来越担心,即将到来的红砖墙效应预示着CMOS缩小时代的结束。因此,为了促进几种可能推动VLSI技术前沿的新兴技术,美国国防部高级研究计划局(DARPA)在1990年左右启动了超电子:超密集、超快速计算元件研究计划。与此同时,日本的国际贸易工业部(MITI)推出了量子功能器件(QFD)项目。这两个研究项目早期的成功与大量的创新non-CMOS技术推动了美国国家纳米技术项目(NNI)的创建,这是一个美国政府研究和开发(R&D)计划,包括20个部门和独立机构,将带来纳米技术的革命,从而影响整个行业和社会。
在1995年到2010年期间,我的课题组初专注于基于量子物理的器件和量子隧穿器件的电路建模,然后我们广泛研究了基于一维(双障碍共振隧穿器件)、二维(自组装纳米线)和三维(量子点阵列)受限量子设备的细胞神经网络(CNN)图像和视频处理电路。随后,我们使用电阻突触装置(通常称为忆阻器)和CMOS神经元开发了基于学习的神经网络电路。通过在二维处理元件(PE)集成的计算节点中混合量子隧穿和记忆器件,我们还开发了模拟电压可编程纳米计算体系结构。我们对纳米神经形态电路的研究发表在我们的新书Neuromorphic Circuits for Nanoscale Devices中,由英国River出版社在2019年出版。
在用各种新兴纳米电子和自旋电子器件开发了十多年的神经形态电路之后,我决定开始研究基于学习的数字VLSI神经形态芯片,在亚阈值和超阈值两种操作模式中使用纳米CMOS技术。我的学生和这本书的合著者Nan Zheng博士,完成了有关数字神经网络的体系结构和算法的博士学位论文。我们从机器学习和生物学习的角度出发,设计和制造了基于TSMC 65nm CMOS技术的高效节能VLSI芯片。
我们从机器学习的角度捕获了演员评论家类型的强化学习(RL)\[7\]和一个采用离线策略更新的时间差(TD)学习示例,称为VLSI芯片上的Q学习\[8\]。此外,我们还捕捉到生物无监督学习应用中常用的基于脉冲相关的突触可塑性。我们还制定了硬件友好的基于脉冲时间依赖可塑性(STDP)学习规则\[9\],在修改后的MNIST数据库基准上,单隐藏层和双隐藏层神经网络的分类正确率分别为97.2%和97.8%。硬件友好的学习规则支持高效节能的硬件设计\[10\]以及对与芯片制造\[11\]相关的过程电压温度(PVT)变化的鲁棒实现。通过仿真RL软件程序的核心自适应动态规划(ADP),证明了用于演员评论家网络的硬件加速器VLSI芯片可解决一些控制理论基准问题。此外,与在通用处理器上运行的传统软件强化学习相比,在175MHz下运行的VLSI芯片加速器在计算时间上缩短了两个数量级,同时只消耗了25mW[12]。
图1中的芯片布局图包含了大量使用CMOS技术的数字神经网络芯片的样本,这是我的研究小组在过去35年中设计的。图1的左栏是1991年设计的一个自愈芯片,通过在一个二分图上运行节点覆盖算法来自动修复有缺陷的VLSI内存阵列,二分图代表有缺陷的组件集和可用的备用电路元件。2013年设计的STDP芯片,用于控制虚拟昆虫从初始起点到预定目的地的运动,避免了在一组任意形状的阻塞空间中导航时的碰撞。前一段描述的深度学习芯片是2016年设计的。
图1的右栏为2016年设计的RL芯片。其中还包括两个超低功耗(ULP)CMOS芯片,利用亚阈值技术,用于可穿戴的医疗保健应用。在其中一个应用中,利用神经网络的Kohonen的自组织映射(SOM)对心电图(ECG)波形进行分类,设计了一种带有无线收发器的人体传感网络,利用可植入的多极传感器对模拟神经元信号进行感知,并通过内置的唤醒收发器向医生提供数字化数据,帮助医生对精神分裂症、慢性抑郁症、阿尔茨海默病等脑相关疾病中神经元和突触层面上对药物的疗效进行监测。
初,当我们决定以CMOS类脑计算的神经形态芯片的形式出版一本强调我们工作的专著时,我们想要汇总在前言中引用的论文的各种结果,从而构成这本书的内容。但是,在准备手稿的过程中,我们修改了初较狭隘的目标,因为在常规课程中采用本书来向大学生和研究生讲授具有学习能力的一代神经网络将是有局限性的。
图 1
后来我们决定写一本全面的关于具有各种学习能力的神经网络高能效硬件设计的书,讨论正在进行的神经硬件的扩展研究。这显然是一项艰巨的任务,需要仔细研究数百个参考文献的存档来源,描述能够学习执行各种任务的硬件神经网络的协同设计和协同优化方法。我们试图提供一个全面的视角,从高级算法到低级硬件实现细节,涵盖神经网络的许多基础和要素(如深度学习),以及神经网络的硬件实现。简而言之,本书目前的版本有以下几个显著特点:
●包括神经形态算法硬件加速器的多层次全面评述。
●涵盖架构与算法的协同设计,并采用新兴器件来极大地提升计算效率。
●关注算法与硬件的协同设计,这是在神经形态计算中应用新兴器件(如传统忆阻器和扩散型忆阻器)的关键。
后,由于完成这本书有严格的时间限制,所以本书目前的版本没有像教科书那样以教学的方式描述教学材料,在每一章的结尾也没有习题。在收集了来自学生、教师、实践工程师和其他读者的宝贵反馈后,这些目标有望在下一版中实现。如果你能提供正面和负面的指导性反馈,我将非常感激,这将使我能够准备本书的第2版。我的联系方式如下:
Pinaki Mazumder
地址:4765 BBB Building Division of Computer Science and Engineering Department of Electrical Engineering and Computer Science University of Michigan, Ann Arbor,MI 48109-2122
电话:734-763-2107
邮箱:mazum@eecs.umich.edu,pinakimazum@gmail.com
网址:http://www.eecs.umich.edu/~mazum
参考文献
郑楠
(Nan Zheng)
2011年本科毕业于上海交通大学信息工程专业,2014年和2018年分别获得美国密歇根大学电气工程硕士和博士学位。他目前是NVIDIA高级深度学习架构师,研究兴趣侧重于机器学习应用的低能耗硬件架构、算法和电路技术。
皮纳基·马祖姆德
(Pinaki Mazumder)
美国密歇根大学电气工程与计算机科学系教授,他的研究兴趣包括对于量子MOS、自旋电子学、欺骗等离子体、共振隧穿器件等新兴技术的CMOS超大规模集成电路设计、半导体存储系统、CAD工具和电路设计。
译者简介:
刘佩林
上海交通大学电子信息与电气工程学院教授,博士生导师。研究领域包括音频、视频、3D信号处理与智能分析,面向机器人的环境感知、人机交互、定位与导航,以及类脑计算与低功耗电路设计等。2017年起任上海交通大学类脑智能应用技术研究中心主任。
应忍冬
上海交通大学电子信息与电气工程学院副教授,硕士生导师。研究领域包括嵌入式系统、数字信号处理及VLSI实现架构、人工智能领域的机器思维原理和实现。
薛建伟
上海交通大学电子信息与电气工程学院博士研究生。研究领域包括类脑智能、片上多核系统等。
译者序
前言
致谢
第1章 概述1
1.1 神经网络的历史1
1.2 软件中的神经网络2
1.2.1 人工神经网络2
1.2.2 脉冲神经网络2
1.3 神经形态硬件的需求3
1.4 本书的目标和大纲4
参考文献6
第2章 人工神经网络的基础与学习9
2.1 人工神经网络的工作原理9
2.1.1 推理9
2.1.2 学习10
2.2 基于神经网络的机器学习13
2.2.1 监督学习13
2.2.2 强化学习15
2.2.3 无监督学习17
2.2.4 案例研究:基于动作的启发式动态规划18
2.3 网络拓扑24
2.3.1 全连接神经网络24
2.3.2 卷积神经网络25
2.3.3 循环神经网络27
2.4 数据集和基准29
2.5 深度学习31
2.5.1 前深度学习时代31
2.5.2 深度学习的崛起31
2.5.3 深度学习技术32
2.5.4 深度神经网络示例38
参考文献40
第3章 硬件中的人工神经网络47
3.1 概述47
3.2 通用处理器48
3.3 数字加速器48
3.3.1 数字ASIC实现方法48
3.3.2 FPGA加速器61
3.4 模拟/混合信号加速器62
3.4.1 传统集成技术中的神经网络62
3.4.2 基于新兴非易失性存储器的神经网络68
3.4.3 光学加速器71
3.5 案例研究:一种节能的自适应动态规划加速器的程序设计72
3.5.1 硬件架构73
3.5.2 设计示例78
参考文献82
第4章 脉冲神经网络的工作原理与学习92
4.1 脉冲神经网络92
4.1.1 常见的脉冲神经元模型92
4.1.2 信息编码94
4.1.3 脉冲神经元与非脉冲神经元的比较95
4.2 浅层SNN的学习96
4.2.1 ReSuMe96
4.2.2 Tempotron97
4.2.3 脉冲时间相关可塑性98
4.2.4 双层神经网络中通过调制权重依赖的STDP进行学习的方法101
4.3 深度SNN学习113
4.3.1 SpikeProp113
4.3.2 浅层网络栈113
4.3.3 ANN的转换115
4.3.4 深度SNN反向传播的研究进展116
4.3.5 在多层神经网络中通过调制权重依赖的STDP进行学习的方法116
参考文献128
第5章 脉冲神经网络的硬件实现133
5.1 对专用硬件的需求133
5.1.1 地址事件表示133
5.1.2 事件驱动计算134
5.1.3 渐进精度推理134
5.1.4 实现权重依赖的STDP学习规则的硬件注意事项138
5.2 数字脉冲神经网络142
5.2.1 大规模脉冲神经网络专用集成电路142
5.2.2 中小型数字脉冲神经网络147
5.2.3 脉冲神经网络中的硬件友好型强化学习149
5.2.4 多层脉冲神经网络中的硬件友好型监督学习153
5.3 模拟/混合信号脉冲神经网络161
5.3.1 基本构建块161
5.3.2 大规模模拟/混合信号CMOS脉冲神经网络163
5.3.3 其他模拟/混合信号CMOS脉冲神经网络专用集成电路166
5.3.4 基于新兴纳米技术的脉冲神经网络166
5.3.5 案例研究:脉冲神经网络中基于忆阻器交叉开关的学习169
参考文献183
第6章 总结190
6.1 展望190
6.1.1 脑启发式计算190
6.1.2 新兴的纳米技术191
6.1.3 神经形态系统的可靠计算192
6.1.4 人工神经网络和脉冲神经网络的融合193
6.2 结论194
参考文献194
附录197
术语表205